[llvm] [AMDGPU] Fix a potential use-after-erase in `AMDGPUPromoteAlloca` pass (PR #174529)
Shilei Tian via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 6 11:09:57 PST 2026
================
@@ -1166,9 +1166,18 @@ void AMDGPUPromoteAllocaImpl::promoteAllocaToVector(AllocaAnalysis &AA) {
});
// Now fixup the placeholders.
+ DenseMap<Value *, Value *> PlaceholderMap;
for (Instruction *Placeholder : Placeholders) {
- Placeholder->replaceAllUsesWith(
- Updater.GetValueInMiddleOfBlock(Placeholder->getParent()));
+ Value *NewVal = Updater.GetValueInMiddleOfBlock(Placeholder->getParent());
+ Placeholder->replaceAllUsesWith(NewVal);
----------------
shiltian wrote:
The best approach would be something like having `replaceAllUsesWith` "notify" `SSAUpdater` in some way, but that is far beyond the scope here, and I expect it would take a lot of work.
https://github.com/llvm/llvm-project/pull/174529
More information about the llvm-commits
mailing list