- 4ee451d Remove attribution from file headers, per discussion on llvmdev. by Chris Lattner · 17 years ago
- 11ce02d Somehow this wasn't committed last time. M_CLOBBERS_PRED is gone. by Evan Cheng · 17 years ago
- d2c5eb8 Teach if-conversion about instructions that were already predicated, e.g. conditional move. by Evan Cheng · 17 years ago
- 9ffd340 Avoid if-converting simple block that ends with unconditional branch or fallthrough unless it branches / falls to the 'false' block. Not profitable, may end up increasing code size. by Evan Cheng · 17 years ago
- eaa91b0 Replace TargetInstrInfo::CanBeDuplicated() with a M_NOT_DUPLICABLE bit. by Evan Cheng · 17 years ago
- c4047a8 Fix some fragile code wrt CFG edge updating. by Evan Cheng · 17 years ago
- a1a8787 Properly remove duplicate instructions as result of diamond if-conversion. Other bug fixes. by Evan Cheng · 17 years ago
- e882fca Really turn if-converter loose: by Evan Cheng · 17 years ago
- a2acf84 Not every predicable block can be safely duplicated. by Evan Cheng · 17 years ago
- bf9d02e MachineInstr::isPredicable() is no longer needed. by Evan Cheng · 17 years ago
- 9333545 Extra edges are deleted later if needed. by Evan Cheng · 17 years ago
- 2c8c3a4 Allow small blocks to be duplicated to enable if-conversion. by Evan Cheng · 17 years ago
- bc198ee No really, clear predcessors states. by Evan Cheng · 17 years ago
- e37e243 If BB is predicated, invalidate its predecessor(s) which would if-convert it. It needs to be re-analyzed. by Evan Cheng · 17 years ago
- b7c908b Fix typo. by Evan Cheng · 17 years ago
- 86ff296 Fix some stupid bugs that have effectively disabled if-conversion. by Evan Cheng · 17 years ago
- 93a8e5e Typo by Evan Cheng · 17 years ago
- cc8fb46 Now if-converting all 4 variants of triangles. by Evan Cheng · 17 years ago
- 9618bca Restructure code to reduce ifcvt compile time cost. by Evan Cheng · 17 years ago
- a9bf49c Fix the build. by Reid Spencer · 17 years ago
- 1c9f91d Don't change CFG during analysis stage. Do so during ifcvt and invalidate predecessors accordingly. by Evan Cheng · 17 years ago
- 7e75ba8 Carefully remove extraneous CFG edges after each ifcvt. by Evan Cheng · 17 years ago
- 2acdbcc Correct transfer predicate information. by Evan Cheng · 17 years ago
- edf4896 Hidden options to help debugging ifcvt issues. by Evan Cheng · 17 years ago
- ac5f142 Allow more cmp / bcc to be predicated; clean up triangle ifcvt checking code. by Evan Cheng · 17 years ago
- 27af5c4 Only remove the edge from entry to false if false block is merged. by Evan Cheng · 17 years ago
- f476961 ifcvt a triangle: don't merge ifcvt block with rejoin block if it can fall through to it. If merged, the resulting block is not a candidate for iterative ifcvting since it contains both predicated and non-predicated code. by Evan Cheng · 17 years ago
- d4de6d9 Lots of bug fixes. Now finally in a reasonable state. by Evan Cheng · 17 years ago
- 96dd9a8 Quick patch to fix the build, based on what it appears Evan meant to write. by Owen Anderson · 17 years ago
- 7a65547 Lots of bug fixes. by Evan Cheng · 17 years ago
- 3d6f60e If a unconditional branch is added to branch to the false path during ifcvt, the predicated block cannot be iteratively ifcvted. by Evan Cheng · 17 years ago
- cb78d67 Minor statistics counting bug. by Evan Cheng · 17 years ago
- e705213 Fix a couple of typos and be smarter about order of blocks when ifcvt a diamond. by Evan Cheng · 17 years ago
- 993fc95 Fix diamond shape ifcvt bugs. by Evan Cheng · 17 years ago
- a1a9f40 ReplaceUsesOfBlockWith() can modify the predecessors list. by Evan Cheng · 17 years ago
- e004317 Do not ifcvt if either true / false path is a backedge. Not profitable in almost all cases. by Evan Cheng · 17 years ago
- c53ef58 I had a senior moment. by Evan Cheng · 17 years ago
- 8ed680c If the predicated block requires an early exit, end the block there and add a unconditional branch to false block. AnalyzeBranch() does not understand early exits. by Evan Cheng · 17 years ago
- f5305f9 Fix some subtle bugs: bug during succeessor copying; incorrectly updating states of ifcvted blocks. by Evan Cheng · 17 years ago
- 3ec4254 Forgot to check for if iterator reached the end. by Evan Cheng · 17 years ago
- b6665f6 Let IfConverter loose. Allow more aggressive subsumptions; reorder basic blocks to expose more ifcvt opportunities; code clean up and fixes. by Evan Cheng · 17 years ago
- b5a0690 Correctly mark early-exit on the false path. by Evan Cheng · 17 years ago
- 8c52938 Ifcvt triangle: don't ifcvt 'true' BB if it has other predecessors; don't merge 'false' BB if it has other predecessors. by Evan Cheng · 17 years ago
- fe57a7e Remove a bogus check. Even terminators in a ifcvt need to be predicated. Unconditional branches can usually be converted to conditional ones. by Evan Cheng · 17 years ago
- 5f70218 Allow multiple ifcvt candidates to share children blocks; add some debugging code. by Evan Cheng · 17 years ago
- f15d44c Fix a typo. by Evan Cheng · 17 years ago
- 8258210 Change traversal order to bottom up in preparation for more aggressive if-conversion. by Evan Cheng · 17 years ago
- 58fbb9f Don't merge in tail block of a diamond if it has more than one predecessors after if-conversion. by Evan Cheng · 17 years ago
- c8ed9ba If there is an empty block between a source and its successor block, it still requires a unconditional branch. by Evan Cheng · 17 years ago
- 4bec8ae Silly boog. by Evan Cheng · 17 years ago
- a13aa95 Preliminary iterative if-conversion support. by Evan Cheng · 17 years ago
- a6b4f43 If-convert early exit blocks (returns, etc.); bug fixes, etc. by Evan Cheng · 17 years ago
- 7f8ff8a Clean up. by Evan Cheng · 17 years ago
- 36489bb Change to depth-first traversal. by Evan Cheng · 17 years ago
- cf6cc11 Some restructuring in preparation for most aggressive if-conversion. by Evan Cheng · 17 years ago
- 6092ca1 Watch out for blocks that end with a return. by Evan Cheng · 17 years ago
- 47d2502 If true / false blocks fallthrough before ifcvt, add unconditional branches to ifcvt'd block. by Evan Cheng · 17 years ago
- 86cbfea Make use of target specific block size limits; bug fixes. by Evan Cheng · 17 years ago
- d6ddc30 isBlockPredicable() always ignore terminal instructions; add comments. by Evan Cheng · 17 years ago
- c3a289c Rename M_PREDICATED to M_PREDICABLE; Moved isPredicable() to MachineInstr. by Evan Cheng · 17 years ago
- c5d05ef Devang points out that we need an assertion here. by Evan Cheng · 17 years ago
- 4e65485 Initial commit of (very basic) if converter. by Evan Cheng · 17 years ago