summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/IfConversion.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* ifcvt a triangle: don't merge ifcvt block with rejoin block if it can fall ↵Evan Cheng2007-06-071-17/+29
| | | | | | through to it. If merged, the resulting block is not a candidate for iterative ifcvting since it contains both predicated and non-predicated code. llvm-svn: 37487
* Lots of bug fixes. Now finally in a reasonable state.Evan Cheng2007-06-071-78/+104
| | | | llvm-svn: 37485
* Quick patch to fix the build, based on what it appears Evan meant to write.Owen Anderson2007-06-061-1/+1
| | | | | | Evan, please check that this is in fact correct. llvm-svn: 37471
* Lots of bug fixes.Evan Cheng2007-06-061-40/+76
| | | | llvm-svn: 37467
* If a unconditional branch is added to branch to the false path during ifcvt, ↵Evan Cheng2007-06-061-6/+33
| | | | | | the predicated block cannot be iteratively ifcvted. llvm-svn: 37456
* Minor statistics counting bug.Evan Cheng2007-06-061-3/+5
| | | | llvm-svn: 37451
* Fix a couple of typos and be smarter about order of blocks when ifcvt a diamond.Evan Cheng2007-06-061-17/+30
| | | | llvm-svn: 37449
* Fix diamond shape ifcvt bugs.Evan Cheng2007-06-051-61/+41
| | | | llvm-svn: 37444
* ReplaceUsesOfBlockWith() can modify the predecessors list.Evan Cheng2007-06-051-3/+4
| | | | llvm-svn: 37441
* Do not ifcvt if either true / false path is a backedge. Not profitable in ↵Evan Cheng2007-06-051-0/+3
| | | | | | almost all cases. llvm-svn: 37440
* I had a senior moment.Evan Cheng2007-06-051-3/+4
| | | | llvm-svn: 37433
* If the predicated block requires an early exit, end the block there and add ↵Evan Cheng2007-06-051-2/+3
| | | | | | a unconditional branch to false block. AnalyzeBranch() does not understand early exits. llvm-svn: 37430
* Fix some subtle bugs: bug during succeessor copying; incorrectly updating ↵Evan Cheng2007-06-051-20/+19
| | | | | | states of ifcvted blocks. llvm-svn: 37429
* Forgot to check for if iterator reached the end.Evan Cheng2007-06-041-1/+2
| | | | llvm-svn: 37420
* Let IfConverter loose. Allow more aggressive subsumptions; reorder basic ↵Evan Cheng2007-06-041-196/+264
| | | | | | blocks to expose more ifcvt opportunities; code clean up and fixes. llvm-svn: 37409
* Correctly mark early-exit on the false path.Evan Cheng2007-06-011-8/+9
| | | | llvm-svn: 37387
* Ifcvt triangle: don't ifcvt 'true' BB if it has other predecessors; don't ↵Evan Cheng2007-06-011-3/+18
| | | | | | merge 'false' BB if it has other predecessors. llvm-svn: 37382
* Remove a bogus check. Even terminators in a ifcvt need to be predicated. ↵Evan Cheng2007-06-011-3/+1
| | | | | | Unconditional branches can usually be converted to conditional ones. llvm-svn: 37380
* Allow multiple ifcvt candidates to share children blocks; add some debugging ↵Evan Cheng2007-06-011-7/+20
| | | | | | code. llvm-svn: 37379
* Fix a typo.Evan Cheng2007-05-311-1/+1
| | | | llvm-svn: 37374
* Change traversal order to bottom up in preparation for more aggressive ↵Evan Cheng2007-05-301-23/+69
| | | | | | if-conversion. llvm-svn: 37365
* Don't merge in tail block of a diamond if it has more than one predecessors ↵Evan Cheng2007-05-291-2/+4
| | | | | | after if-conversion. llvm-svn: 37353
* If there is an empty block between a source and its successor block, it ↵Evan Cheng2007-05-291-30/+37
| | | | | | still requires a unconditional branch. llvm-svn: 37344
* Silly boog.Evan Cheng2007-05-251-9/+9
| | | | llvm-svn: 37328
* Preliminary iterative if-conversion support.Evan Cheng2007-05-231-97/+167
| | | | llvm-svn: 37309
* If-convert early exit blocks (returns, etc.); bug fixes, etc.Evan Cheng2007-05-211-139/+224
| | | | llvm-svn: 37270
* Clean up.Evan Cheng2007-05-181-5/+5
| | | | llvm-svn: 37237
* Change to depth-first traversal.Evan Cheng2007-05-181-11/+22
| | | | llvm-svn: 37236
* Some restructuring in preparation for most aggressive if-conversion.Evan Cheng2007-05-181-40/+71
| | | | llvm-svn: 37231
* Watch out for blocks that end with a return.Evan Cheng2007-05-181-2/+2
| | | | llvm-svn: 37227
* If true / false blocks fallthrough before ifcvt, add unconditional branches ↵Evan Cheng2007-05-181-4/+19
| | | | | | to ifcvt'd block. llvm-svn: 37200
* Make use of target specific block size limits; bug fixes.Evan Cheng2007-05-181-64/+149
| | | | llvm-svn: 37195
* isBlockPredicable() always ignore terminal instructions; add comments.Evan Cheng2007-05-161-13/+23
| | | | llvm-svn: 37126
* Rename M_PREDICATED to M_PREDICABLE; Moved isPredicable() to MachineInstr.Evan Cheng2007-05-161-12/+12
| | | | llvm-svn: 37121
* Devang points out that we need an assertion here.Evan Cheng2007-05-161-0/+2
| | | | llvm-svn: 37097
* Initial commit of (very basic) if converter.Evan Cheng2007-05-161-0/+304
llvm-svn: 37092
OpenPOWER on IntegriCloud