summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2019-02-21 05:51:29 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2019-02-21 05:51:29 +0000
commit10489d76f6355bcfeaef2761a06ad28c72facefb (patch)
tree0b921596464f9fb1f712b709a3b7b01165fcfcdc /llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
parent7cfd5b66346249e902ef3ff3fd01276f8b9b3a3e (diff)
downloadbcm5719-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.cpp2
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});
OpenPOWER on IntegriCloud