[PATCH] D148199: [AMDGPU] Add a new command line argument amdgpu-atomic-optimizer-use-dpp

Pravin Jagtap via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 16 23:54:02 PDT 2023


pravinjagtap added inline comments.


================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:1121-1122
 
-  if (isPassEnabled(EnableAtomicOptimizations, CodeGenOpt::Less)) {
+  if (isPassEnabled(EnableAtomicOptimizations, CodeGenOpt::Less) ||
+      isPassEnabled(EnableAtomicOptimizationsUsingDPP, CodeGenOpt::Less)) {
     addPass(createAMDGPUAtomicOptimizerPass());
----------------
foad wrote:
> arsenm wrote:
> > Two flags to enable the same pass is bad, and this doesn't change the pass behavior. The behavior change could be a pass parameter.
> > Two flags to enable the same pass is bad
> 
> That's intentional and temporary. It's to avoid a flag-day change for downstream users like LLPC when they switch over to the new option.
> Two flags to enable the same pass is bad, and this doesn't change the pass behavior. The behavior change could be a pass parameter.




================
Comment at: llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp:1121-1122
 
-  if (isPassEnabled(EnableAtomicOptimizations, CodeGenOpt::Less)) {
+  if (isPassEnabled(EnableAtomicOptimizations, CodeGenOpt::Less) ||
+      isPassEnabled(EnableAtomicOptimizationsUsingDPP, CodeGenOpt::Less)) {
     addPass(createAMDGPUAtomicOptimizerPass());
----------------
pravinjagtap wrote:
> foad wrote:
> > arsenm wrote:
> > > Two flags to enable the same pass is bad, and this doesn't change the pass behavior. The behavior change could be a pass parameter.
> > > Two flags to enable the same pass is bad
> > 
> > That's intentional and temporary. It's to avoid a flag-day change for downstream users like LLPC when they switch over to the new option.
> > Two flags to enable the same pass is bad, and this doesn't change the pass behavior. The behavior change could be a pass parameter.
> 
> 
> The behavior change could be a pass parameter.
If I understand correctly you are suggesting to have `string` here instead of boolean `true` or `false` value as parameter? Something like:

-amdgpu-atomic-optimizer-scan=`dpp` or -amdgpu-atomic-optimizer-scan=`iterative`  and based on the parameter value of this new command line we will be taking different code paths 



Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D148199



More information about the llvm-commits mailing list