[llvm] [AMDGPU] Enable "amdgpu-sw-lower-lds" pass in pipeline. (PR #89206)

via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 2 03:24:38 PDT 2024


https://github.com/skc7 updated https://github.com/llvm/llvm-project/pull/89206

>From 29bc682b4856dbcbd946bae9c4058685b7602723 Mon Sep 17 00:00:00 2001
From: skc7 <Krishna.Sankisa at amd.com>
Date: Thu, 18 Apr 2024 15:58:10 +0530
Subject: [PATCH 1/2] [AMDGPU] Enable amdgpu-sw-lower-lds pass in pipeline.

---
 llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 20329dea60275..7cff0a0086f4e 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -600,7 +600,12 @@ AMDGPUTargetMachine::AMDGPUTargetMachine(const Target &T, const Triple &TT,
 
 bool AMDGPUTargetMachine::EnableLateStructurizeCFG = false;
 bool AMDGPUTargetMachine::EnableFunctionCalls = false;
+#if __has_feature(address_sanitizer)
+bool AMDGPUTargetMachine::EnableLowerModuleLDS = false;
+EnableLowerModuleLDS = false;
+#else
 bool AMDGPUTargetMachine::EnableLowerModuleLDS = true;
+#endif
 bool AMDGPUTargetMachine::DisableStructurizer = false;
 
 AMDGPUTargetMachine::~AMDGPUTargetMachine() = default;
@@ -673,6 +678,8 @@ void AMDGPUTargetMachine::registerPassBuilderCallbacks(
       [](ModulePassManager &PM, OptimizationLevel Level) {
         PM.addPass(AMDGPUPrintfRuntimeBindingPass());
 
+        PM.addPass(AMDGPUSwLowerLDSPass());
+
         if (Level == OptimizationLevel::O0)
           return;
 

>From 1ec0c19ec9ade0fab9c0100fbdde8fa87e548f1d Mon Sep 17 00:00:00 2001
From: skc7 <Krishna.Sankisa at amd.com>
Date: Sun, 2 Jun 2024 15:52:18 +0530
Subject: [PATCH 2/2] [AMDGPU] Use amdgpu-enable-sw-lower-lds flag to enable
 pass

---
 llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
index 7cff0a0086f4e..062d99d170925 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
@@ -339,6 +339,10 @@ static cl::opt<bool, true> EnableLowerModuleLDS(
     cl::location(AMDGPUTargetMachine::EnableLowerModuleLDS), cl::init(true),
     cl::Hidden);
 
+static cl::opt<bool> EnableSwLowerLDS("amdgpu-enable-sw-lower-lds",
+                                      cl::desc("Enable sw lower lds pass"),
+                                      cl::init(true), cl::Hidden);
+
 static cl::opt<bool> EnablePreRAOptimizations(
     "amdgpu-enable-pre-ra-optimizations",
     cl::desc("Enable Pre-RA optimizations pass"), cl::init(true),
@@ -600,12 +604,7 @@ AMDGPUTargetMachine::AMDGPUTargetMachine(const Target &T, const Triple &TT,
 
 bool AMDGPUTargetMachine::EnableLateStructurizeCFG = false;
 bool AMDGPUTargetMachine::EnableFunctionCalls = false;
-#if __has_feature(address_sanitizer)
-bool AMDGPUTargetMachine::EnableLowerModuleLDS = false;
-EnableLowerModuleLDS = false;
-#else
 bool AMDGPUTargetMachine::EnableLowerModuleLDS = true;
-#endif
 bool AMDGPUTargetMachine::DisableStructurizer = false;
 
 AMDGPUTargetMachine::~AMDGPUTargetMachine() = default;
@@ -677,8 +676,8 @@ void AMDGPUTargetMachine::registerPassBuilderCallbacks(
   PB.registerPipelineEarlySimplificationEPCallback(
       [](ModulePassManager &PM, OptimizationLevel Level) {
         PM.addPass(AMDGPUPrintfRuntimeBindingPass());
-
-        PM.addPass(AMDGPUSwLowerLDSPass());
+        if (EnableSwLowerLDS)
+          PM.addPass(AMDGPUSwLowerLDSPass());
 
         if (Level == OptimizationLevel::O0)
           return;



More information about the llvm-commits mailing list