If the false case is the current basic block, then this is a self loop.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 16 Feb 2006 08:27:56 +0000 (08:27 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 16 Feb 2006 08:27:56 +0000 (08:27 +0000)
commit298ebf2bd80ca415e58bbcbd9866ee58f167b620
treebe283f1d3e98413e6841562c73582eca91bc94e0
parent8f4880be6675dbf1840446bc7a335f71ff557154
If the false case is the current basic block, then this is a self loop.
We do not want to emit "Loop: ... brcond Out; br Loop", as it adds an extra
instruction in the loop.  Instead, invert the condition and emit
"Loop: ... br!cond Loop; br Out.

Generalize the fix by moving it from PPCDAGToDAGISel to SelectionDAGLowering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26231 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
lib/Target/PowerPC/PPCISelDAGToDAG.cpp