diff options
author | Max Kazantsev <max.kazantsev@azul.com> | 2019-02-21 05:51:29 +0000 |
---|---|---|
committer | Max Kazantsev <max.kazantsev@azul.com> | 2019-02-21 05:51:29 +0000 |
commit | 10489d76f6355bcfeaef2761a06ad28c72facefb (patch) | |
tree | 0b921596464f9fb1f712b709a3b7b01165fcfcdc /llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | |
parent | 7cfd5b66346249e902ef3ff3fd01276f8b9b3a3e (diff) | |
download | bcm5719-llvm-10489d76f6355bcfeaef2761a06ad28c72facefb.tar.gz bcm5719-llvm-10489d76f6355bcfeaef2761a06ad28c72facefb.zip |
[LoopSimplifyCFG] Add missing MSSA edge deletion
When we create fictive switch in preheader, we should take
care about MSSA and delete edge between old preheader and
header.
llvm-svn: 354547
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp index 55cf20a2936..bbf35513416 100644 --- a/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp +++ b/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp @@ -355,6 +355,8 @@ private: BasicBlock *NewPreheader = Preheader->splitBasicBlock( Preheader->getTerminator(), Twine(Preheader->getName()).concat("-split")); + if (MSSAU) + MSSAU->removeEdge(Preheader, L.getHeader()); DTUpdates.push_back({DominatorTree::Delete, Preheader, L.getHeader()}); DTUpdates.push_back({DominatorTree::Insert, NewPreheader, L.getHeader()}); DTUpdates.push_back({DominatorTree::Insert, Preheader, NewPreheader}); |