- Jan 07, 2008
-
-
Chris Lattner authored
that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. llvm-svn: 45674
-
- Dec 29, 2007
-
-
Chris Lattner authored
llvm-svn: 45418
-
- Jul 10, 2007
-
-
Evan Cheng authored
llvm-svn: 38495
-
- Jul 07, 2007
-
-
Evan Cheng authored
llvm-svn: 37964
-
- Jun 19, 2007
-
-
Evan Cheng authored
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. llvm-svn: 37660
-
Evan Cheng authored
llvm-svn: 37643
-
Evan Cheng authored
llvm-svn: 37634
-
- Jun 18, 2007
-
-
Evan Cheng authored
llvm-svn: 37623
-
- Jun 16, 2007
-
-
Evan Cheng authored
1. Consider all possible ifcvt cases at once. No longer restricted to bottom up iterative approach. 2. Sort all possible cases based on a cost function. Perform the most profitable ones first invalidate others that target the same blocks. 3. Fixed a number of bugs related to block duplication. llvm-svn: 37613
-
- Jun 15, 2007
-
-
Evan Cheng authored
llvm-svn: 37607
-
Evan Cheng authored
llvm-svn: 37599
-
Evan Cheng authored
llvm-svn: 37593
-
Evan Cheng authored
llvm-svn: 37590
-
Evan Cheng authored
llvm-svn: 37581
-
Evan Cheng authored
If BB is predicated, invalidate its predecessor(s) which would if-convert it. It needs to be re-analyzed. llvm-svn: 37580
-
- Jun 14, 2007
-
-
Evan Cheng authored
llvm-svn: 37577
-
Evan Cheng authored
llvm-svn: 37575
-
- Jun 13, 2007
-
-
Evan Cheng authored
llvm-svn: 37566
-
Evan Cheng authored
llvm-svn: 37565
-
- Jun 12, 2007
-
-
Evan Cheng authored
llvm-svn: 37543
-
- Jun 10, 2007
-
-
Reid Spencer authored
llvm-svn: 37537
-
- Jun 09, 2007
-
-
Evan Cheng authored
llvm-svn: 37531
-
Evan Cheng authored
llvm-svn: 37529
-
- Jun 08, 2007
-
-
Evan Cheng authored
llvm-svn: 37524
-
Evan Cheng authored
llvm-svn: 37523
-
Evan Cheng authored
llvm-svn: 37518
-
Evan Cheng authored
llvm-svn: 37503
-
- Jun 07, 2007
-
-
Evan Cheng authored
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. llvm-svn: 37487
-
Evan Cheng authored
llvm-svn: 37485
-
- Jun 06, 2007
-
-
Owen Anderson authored
Evan, please check that this is in fact correct. llvm-svn: 37471
-
Evan Cheng authored
llvm-svn: 37467
-
Evan Cheng authored
If a unconditional branch is added to branch to the false path during ifcvt, the predicated block cannot be iteratively ifcvted. llvm-svn: 37456
-
Evan Cheng authored
llvm-svn: 37451
-
Evan Cheng authored
llvm-svn: 37449
-
Evan Cheng authored
llvm-svn: 37444
-
Evan Cheng authored
llvm-svn: 37441
-
- Jun 05, 2007
-
-
Evan Cheng authored
llvm-svn: 37440
-
Evan Cheng authored
llvm-svn: 37433
-
Evan Cheng authored
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. llvm-svn: 37430
-
Evan Cheng authored
llvm-svn: 37429
-