darkbuck wrote: > 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.
I agree with and revise PR to replace it with `noconvergent`. For non-GPU languages, it's just a NOP. For CUDA/HIP, we will skip adding `convergent` attribute. https://github.com/llvm/llvm-project/pull/100637 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits