aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms
AgeCommit message (Collapse)Author
2003-12-22Fix PR194Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10573 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19Fix ADCE/2003-12-19-MergeReturn.llxChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10539 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19Remove the wierd "Operands" loop, by traversing basicblocks in reverse orderChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10536 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19Implement LICM/sink_multiple.ll, by sinking all possible instructions in theChris Lattner
loop before hoisting any. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10534 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19Generalize a special case to fix PR187Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10531 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19Factor code out into the Utils libraryChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10530 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-19Add new functionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10529 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18Reverted back to previous revision - this was previously mergedJohn Criswell
according to the CVS log messages. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10517 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18Merged in RELEASE_11.John Criswell
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10516 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-18When we delete instructions from the loop, make sure to remove them from theChris Lattner
AliasSetTracker as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10507 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-15Fix for PR185 & IndVarsSimplify/2003-12-15-Crash.llxChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10473 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14Refactor code just a little bit, allowing us to implement ↵Chris Lattner
TailCallElim/return_constant.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10467 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-14Do not promote volatile alias sets into registersChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10458 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11Fix LICM/2003-12-11-SinkingToPHI.ll, and quite possibly all of the other ↵Chris Lattner
known problems in the universe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10409 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-11verifyFunction depends on dominator info, which levelraise does not declareChris Lattner
that it needs. This is pretty scary code! This fixes Regression.Transforms.LevelRaise.2002-07-16-SourceAndDestCrash Regression.Transforms.LevelRaise.2002-07-31-AssertionFailure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10406 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Fix bug: LICM/sink_multiple_exits.llChris Lattner
Thanks for pointing this out John :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10387 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Don't allow dead instructions to stop sinking early.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10386 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Fix bug: IndVarsSimplify/2003-12-10-RemoveInstrCrash.llxChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10385 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Finegrainify namespacificationChris Lattner
Fix bug: LowerInvoke/2003-12-10-Crash.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10382 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Finegrainify namespacificationChris Lattner
Reorder #includes Implement: IndVarsSimplify/2003-12-10-IndVarDeadCode.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10376 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Finegrainify namespacificationChris Lattner
Fix bug: LoopSimplify/2003-12-10-ExitBlocksProblem.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10373 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Simplify codeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10371 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Avoid performing two identical lookups when one will sufficeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10370 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Make LICM itself a bit more efficient, and make the generated code more ↵Chris Lattner
efficient too: don't insert a store in every exit block, because a particular block may be exited to more than once by a loop git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10369 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-10Implement instruction sinking out of loops. This still can do a little bitChris Lattner
better job, but this is the majority of the work. This implements LICM/sink*.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10358 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09Do not insert one entry PHI nodes in split exit blocks!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10348 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09Refactor code a little bit, eliminating the gratuitous InstVisitor, whichChris Lattner
should make subsequent changes simpler. This also allows us to hoist vaarg and vanext instructions git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10342 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-09Fine grainify namespacificationChris Lattner
Code cleanups Make LICM::SafeToHoist marginally more efficient git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10341 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08Implement: TailCallElim/accum_recursion_constant_arg.llChris Lattner
Also make sure to clean up any PHI nodes that are inserted which are pointless. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10333 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08Implement: test/Regression/Transforms/TailCallElim/accum_recursion.llChris Lattner
We now insert accumulator variables as necessary to eliminate tail recursion more aggressively. This is still fairly limited, but allows us to transform fib/factorial, and other functions into nice happy loops. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10332 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-08Cleanup and restructure the code to make it easier to read and maintain.Chris Lattner
The only functionality change is that we now implement: Regression/Transforms/TailCallElim/intervening-inst.ll Which is really kinda pointless, because it means that trivially dead code does not interfere with -tce, but trivially dead code probably wouldn't be around anytime when this pass is run anyway. The point of including this change it to support other more aggressive transformations when we have the analysis capabilities to do so. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10312 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-07Implement RaiseAllocations/FreeCastConstantExpr.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10305 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-07* Finegrainify namespacificationChris Lattner
* Transform: free <ty>* (cast <ty2>* X to <ty>*) into free <ty2>* X git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10303 91177308-0d34-0410-b5e6-96231b3b80d8
2003-12-02Finegrainify namespacificationChris Lattner
Fix regressions ScalarRepl/basictest.ll & arraytest.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10287 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-29Fix test: Transforms/LevelRaise/2003-11-28-IllegalTypeConversion.llChris Lattner
Some gep generalization changes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10252 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-25Do not use index type to determine what it is indexing into!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10226 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-22Delete dead lineChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10164 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-22Fix bug: Transforms/PruneEH/2003-11-21-PHIUpdate.llxChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10163 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-22Do not crash when deleing a region with a dead invoke instructionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10161 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-22Finegrainify namespacificationChris Lattner
The module stripping pass should not strip symbols on external globals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10157 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21Considering that CI is not even IN SCOPE here, I wooda thought the compilerChris Lattner
would have caught this. *sigh* git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10142 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21Finegrainify namespacificationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10138 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21Get rid of using decls, finegrainify namespacificationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10137 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21* Finegrainify namespacificationChris Lattner
* Make the cost metric for passing constants in as arguments to functions MUCH more accurate, by actually estimating the amount of code that will be constant propagated away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10136 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21Finegrainify namespacificationChris Lattner
Print out the costs for functions that AREN'T inlined as well git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10135 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-21Minor cleanups and simplificationsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10127 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-20* Finegrainify namespacificationChris Lattner
* Implement FuncResolve/2003-11-20-BogusResolveWarning.ll ... which eliminates a large number of annoying warnings. I know misha will miss them though! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10123 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-20Start using the nicer terminator auto-insertion APIChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10111 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-20Spew symbolic types!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10110 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-20When spewing out warnings during function resolution, do not vomit out pagesChris Lattner
and pages of non-symbolic types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10109 91177308-0d34-0410-b5e6-96231b3b80d8