diff options
author | Nikita Popov <npopov@redhat.com> | 2023-06-05 17:23:07 +0200 |
---|---|---|
committer | Nikita Popov <npopov@redhat.com> | 2023-06-05 17:28:32 +0200 |
commit | 3c9cf023db32ba2cfa1e052ddc58f57dd080995c (patch) | |
tree | 9a173635dc7e83da9fdd72223311a3cdbefc768c /llvm/lib/Transforms/Utils/LCSSA.cpp | |
parent | 26fee2b3cb71bfa2ff5a9decb9caa3d238df5b27 (diff) | |
download | llvm-3c9cf023db32ba2cfa1e052ddc58f57dd080995c.zip llvm-3c9cf023db32ba2cfa1e052ddc58f57dd080995c.tar.gz llvm-3c9cf023db32ba2cfa1e052ddc58f57dd080995c.tar.bz2 |
Revert "[LCSSA] Don't invalidate SCEV"
This reverts commit 5cbb9f7a58d98ba432c6ddeefa581f6fc521315c.
Causes verifier error reported at
https://reviews.llvm.org/D149331#4387931.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LCSSA.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LCSSA.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/LCSSA.cpp b/llvm/lib/Transforms/Utils/LCSSA.cpp index 5f1c98c..183e0a4 100644 --- a/llvm/lib/Transforms/Utils/LCSSA.cpp +++ b/llvm/lib/Transforms/Utils/LCSSA.cpp @@ -76,7 +76,7 @@ static bool isExitBlock(BasicBlock *BB, /// rewrite the uses. bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist, const DominatorTree &DT, const LoopInfo &LI, - ScalarEvolution *Se, + ScalarEvolution *SE, SmallVectorImpl<PHINode *> *PHIsToRemove, SmallVectorImpl<PHINode *> *InsertedPHIs) { SmallVector<Use *, 16> UsesToRewrite; @@ -148,6 +148,11 @@ bool llvm::formLCSSAForInstructions(SmallVectorImpl<Instruction *> &Worklist, SSAUpdater SSAUpdate(&LocalInsertedPHIs); SSAUpdate.Initialize(I->getType(), I->getName()); + // Force re-computation of I, as some users now need to use the new PHI + // node. + if (SE) + SE->forgetValue(I); + // Insert the LCSSA phi's into all of the exit blocks dominated by the // value, and add them to the Phi's map. for (BasicBlock *ExitBB : ExitBlocks) { |