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