summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/GVNPRE.cpp
Commit message (Collapse)AuthorAgeFilesLines
* explicit keywords.Dan Gohman2007-09-241-1/+1
| | | | llvm-svn: 42262
* Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfoChris Lattner2007-09-171-1/+4
| | | | | | | Add a new DenseMapInfo::isEqual method to allow clients to redefine the equality predicate used when probing the hash table. llvm-svn: 42042
* Update GEP constructors to use an iterator interface to fixDavid Greene2007-09-041-2/+2
| | | | | | GLIBCXX_DEBUG issues. llvm-svn: 41697
* Fix 80 col. violations.Owen Anderson2007-08-021-8/+14
| | | | llvm-svn: 40751
* Fix a bug where we were marking GEP expressions with the wrong opcode.Owen Anderson2007-07-201-1/+1
| | | | llvm-svn: 40085
* Make val_replace fail early, which reduces the time to optimize 403.gcc to ↵Owen Anderson2007-07-191-0/+2
| | | | | | 14.8s. llvm-svn: 40064
* Use SmallVector and DenseMap in even more places.Owen Anderson2007-07-191-27/+26
| | | | | | With this, the time to optimize 403.gcc is down to 15.1s. llvm-svn: 40042
* Change ValueTable to use a DenseMap for mapping expressions to value numbers.Owen Anderson2007-07-191-78/+122
| | | | | | This results in a slight speedup for 403.gcc. llvm-svn: 40040
* Move some sets and maps to SmallPtrSet and DenseMap respectively. This Owen Anderson2007-07-191-8/+7
| | | | | | reduces the time to optimize 403.gcc from 17.6s to 16.4s. llvm-svn: 40036
* Make the pass registration static.Owen Anderson2007-07-101-2/+2
| | | | llvm-svn: 38508
* Move some key maps from std::map to DenseMap. This improves the time to ↵Owen Anderson2007-07-101-4/+8
| | | | | | | | optimize Anton's testcase from 17.5s to 15.7s. llvm-svn: 38480
* Use a cheaper test, delaying calling find_leader() until we know that it's ↵Owen Anderson2007-07-101-3/+5
| | | | | | | | necessary. This improves the time to optimize Anton's testcase from 21.1s to 17.6s. llvm-svn: 38479
* Add an assertion if find_leader fails.Owen Anderson2007-07-091-0/+1
| | | | llvm-svn: 38477
* Take advantage of the new fast SmallPtrSet assignment operator when ↵Owen Anderson2007-07-091-20/+6
| | | | | | | | propagating AVAIL_OUT sets. This reduces the time to optimize Anton's testcase from 31.2s to 21.s! llvm-svn: 38475
* 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
* 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
* Fix a bunch of issues found in a testcase from 400.perlbench.Owen Anderson2007-07-051-16/+19
| | | | llvm-svn: 37929
* 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
* 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
* 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
* 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
* 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 a silly mistake that was causing failures.Owen Anderson2007-06-241-2/+2
| | | | llvm-svn: 37712
* 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
* Change lots of sets from std::set to SmallPtrSet. This reduces the time ↵Owen Anderson2007-06-211-92/+99
| | | | | | required to optimize 253.perlbmk from 10.9s to 5.3s. llvm-svn: 37690
* Eliminate a redundant check. This speeds up optimization of 253.perlbmk ↵Owen Anderson2007-06-211-7/+3
| | | | | | from 13.5 seconds to 10.9 seconds. llvm-svn: 37683
* Comment-ize the functions in GVNPRE.Owen Anderson2007-06-211-76/+108
| | | | llvm-svn: 37681
* Split runOnFunction into many smaller functions. This make it easier to get ↵Owen Anderson2007-06-201-279/+329
| | | | | | accurate performance analysis of GVNPRE. llvm-svn: 37678
OpenPOWER on IntegriCloud