[llvm] 904a00d - [AggressiveInstCombine] Fix `TruncInstCombine` (fix f84d732f)
Anton Afanasyev via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 24 21:09:46 PST 2022
Author: Anton Afanasyev
Date: 2022-02-25T08:04:11+03:00
New Revision: 904a00d17ae60718f54d587db8b394f590efbdc3
URL: https://github.com/llvm/llvm-project/commit/904a00d17ae60718f54d587db8b394f590efbdc3
DIFF: https://github.com/llvm/llvm-project/commit/904a00d17ae60718f54d587db8b394f590efbdc3.diff
LOG: [AggressiveInstCombine] Fix `TruncInstCombine` (fix f84d732f)
Erase phi-nodes from `InstInfoMap` before erasing themselves
Added:
Modified:
llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp b/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
index 71f3d76c0ba78..a446696c91aac 100644
--- a/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
+++ b/llvm/lib/Transforms/AggressiveInstCombine/TruncInstCombine.cpp
@@ -504,6 +504,7 @@ void TruncInstCombine::ReduceExpressionGraph(Type *SclTy) {
for (auto &Node : OldNewPHINodes) {
PHINode *OldPN = Node.first;
OldPN->replaceAllUsesWith(PoisonValue::get(OldPN->getType()));
+ InstInfoMap.erase(OldPN);
OldPN->eraseFromParent();
}
// Now we have expression graph turned into dag.
@@ -511,9 +512,6 @@ void TruncInstCombine::ReduceExpressionGraph(Type *SclTy) {
// visit any of its operands, this way, when we get to the operand, we already
// removed the instructions (from the expression dag) that uses it.
for (auto &I : llvm::reverse(InstInfoMap)) {
- // Skip phi-nodes since they were erased before
- if (isa<PHINode>(I.first))
- continue;
// We still need to check that the instruction has no users before we erase
// it, because {SExt, ZExt}Inst Instruction might have other users that was
// not reduced, in such case, we need to keep that instruction.
More information about the llvm-commits
mailing list