summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Significantly improve the documentation of the instcombine divide/compareChris Lattner2007-06-211-35/+51
| | | | | | | | transformation. Also, keep track of which end of the integer interval overflows occur on. This fixes Transforms/InstCombine/2007-06-21-DivCompareMiscomp.ll and rdar://5278853, a miscompilation of perl. llvm-svn: 37692
* 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
* Move code to update dominator information after basic block is splitDevang Patel2007-06-212-202/+22
| | | | | | from LoopSimplify.cpp to Dominator.cpp llvm-svn: 37689
* 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
* refactor a bunch of code out of visitICmpInstWithInstAndIntCst into its ownChris Lattner2007-06-201-123/+134
| | | | | | routine. llvm-svn: 37679
* 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
* Make GVNPRE accurate report whether it modified the function or not.Owen Anderson2007-06-201-5/+12
| | | | llvm-svn: 37673
* Get rid of an unneeded helper function.Owen Anderson2007-06-201-19/+9
| | | | llvm-svn: 37670
* Use a DenseMap instead of an std::map for the value numbering. This reduces ↵Owen Anderson2007-06-191-4/+5
| | | | | | the time to optimize lencod on a PPC Debug build from ~300s to ~140s. llvm-svn: 37668
* Make dependsOnInvoke much more specific in what it tests, which in turn make ↵Owen Anderson2007-06-191-42/+10
| | | | | | it much faster to run. This reduces the time to optimize lencondwith a debug build on PPC from ~450s to ~300s. llvm-svn: 37667
* Moved Inliner.h to include/llvm/Transforms/IPO/InlinerPass.hTanya Lattner2007-06-191-65/+0
| | | | llvm-svn: 37666
* Inliner pass header file was moved.Tanya Lattner2007-06-192-2/+3
| | | | llvm-svn: 37665
* Rename ScalarEvolution::deleteInstructionFromRecords toDan Gohman2007-06-192-5/+5
| | | | | | | | | deleteValueFromRecords and loosen the types to all it to accept Value* instead of just Instruction*, since this is what ScalarEvolution uses internally anyway. This allows more flexibility for future uses. llvm-svn: 37657
* Handle constants in phi nodes properly. This fixes ↵Owen Anderson2007-06-191-1/+10
| | | | | | test/Transforms/GVNPRE/2007-06-18-ConstantInPhi.ll llvm-svn: 37655
* silence a bogus warning Duraid ran into.Chris Lattner2007-06-191-1/+1
| | | | llvm-svn: 37649
* Be careful to erase values from all of the appropriate sets when they're not ↵Owen Anderson2007-06-191-2/+14
| | | | | | needed anymore. This fixes a few more memory-related issues. llvm-svn: 37647
* Remember to clear the maximal sets between functions.Owen Anderson2007-06-191-2/+3
| | | | | | Thanks to Nicholas for valgrinding this. llvm-svn: 37646
* Refactor GVNPRE to use a much smart method of uniquing value sets, and ↵Owen Anderson2007-06-191-273/+451
| | | | | | centralize a lot of the value numbering information. No functionality change. llvm-svn: 37645
* Cache the results of dependsOnInvoke()Owen Anderson2007-06-181-4/+18
| | | | llvm-svn: 37622
* Fix indentation.Owen Anderson2007-06-181-6/+6
| | | | llvm-svn: 37621
* Don't perform an expensive check if it's not necessary.Owen Anderson2007-06-181-2/+12
| | | | llvm-svn: 37620
* Fix test/Transforms/GVNPRE/2007-06-15-InvokeInst.ll by ignoring all ↵Owen Anderson2007-06-161-3/+36
| | | | | | instructions that depend on invokes. llvm-svn: 37610
* Use SCEVConstant::get instead of SCEVUnknown::get to create anDan Gohman2007-06-151-2/+2
| | | | | | integer constant SCEV. llvm-svn: 37596
* Fix test/Transforms/GVNPRE/2007-06-15-Looping.llOwen Anderson2007-06-151-4/+2
| | | | llvm-svn: 37595
OpenPOWER on IntegriCloud