[PATCH] D69498: IR: Invert convergent attribute handling

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 28 11:24:08 PDT 2019


jdoerfert added a reviewer: JonChesterfield.
jdoerfert added a comment.

Before we get lost in review details let's make sure we agree that his is the right path. I mean, transition from `convergent` to `noconvergent` (or a similar spelling).
I do support this by the way.

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

> [...] 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?


I see what you mean but I think it would be "a hack" to teach the lookup methods, e.g., `isNoConvergent`, to also look into the datalayout (or any other place). Instead, front-ends should emit `noconvergent` as one of their default arguments if that is the behavior they want. This should be essentially free after they update their code. Neither idea will fix the "old IR" problem anyway but we could make the deduction add `noconvergent` to all functions that are not `convergent` if `convergent` was found in the module.


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

https://reviews.llvm.org/D69498





More information about the llvm-commits mailing list