[llvm] Limit Alloca->LDS promotion based on speculations as to eventual register pressure (PR #152814)
Tim Gymnich via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 9 07:55:13 PDT 2025
================
@@ -1471,9 +1485,83 @@ bool AMDGPUPromoteAllocaImpl::hasSufficientLocalMem(const Function &F) {
return true;
}
+size_t AMDGPUPromoteAllocaImpl::getSGPRPressureEstimate(AllocaInst &I) {
+ Function &F = *I.getParent()->getParent();
+ size_t MaxLive = 0;
+ for (BasicBlock *BB : post_order(&F)) {
+ if (SGPRLiveIns.count(BB))
+ continue;
+
+ std::unordered_set<Instruction *> CurrentlyLive;
+ for (BasicBlock *SuccBB : successors(BB))
+ if (SGPRLiveIns.count(SuccBB))
+ for (const auto &R : SGPRLiveIns[SuccBB])
+ CurrentlyLive.insert(R);
+
+ for (auto RIt = BB->rbegin(); RIt != BB->rend(); RIt++) {
----------------
tgymnich wrote:
```suggestion
for (auto Inst : reverse(BB)) {
```
https://github.com/llvm/llvm-project/pull/152814
More information about the llvm-commits
mailing list