[llvm] 0393653 - [AMDGPU] Protect against null entries in ValMap
Jeffrey Byrnes via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 22 16:51:45 PDT 2024
Author: Jeffrey Byrnes
Date: 2024-07-22T16:50:54-07:00
New Revision: 03936534b520ba28be37de7e24c59ba28d0c10d7
URL: https://github.com/llvm/llvm-project/commit/03936534b520ba28be37de7e24c59ba28d0c10d7
DIFF: https://github.com/llvm/llvm-project/commit/03936534b520ba28be37de7e24c59ba28d0c10d7.diff
LOG: [AMDGPU] Protect against null entries in ValMap
Change-Id: Icbda7c3fecf38679d06006986e5e17cb1f1b8749
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp b/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
index fe7731b9550bf..7bf5170794cd9 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPULateCodeGenPrepare.cpp
@@ -360,7 +360,7 @@ bool LiveRegOptimizer::optimizeLiveType(
Type *NewType = calculateConvertType(Phi->getType());
NewPhi->addIncoming(ConstantInt::get(NewType, 0, false),
Phi->getIncomingBlock(I));
- } else if (ValMap.contains(IncVal))
+ } else if (ValMap.contains(IncVal) && ValMap[IncVal])
NewPhi->addIncoming(ValMap[IncVal], Phi->getIncomingBlock(I));
else
MissingIncVal = true;
@@ -370,11 +370,11 @@ bool LiveRegOptimizer::optimizeLiveType(
// The coercion chain of the PHI is broken. Delete the Phi
// from the ValMap and any connected / user Phis.
SmallVector<Value *, 4> PHIWorklist;
- SmallPtrSet<Value *, 4> Visited;
+ SmallPtrSet<Value *, 4> VisitedPhis;
PHIWorklist.push_back(DeadVal);
while (!PHIWorklist.empty()) {
Value *NextDeadValue = PHIWorklist.pop_back_val();
- Visited.insert(NextDeadValue);
+ VisitedPhis.insert(NextDeadValue);
auto OriginalPhi =
std::find_if(PhiNodes.begin(), PhiNodes.end(),
[this, &NextDeadValue](PHINode *CandPhi) {
@@ -388,7 +388,7 @@ bool LiveRegOptimizer::optimizeLiveType(
DeadInsts.emplace_back(cast<Instruction>(NextDeadValue));
for (User *U : NextDeadValue->users()) {
- if (!Visited.contains(cast<PHINode>(U)))
+ if (!VisitedPhis.contains(cast<PHINode>(U)))
PHIWorklist.push_back(U);
}
}
More information about the llvm-commits
mailing list