[PATCH] D69498: IR: Invert convergent attribute handling

John McCall via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 28 09:03:12 PDT 2019


rjmccall added a comment.

In D69498#1723553 <https://reviews.llvm.org/D69498#1723553>, @rjmccall wrote:

> This certainly seems like a more tractable representation, although I suppose it'd be a thorn in the side of (IR-level) outlining.


Sorry, I mis-clicked and sent this review while I was still editing it.

I agree that this is a theoretically better representation for targets that care about convergence, since it biases compilation towards the more conservative assumption.  On the other hand, since the default language mode is apparently to assume non-convergence of user functions, and since the vast majority of targets do not include convergence as a meaningful concept, you're also just gratuitously breaking a ton of existing test cases, as well as adding compile time for manipulating this attribute.  Perhaps there should be a global metadata, or something in the increasingly-misnamed "data layout" string, which says that convergence is meaningful, and we should only add the attribute in appropriately-annotated modules?


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

https://reviews.llvm.org/D69498





More information about the llvm-commits mailing list