From aa7e09ebd38c5f23f6d7d6d8394a2aea04715ba9 Mon Sep 17 00:00:00 2001 From: Matt Arsenault Date: Thu, 22 Jun 2023 17:16:43 -0400 Subject: [PATCH] AMDGPU: Use generic helper for skipping over allocas --- .../AMDGPU/AMDGPULowerKernelArguments.cpp | 17 +---------------- 1 file changed, 1 insertion(+), 16 deletions(-) diff --git a/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp b/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp index f5323725250f..1feb2bf15aed 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPULowerKernelArguments.cpp @@ -40,21 +40,6 @@ public: } // end anonymous namespace -// skip allocas -static BasicBlock::iterator getInsertPt(BasicBlock &BB) { - BasicBlock::iterator InsPt = BB.getFirstInsertionPt(); - for (BasicBlock::iterator E = BB.end(); InsPt != E; ++InsPt) { - AllocaInst *AI = dyn_cast(&*InsPt); - - // If this is a dynamic alloca, the value may depend on the loaded kernargs, - // so loads will need to be inserted before it. - if (!AI || !AI->isStaticAlloca()) - break; - } - - return InsPt; -} - bool AMDGPULowerKernelArguments::runOnFunction(Function &F) { CallingConv::ID CC = F.getCallingConv(); if (CC != CallingConv::AMDGPU_KERNEL || F.arg_empty()) @@ -67,7 +52,7 @@ bool AMDGPULowerKernelArguments::runOnFunction(Function &F) { LLVMContext &Ctx = F.getParent()->getContext(); const DataLayout &DL = F.getParent()->getDataLayout(); BasicBlock &EntryBlock = *F.begin(); - IRBuilder<> Builder(&*getInsertPt(EntryBlock)); + IRBuilder<> Builder(&*EntryBlock.getFirstNonPHIOrDbgOrAlloca()); const Align KernArgBaseAlign(16); // FIXME: Increase if necessary const uint64_t BaseOffset = ST.getExplicitKernelArgOffset();