pravinjagtap added a comment.

In D153953#4458134 <https://reviews.llvm.org/D153953#4458134>, @sameerds wrote:

> @pravinjagtap @arsenm ... reverting the mbcnt intrinsic affects tests that 
> were added for atomic optimizations. In particular, the mbcnt is now being 
> moved across/into/out of control flow because it is no longer convergent. I 
> eyeballed one example and it seemed okay to me, but a more thorough check 
> will be useful.

Hello @sameerds,

The existing logic (before D147408 <https://reviews.llvm.org/D147408>) in 
atomic optimizer uses `mbcnt(exec)` to setup the control flow to allow only one 
lane to update the reduced value [Please refer: 
https://github.com/llvm/llvm-project/blob/80155cbf0be1744953edf68b9729c24bd0de79c4/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp#L671].
 The instructions related to that seems to be moved to other basic block 
(ComputeEnd). In my opinion it should not affect the logic. @ruiling and @foad 
can you please confirm this ?

While working on D147408 <https://reviews.llvm.org/D147408>, I introduced 
cttz(exec) [Please refer: 
https://github.com/llvm/llvm-project/blob/80155cbf0be1744953edf68b9729c24bd0de79c4/llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp#L538C1-L539C72]
 which is not being affected here. The `EXEC` is being moved to sgpr before the 
`ComputeLoop` (which we want) and then used it inside the `ComputeLoop` and 
modified inside it to set up the logic for `ComputeLoop`. This is not being 
affected because of this change.

I could be completely wrong here. Lets see what others have to say.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D153953

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to