aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/IfConversion.cpp
AgeCommit message (Collapse)Author
2007-06-05Fix some subtle bugs: bug during succeessor copying; incorrectly updating ↵Evan Cheng
states of ifcvted blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37429 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-04Forgot to check for if iterator reached the end.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37420 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-04Let IfConverter loose. Allow more aggressive subsumptions; reorder basic ↵Evan Cheng
blocks to expose more ifcvt opportunities; code clean up and fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37409 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-01Correctly mark early-exit on the false path.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37387 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-01Ifcvt triangle: don't ifcvt 'true' BB if it has other predecessors; don't ↵Evan Cheng
merge 'false' BB if it has other predecessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37382 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-01Remove a bogus check. Even terminators in a ifcvt need to be predicated. ↵Evan Cheng
Unconditional branches can usually be converted to conditional ones. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37380 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-01Allow multiple ifcvt candidates to share children blocks; add some debugging ↵Evan Cheng
code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37379 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-31Fix a typo.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-30Change traversal order to bottom up in preparation for more aggressive ↵Evan Cheng
if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37365 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-29Don't merge in tail block of a diamond if it has more than one predecessors ↵Evan Cheng
after if-conversion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-29If there is an empty block between a source and its successor block, it ↵Evan Cheng
still requires a unconditional branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37344 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-25Silly boog.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-23Preliminary iterative if-conversion support.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-21If-convert early exit blocks (returns, etc.); bug fixes, etc.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37270 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-18Clean up.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37237 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-18Change to depth-first traversal.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37236 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-18Some restructuring in preparation for most aggressive if-conversion.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37231 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-18Watch out for blocks that end with a return.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37227 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-18If true / false blocks fallthrough before ifcvt, add unconditional branches ↵Evan Cheng
to ifcvt'd block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37200 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-18Make use of target specific block size limits; bug fixes.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37195 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16isBlockPredicable() always ignore terminal instructions; add comments.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37126 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16Rename M_PREDICATED to M_PREDICABLE; Moved isPredicable() to MachineInstr.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37121 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16Devang points out that we need an assertion here.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37097 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-16Initial commit of (very basic) if converter.Evan Cheng
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37092 91177308-0d34-0410-b5e6-96231b3b80d8