summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Fix a comment.Owen Anderson2007-07-091-1/+1
| | | | llvm-svn: 38459
* Improve a hotspot that was making build_sets() slower by calling lookup() tooOwen Anderson2007-07-091-27/+30
| | | | | | often. This improves Anton's testcase from 36s to 32s. llvm-svn: 38441
* Start using a set representation that remembers the set of value numbers ↵Owen Anderson2007-07-091-141/+176
| | | | | | | | | represented in the set. For the moment, this results in a slight performance decrease, but it lays the groundwork for future improvements. llvm-svn: 38439
* Fix an error where ANTIC_OUT was ending up with more than one expression ofOwen Anderson2007-07-071-1/+1
| | | | | | the same value number. This fixes an infinite loop on 444.namd. llvm-svn: 37967
* Back out Devang's fix for PR1320 because it causes PR1542.Nick Lewycky2007-07-071-93/+19
| | | | llvm-svn: 37966
* These rountines are now available as part of basic block utilities.Devang Patel2007-07-061-66/+5
| | | | llvm-svn: 37955
* Request DominanceFrontiner in advance.Devang Patel2007-07-061-0/+5
| | | | llvm-svn: 37954
* Preserve various analysis info.Devang Patel2007-07-061-19/+88
| | | | llvm-svn: 37953
* Add SplitEdge and SplitBlock utility routines. Devang Patel2007-07-061-0/+61
| | | | llvm-svn: 37952
* Be more aggressive in the heuristic. This mostly exposes more opportunitiesOwen Anderson2007-07-061-8/+16
| | | | | | for the GVN part of GVNPRE to apply. llvm-svn: 37951
* Achieve what the incorrect test was trying to do by simply requiring that allOwen Anderson2007-07-061-6/+1
| | | | | | critical edges be split before we begin. llvm-svn: 37949
* Remove an incorrect check.Owen Anderson2007-07-061-5/+0
| | | | llvm-svn: 37948
* Correct a typo.Zhou Sheng2007-07-061-1/+1
| | | | llvm-svn: 37936
* Fix a bunch of issues found in a testcase from 400.perlbench.Owen Anderson2007-07-051-16/+19
| | | | llvm-svn: 37929
* Break "variable canonicalization" out of InequalityGraph and into its own classNick Lewycky2007-07-051-269/+287
| | | | | | "ValueNumbering". llvm-svn: 37881
* Fix another bug, this time in PREing select instructions.Owen Anderson2007-07-041-2/+1
| | | | llvm-svn: 37878
* Fix a typo that was killing GVNPRE of select instructions.Owen Anderson2007-07-041-1/+1
| | | | llvm-svn: 37871
* Fix an error in phi translation of GEPs that was causing failures.Owen Anderson2007-07-041-1/+1
| | | | llvm-svn: 37868
* Add support for performing GVNPRE on GEP instructions.Owen Anderson2007-07-031-5/+162
| | | | llvm-svn: 37862
* Add functionality to value number GEP instructions. This also provides the ↵Owen Anderson2007-07-031-2/+32
| | | | | | | | infrastructure that will be used for function calls. NOTE: This does not yet do any transformation of GEPs or function calls. llvm-svn: 37860
* Make the unary operator case a bit faster, since casts are the only kind of ↵Owen Anderson2007-07-031-10/+4
| | | | | | unary operation. llvm-svn: 37857
* Add support for performing GVNPRE on cast instructions, and add a testcase ↵Owen Anderson2007-07-031-18/+116
| | | | | | for this. llvm-svn: 37856
* Preserve DominanceFrontier.Devang Patel2007-06-291-5/+29
| | | | llvm-svn: 37820
* Fix reference to iterator invalidated by an erase operation. UncoveredDavid Greene2007-06-291-3/+4
| | | | | | by _GLIBCXX_DEBUG. llvm-svn: 37796
* Do not filter loop if candidate branch is in loop header.Devang Patel2007-06-291-2/+0
| | | | llvm-svn: 37792
* Add support for value numbering (but not actually optimizing) cast instructions.Owen Anderson2007-06-291-1/+65
| | | | llvm-svn: 37789
* Add a type field to expressions in preparation for performing GVNPRE on casts.Owen Anderson2007-06-291-0/+12
| | | | llvm-svn: 37788
* Add support for performing GVNPRE on select instructions. This fixes ↵Owen Anderson2007-06-281-13/+57
| | | | | | test/Transforms/GVNPRE/select.ll. llvm-svn: 37783
* - Undo previous check and allow loop switch for condtion that is not insideDevang Patel2007-06-281-8/+7
| | | | | | | | loop. - Avoid loop unswich for loop header branch. - While cloning dominators fix typo and handle self dominating blocks. llvm-svn: 37772
* Update LoopUnswitch pass to preserve DomiantorTree.Devang Patel2007-06-281-32/+55
| | | | llvm-svn: 37771
* If a condition is not inside a loop then the condition is suitableDevang Patel2007-06-281-0/+7
| | | | | | to loop unswitch candidate for the loop. llvm-svn: 37770
* Make many sets a much more reasonable size. This decreases the time to optimizeOwen Anderson2007-06-281-65/+65
| | | | | | Anton's testcase from 35.5s to 34.7s. llvm-svn: 37769
* Use cached information that has already been computed to make clean() ↵Owen Anderson2007-06-271-52/+31
| | | | | | simpler and faster. This is a small speedup on most cases. llvm-svn: 37761
* Fold a lot of code into two cases: binary instructions and ternary instructions.Owen Anderson2007-06-271-269/+62
| | | | | | This saves many lines of code duplication. No functionality change. llvm-svn: 37759
* Fix a bug.Zhou Sheng2007-06-271-1/+4
| | | | llvm-svn: 37751
* Add support for performing GVNPRE on the three vector-specific operations.Owen Anderson2007-06-271-20/+436
| | | | llvm-svn: 37745
* 1. Correct some comments and clean up some dead code.Owen Anderson2007-06-261-21/+26
| | | | | | | 2. When calculating ANTIC_IN, only iterate the changed blocks. For most average inputs this is a small speedup, but for cases with unusual CFGs, this can be a significant win. llvm-svn: 37742
* fix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functionsChris Lattner2007-06-251-4/+8
| | | | | | with weak linkage. llvm-svn: 37723
* Use the built-in postorder iterators rather than computing a postorder walk ↵Owen Anderson2007-06-251-35/+3
| | | | | | by hand. llvm-svn: 37721
* 1) Fix an issue with non-deterministic iteration order in phi_translateOwen Anderson2007-06-251-111/+86
| | | | | | | | | | | 2) Remove some maximal-set computing code that is no longer used. 3) Use a post-order CFG traversal to compute ANTIC_IN instead of a postdom traversal. This causes the ANTIC_IN calculation to converge much faster. Thanks to Daniel Berlin for suggesting this. With this patch, the time to optimize 403.gcc decreased from 17.5s to 7.5s, and Anton's huge testcase decreased from 62 minutes to 38 seconds. llvm-svn: 37714
* Fix value ranges.Nick Lewycky2007-06-241-1/+1
| | | | llvm-svn: 37713
* Fix a silly mistake that was causing failures.Owen Anderson2007-06-241-2/+2
| | | | llvm-svn: 37712
* Remove tabs.Nick Lewycky2007-06-241-2/+2
| | | | llvm-svn: 37710
* Remove use of ETForest. Also cleaned up issues around unreachable basicNick Lewycky2007-06-241-156/+326
| | | | | | blocks, and optimizing within one basic block. llvm-svn: 37709
* Rework topo_sort so eliminate some behavior that scaled terribly. This ↵Owen Anderson2007-06-221-57/+40
| | | | | | | | reduces the time to optimize 403.gcc from 18.2s to 17.5s, and has an even larger effect on larger testcases. llvm-svn: 37708
* Perform fewer set insertions while calculating ANTIC_IN. This reduces the ↵Owen Anderson2007-06-221-40/+31
| | | | | | amount of time to optimize 403.gcc from 21.9s to 18.2s. llvm-svn: 37707
* Remove some code that I was using for collecting performance information ↵Owen Anderson2007-06-221-18/+18
| | | | | | that should not have been committed. llvm-svn: 37706
* Avoid excessive calls to find_leader when calculating AVAIL_OUT. This ↵Owen Anderson2007-06-221-30/+76
| | | | | | reduces the time to optimize 403.gcc from 23.5s to 21.9s. llvm-svn: 37702
* Reserve space in vectors before topologically sorting into them. This ↵Owen Anderson2007-06-221-0/+2
| | | | | | improves the time to optimize 403.gcc from 28s to 23.5s. llvm-svn: 37699
* Make a bunch of optimizations for compile time to GVNPRE, including smarter ↵Owen Anderson2007-06-221-17/+41
| | | | | | set unions, deferring blocks rather than computing maximal sets, and smarter use of sets. With these enhancements, the time to optimize 273.perlbmk goes from 5.3s to 2.7s. llvm-svn: 37698
OpenPOWER on IntegriCloud