summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Refactor some code, and fix test/Transforms/GVNPRE/2007-06-12-NoExit.ll by ↵Owen Anderson2007-06-121-47/+69
| | | | | | | | being more careful when using post-dominator information. llvm-svn: 37556
* Sink CmpInst's to their uses to reduce register pressure.Dale Johannesen2007-06-121-3/+61
| | | | llvm-svn: 37554
* Break DominatorTree from ETNode.Devang Patel2007-06-122-97/+8
| | | | | | Remove unused PostETForest. llvm-svn: 37551
* Fix a few more bugs, including an instance of walking in reverse topological ↵Owen Anderson2007-06-121-31/+49
| | | | | | | | rather than topological order. This fixes a testcase extracted from llvm-test. llvm-svn: 37550
* Use SmallPtrSet instaed of std::setDevang Patel2007-06-121-2/+1
| | | | llvm-svn: 37548
* Check immediate dominators first while searching for nearset common dominator.Devang Patel2007-06-121-6/+18
| | | | | | Fix 80 col violations. llvm-svn: 37547
* Maintain DFS number in DomTreeNode itself.Devang Patel2007-06-121-3/+37
| | | | | | This means now ETNodes are not useful anymore. llvm-svn: 37546
* Add and use DominatorTreeBase::findNearestCommonDominator().Devang Patel2007-06-112-1/+46
| | | | llvm-svn: 37545
* Fix a typo in bswap lowering.Lauro Ramos Venancio2007-06-111-1/+1
| | | | llvm-svn: 37544
* Restructure code to reduce ifcvt compile time cost.Evan Cheng2007-06-111-155/+193
| | | | llvm-svn: 37543
* Simplify.Devang Patel2007-06-111-4/+2
| | | | llvm-svn: 37542
* simplifyDevang Patel2007-06-111-4/+3
| | | | llvm-svn: 37541
* Simplify. Dominator Tree is required so always available.Devang Patel2007-06-111-31/+26
| | | | llvm-svn: 37540
* Handle functions with multiple exit blocks properly.Owen Anderson2007-06-111-0/+6
| | | | llvm-svn: 37539
* Use DominatorTree instead of ETForest.Devang Patel2007-06-111-16/+16
| | | | llvm-svn: 37538
* Fix the build.Reid Spencer2007-06-101-1/+2
| | | | llvm-svn: 37537
* Perform PRE of comparison operators.Owen Anderson2007-06-091-24/+155
| | | | llvm-svn: 37536
* fix x86-64 mmx calling convention for real, which passes in integer gprs.Chris Lattner2007-06-091-3/+9
| | | | llvm-svn: 37534
* fix mmx handling bugChris Lattner2007-06-091-1/+4
| | | | llvm-svn: 37533
* Fix edge case.Nick Lewycky2007-06-091-2/+2
| | | | llvm-svn: 37532
* Don't change CFG during analysis stage. Do so during ifcvt and invalidate ↵Evan Cheng2007-06-091-56/+106
| | | | | | predecessors accordingly. llvm-svn: 37531
* Collect statistics from GVN-PRE.Owen Anderson2007-06-081-0/+9
| | | | llvm-svn: 37530
* Carefully remove extraneous CFG edges after each ifcvt.Evan Cheng2007-06-081-24/+51
| | | | llvm-svn: 37529
* Add a utility routine to check for unpredicated terminator instruction.Evan Cheng2007-06-085-11/+18
| | | | llvm-svn: 37528
* Define AsmTransCBE for ARM.Lauro Ramos Venancio2007-06-081-0/+25
| | | | llvm-svn: 37527
* Fix typo in a comment.Owen Anderson2007-06-081-1/+1
| | | | llvm-svn: 37526
* Fix a bug that was causing the elimination phase not to replace values when ↵Owen Anderson2007-06-081-13/+56
| | | | | | | | | | it should be. With this patch, GVN-PRE now correctly optimizes the example from the thesis. Many thanks to Daniel Berlin for helping me find errors in this. llvm-svn: 37525
* Correct transfer predicate information.Evan Cheng2007-06-081-8/+6
| | | | llvm-svn: 37524
* Hidden options to help debugging ifcvt issues.Evan Cheng2007-06-081-2/+32
| | | | llvm-svn: 37523
* Factor live variable analysis so it does not do register coalescingDavid Greene2007-06-083-1055/+1142
| | | | | | | | | | simultaneously. Move that pass to SimpleRegisterCoalescing. This makes it easier to implement alternative register allocation and coalescing strategies while maintaining reuse of the existing live interval analysis. llvm-svn: 37520
* Allow more cmp / bcc to be predicated; clean up triangle ifcvt checking code.Evan Cheng2007-06-081-144/+135
| | | | llvm-svn: 37518
* Fix ARM condition code subsumission check.Evan Cheng2007-06-081-3/+3
| | | | llvm-svn: 37517
* tBcc is not a barrier.Evan Cheng2007-06-081-1/+1
| | | | llvm-svn: 37516
* Use more realistically sized vectors. Reserve capacity if we know in advanceDuncan Sands2007-06-081-4/+7
| | | | | | how much will be used. llvm-svn: 37515
* Small bugfix, and const-ify some methods (Thanks, Bill).Owen Anderson2007-06-081-6/+6
| | | | llvm-svn: 37513
* Update LoopSimplify to require and preserve DominatorTree only.Devang Patel2007-06-082-35/+38
| | | | | | Now LoopSimplify does not require nor preserve ETForest. llvm-svn: 37512
* Make throttle a hidden parameter, per review.Dale Johannesen2007-06-081-6/+11
| | | | llvm-svn: 37511
* Add partial redundancy elimination.Owen Anderson2007-06-081-84/+249
| | | | llvm-svn: 37510
* Throttle tail merging; handling blocks with large numbers of predecessorsDale Johannesen2007-06-081-2/+6
| | | | | | is too slow. llvm-svn: 37509
* Use DominatorTree instead of ETForest.Devang Patel2007-06-081-9/+9
| | | | llvm-svn: 37507
* Do not preserve ETForest.Devang Patel2007-06-081-26/+5
| | | | llvm-svn: 37506
* Use DominatorTree instead of ETForest.Devang Patel2007-06-071-9/+9
| | | | llvm-svn: 37505
* Add instruction level dominates(A,B) interface.Devang Patel2007-06-071-0/+23
| | | | llvm-svn: 37504
* Only remove the edge from entry to false if false block is merged.Evan Cheng2007-06-071-2/+2
| | | | llvm-svn: 37503
* Do not require ETForest. Now it is unused by LICM.Devang Patel2007-06-071-3/+0
| | | | llvm-svn: 37502
* Do not use ETForest as well as DomiantorTree. DominatorTree is sufficient.Devang Patel2007-06-072-21/+18
| | | | llvm-svn: 37501
* Use DominatorTree instead of ETForest.Devang Patel2007-06-074-18/+20
| | | | | | This allows faster immediate domiantor walk. llvm-svn: 37500
* Use DominatorTree instead of ETForest.Devang Patel2007-06-071-8/+7
| | | | llvm-svn: 37499
* Use DominatorTree instead of ETForest.Devang Patel2007-06-071-23/+25
| | | | llvm-svn: 37498
* Do not change the size of function arguments. PR 1489.Dale Johannesen2007-06-071-1/+9
| | | | llvm-svn: 37496
OpenPOWER on IntegriCloud