aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Stop using DataStructureGraph.hChris Lattner2002-10-101-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4106 91177308-0d34-0410-b5e6-96231b3b80d8
* - Dramatically simplify the ConstantMerge code now thatChris Lattner2002-10-091-102/+3
| | | | | | | Value::replaceAllUsesWith works with constants correctly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4104 91177308-0d34-0410-b5e6-96231b3b80d8
* Almost a complete rewrite of FunctionResolution to now resolve functionsChris Lattner2002-10-091-122/+213
| | | | | | | | | | | | | | | and global variables. This fixes bug: FuncResolve/2002-08-19-ResolveGlobalVarsEasier.ll And bug: SingleSource/UnitTests/2002-10-09-ArrayResolution.c Note that this does not fix bug: FunctionResolve/2002-08-19-ResolveGlobalVars.ll because replaceAllUsesWith breaks when a constantexpr is pointing to the thing being replaced. This is more of an infrastructure problem than anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4099 91177308-0d34-0410-b5e6-96231b3b80d8
* - Rename MTy to FTy (no methods exist anymore)Chris Lattner2002-10-091-9/+13
| | | | | | | - Fix bug: LevelRaise/2002-10-08-VarArgCallInfLoop.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4088 91177308-0d34-0410-b5e6-96231b3b80d8
* - Fix bug: LevelRaise/2002-10-08-VarArgCall.llChris Lattner2002-10-081-1/+39
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4083 91177308-0d34-0410-b5e6-96231b3b80d8
* - Fix bug: cee/2002-10-07-NoImmediateDominator.llChris Lattner2002-10-082-2/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4081 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes to support PHINode::removeIncoming changesChris Lattner2002-10-081-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4080 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes to support PHINode::removeIncoming changesChris Lattner2002-10-081-9/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4079 91177308-0d34-0410-b5e6-96231b3b80d8
* - Checkin LARGE number of Changes to CEE pass that will make it much moreChris Lattner2002-10-081-53/+394
| | | | | | | | | | | | powerful, but that are largely disabled. The basic idea here is that it is trying to forward branches across basic blocks that have PHI nodes in it, which are crucial to be able to handle cases like whet.ll. Unfortunately we are not updating SSA correctly, causing sim.c to die, and I don't have time to fix the regression now, so I must disable the functionality. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4077 91177308-0d34-0410-b5e6-96231b3b80d8
* Expose isCriticalEdge & SplitCriticalEdge methods from crit-edges passChris Lattner2002-10-082-18/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4075 91177308-0d34-0410-b5e6-96231b3b80d8
* It is illegal for PHI nodes to have zero values, delete the code to handle themChris Lattner2002-10-081-2/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4071 91177308-0d34-0410-b5e6-96231b3b80d8
* Fold ashr -1, X into -1Chris Lattner2002-10-081-0/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4070 91177308-0d34-0410-b5e6-96231b3b80d8
* Non-functionality change just to make it more clear what is going onChris Lattner2002-10-071-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4060 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: 2002-10-02-SignExtensionProblem.llChris Lattner2002-10-021-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4017 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes to work with Statistics reworkChris Lattner2002-10-011-7/+1
| | | | | | | | | | | | | * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4004 91177308-0d34-0410-b5e6-96231b3b80d8
* Updates to work with recent Statistic's changes:Chris Lattner2002-10-0125-140/+132
| | | | | | | | | | | | | * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4002 91177308-0d34-0410-b5e6-96231b3b80d8
* Updates to work with recent Statistic's changes:Chris Lattner2002-10-016-19/+12
| | | | | | | | | | | | | * Renamed StatisticReporter.h/cpp to Statistic.h/cpp * Broke constructor to take two const char * arguments instead of one, so that indendation can be taken care of automatically. * Sort the list by pass name when printing * Make sure to print all statistics as a group, instead of randomly when the statistics dtors are called. * Updated ProgrammersManual with new semantics. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4001 91177308-0d34-0410-b5e6-96231b3b80d8
* Build subdirs in parallelChris Lattner2002-10-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4000 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in LICM that caused the previous big win. :(Chris Lattner2002-09-291-13/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3980 91177308-0d34-0410-b5e6-96231b3b80d8
* Hoist the contents of Loops in depth first order in the dominator tree,Chris Lattner2002-09-291-6/+36
| | | | | | | | | | rather than in random order. This causes LICM to be DRAMATICALLY more effective. For example, on bzip2.c, it is able to hoist 302 loads and 2380 total instructions, as opposed to 44/338 before. This obviously makes other transformations much more powerful as well! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3978 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix major bugs in dominator set & tree information updatingChris Lattner2002-09-291-6/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3975 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert DIRS to PARALLEL_DIRS. They can be built independently.Vikram S. Adve2002-09-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3972 91177308-0d34-0410-b5e6-96231b3b80d8
* - Further cleanups of LICM pass, remove extra work from previous implementationChris Lattner2002-09-261-59/+25
| | | | | | | - Do not clone instructions then insert clone outside of loop. Just move them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3951 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve comments, doxygenize moreChris Lattner2002-09-261-20/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3950 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up LICM significantly now that it is guaranteed to have loop preheadersChris Lattner2002-09-261-99/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3947 91177308-0d34-0410-b5e6-96231b3b80d8
* Change pass name to something saneChris Lattner2002-09-261-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3946 91177308-0d34-0410-b5e6-96231b3b80d8
* Loop invariant code motion now depends on the LoopPreheader pass. Dead codeChris Lattner2002-09-261-5/+10
| | | | | | | has not yet been removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3945 91177308-0d34-0410-b5e6-96231b3b80d8
* - Cleanup break-crit-edges pass by making SplitCriticalEdge a member method.Chris Lattner2002-09-262-58/+60
| | | | | | | - break-crit-edges pass does not invalidate loop-preheader pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3944 91177308-0d34-0410-b5e6-96231b3b80d8
* Checkin new loop-preheader insertion pass.Chris Lattner2002-09-261-0/+189
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3942 91177308-0d34-0410-b5e6-96231b3b80d8
* Converted SimpleStructMutation to take TargetData as a required pass.Chris Lattner2002-09-261-24/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3932 91177308-0d34-0410-b5e6-96231b3b80d8
* Change LowerAllocations pass to 'require' TargetData instead of it beingChris Lattner2002-09-251-28/+28
| | | | | | | passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3929 91177308-0d34-0410-b5e6-96231b3b80d8
* - Fix bug: Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.llChris Lattner2002-09-241-2/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3917 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate extraneous #includeChris Lattner2002-09-241-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3916 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug: SimplifyCFG/2002-09-24-PHIAssertion.llChris Lattner2002-09-241-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3913 91177308-0d34-0410-b5e6-96231b3b80d8
* - Do not expose Critical Edge breaking mechanics outside the BCE pass, thusChris Lattner2002-09-241-93/+0
| | | | | | | removing it from Transforms/Local.h and from Transforms/Utils/* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3911 91177308-0d34-0410-b5e6-96231b3b80d8
* - Do not expose Critical Edge breaking mechanics outside the BCE pass, thusChris Lattner2002-09-242-18/+188
| | | | | | | removing it from Transforms/Local.h and from Transforms/Utils/* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3910 91177308-0d34-0410-b5e6-96231b3b80d8
* Correlated Exprs pass now requires BCE pass instead of doing it manuallyChris Lattner2002-09-241-20/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3908 91177308-0d34-0410-b5e6-96231b3b80d8
* - Expose passinfo from BreakCriticalEdges pass so that it may be "Required"Chris Lattner2002-09-242-28/+34
| | | | | | | by other passes. Make BCE pass be in anonymous namespace now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3907 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanupsChris Lattner2002-09-241-7/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3904 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new BreakCriticalEdges passChris Lattner2002-09-242-0/+104
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3903 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimize away cases like:Chris Lattner2002-09-231-0/+6
| | | | | | | | | %cast109 = cast uint %cast212 to short ; <short> [#uses=1] %cast214 = cast short %cast109 to uint ; <uint> [#uses=1] %cast215 = cast uint %cast214 to short ; <short> [#uses=1] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3897 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix: ConstantMerge/2002-09-23-CPR-Update.llChris Lattner2002-09-231-14/+102
| | | | | | | | | Basically, this bug boiled down to calling replaceUsesOfWith on a constant, which changed it's shape in an illegal way. This pass now goes through all of the trouble neccesary to do the replacement on constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3895 91177308-0d34-0410-b5e6-96231b3b80d8
* * Fix bug: CorrelatedExprs/2002-09-23-PHIUpdateBug.llChris Lattner2002-09-231-5/+20
| | | | | | | * Make sure "Changed" is updated correctly git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3891 91177308-0d34-0410-b5e6-96231b3b80d8
* Insert resolved constants into the global map so they are reused correctly.Chris Lattner2002-09-231-3/+6
| | | | | | | This bug was exposed linking the SPEC benchmark suite. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3888 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't insert a PHI node to merge "returns" from an inlined function if thereChris Lattner2002-09-221-1/+12
| | | | | | | is only a single return from the function! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3878 91177308-0d34-0410-b5e6-96231b3b80d8
* Added checking thresholdAnand Shukla2002-09-205-90/+185
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3864 91177308-0d34-0410-b5e6-96231b3b80d8
* split retracing into a separate fileAnand Shukla2002-09-181-0/+229
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3809 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed unnecessary #includes.Misha Brukman2002-09-182-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3802 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed typo.Misha Brukman2002-09-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3801 91177308-0d34-0410-b5e6-96231b3b80d8
* There is a #define in some header that conflicts with INFINITY, rename it.Chris Lattner2002-09-172-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3797 91177308-0d34-0410-b5e6-96231b3b80d8