AMDGPU: Code simplification for ctor/dtor lowering
authorMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 28 Nov 2022 20:34:12 +0000 (15:34 -0500)
committerMatt Arsenault <Matthew.Arsenault@amd.com>
Mon, 28 Nov 2022 20:39:50 +0000 (15:39 -0500)
Move the shared global variable lookup into the function.

llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.cpp

index 8fcf669..40476ce 100644 (file)
@@ -49,7 +49,8 @@ public:
     return InitOrFiniKernel;
   }
 
-  bool createInitOrFiniKernel(Module &M, GlobalVariable *GV, bool IsCtor) {
+  bool createInitOrFiniKernel(Module &M, StringRef GlobalName, bool IsCtor) {
+    GlobalVariable *GV = M.getGlobalVariable(GlobalName);
     if (!GV || !GV->hasInitializer())
       return false;
     ConstantArray *GA = dyn_cast<ConstantArray>(GV->getInitializer());
@@ -85,11 +86,7 @@ ModulePass *llvm::createAMDGPUCtorDtorLoweringPass() {
 
 bool AMDGPUCtorDtorLowering::runOnModule(Module &M) {
   bool Modified = false;
-  Modified |=
-      createInitOrFiniKernel(M, M.getGlobalVariable("llvm.global_ctors"),
-                             /*IsCtor =*/true);
-  Modified |=
-      createInitOrFiniKernel(M, M.getGlobalVariable("llvm.global_dtors"),
-                             /*IsCtor =*/false);
+  Modified |= createInitOrFiniKernel(M, "llvm.global_ctors", /*IsCtor =*/true);
+  Modified |= createInitOrFiniKernel(M, "llvm.global_dtors", /*IsCtor =*/false);
   return Modified;
 }