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

Reply via email to