[clang] [clang] Allow 'convergent' to be a statement attribute (PR #100637)
Matt Arsenault via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 25 22:54:48 PDT 2024
https://github.com/arsenm requested changes to this pull request.
We should be removing the source level convergent attribute, not adding more uses of it. It was a mistake to define it in the positive direction, and it is completely unusable for end users. Every piece of code that transitively calls the function in the entire program must also be marked convergent. The only way to practically achieve this is if the target/language has convergent operations, every operation must be marked convergent by default (i.e. the ConvergentFunctions language property should be set)
For optimization hints, we could have a source level noconvergent attribute to opt-out, which would be the inverse of this.
On the IR level we should pick https://reviews.llvm.org/D69498 back up.
https://github.com/llvm/llvm-project/pull/100637
More information about the cfe-commits
mailing list