arsenm added a comment.

In D69498#2705441 <https://reviews.llvm.org/D69498#2705441>, @sameerds wrote:

> I realize now that what @foad says above puts the idea in a clearer context. 
> Essentially, any check for isConvergent() isn't happening in a vacuum. It is 
> relevant only in the presence of divergent control flow, which in turn is 
> relevant only when the target has divergence. Any standalone check for 
> isConvergent() is merely making a pessimistic assumption that all the control 
> flow incident on it is divergent. This has two consequences:
>
> 1. The meaning of the `convergent` attribute has always been target-dependent.
> 2. Dependence on TTI is not a real cost at all. We may eventually update 
> every use of isConvergent() to depend on a check for divergence. The check 
> for TTI is only the first step towards that.

The core IR semantics must *not* depend on target interpretation. convergent 
has never been target dependent, and was defined in an abstract way. Only 
certain targets will really care, but we cannot directly define it to mean what 
we want it to mean for particular targets


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D69498/new/

https://reviews.llvm.org/D69498

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to