diff options
author | Owen Anderson <resistor@mac.com> | 2006-07-19 05:45:14 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2006-07-19 05:45:14 +0000 |
commit | aba8c199ddf88d929d302dc82fe42e68b96192af (patch) | |
tree | da37a3173063a37505c6345468a1f43b79f47991 /llvm/lib/Transforms/Scalar/LoopUnroll.cpp | |
parent | 00b974cdbc5121795c766bf2bb58ea303a4d1111 (diff) | |
download | bcm5719-llvm-aba8c199ddf88d929d302dc82fe42e68b96192af.tar.gz bcm5719-llvm-aba8c199ddf88d929d302dc82fe42e68b96192af.zip |
Make LoopUnroll not die on LCSSA Phis. This makes lencod work again.
llvm-svn: 29198
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopUnroll.cpp')
-rw-r--r-- | llvm/lib/Transforms/Scalar/LoopUnroll.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopUnroll.cpp b/llvm/lib/Transforms/Scalar/LoopUnroll.cpp index 4f2a0e0b62e..6f7df426f16 100644 --- a/llvm/lib/Transforms/Scalar/LoopUnroll.cpp +++ b/llvm/lib/Transforms/Scalar/LoopUnroll.cpp @@ -269,6 +269,12 @@ bool LoopUnroll::visitLoop(Loop *L) { // FIXME: Should update dominator analyses + // Remove LCSSA Phis from the exit block + for (BasicBlock::iterator ExitInstr = LoopExit->begin(); + PHINode* PN = dyn_cast<PHINode>(ExitInstr); ++ExitInstr) { + PN->replaceAllUsesWith(PN->getOperand(0)); + PN->eraseFromParent(); + } // Now that everything is up-to-date that will be, we fold the loop block into // the preheader and exit block, updating our analyses as we go. |