summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* Add support for printing out statistics information when -stats is added toChris Lattner2002-05-1017-17/+109
| | | | | | the command line llvm-svn: 2601
* Fix some bugs, straighten stuff out, more work needs to be done.Chris Lattner2002-05-101-19/+33
| | | | llvm-svn: 2600
* * Add support for the -stats command line option to report how much is changedChris Lattner2002-05-101-2/+24
| | | | | | | | * Make cast-of-self-ty DCE the dead cast instruction immediately instead of waiting for it to be DCE'd by another sweep over the function. This speeds this up noticably. llvm-svn: 2597
* Initial checkin of the PiNodeInsertion passChris Lattner2002-05-101-0/+185
| | | | llvm-svn: 2593
* Handle setcc <global*>, 0 instructions, Global pointers are never null!Chris Lattner2002-05-091-4/+18
| | | | llvm-svn: 2582
* Give the longer name to the instruction that will probably be eliminated laterChris Lattner2002-05-091-1/+2
| | | | llvm-svn: 2581
* Add ability to transform (x - (y - z)) into (x + (z - y))Chris Lattner2002-05-091-0/+13
| | | | llvm-svn: 2566
* * Combine: A-(-B) -> A + BChris Lattner2002-05-081-10/+6
| | | | | | * Bugfix: A + -B and -A + B llvm-svn: 2561
* Initial checkin of expression reassociation passChris Lattner2002-05-081-0/+198
| | | | llvm-svn: 2559
* Give the unified exit node a nameChris Lattner2002-05-071-1/+1
| | | | llvm-svn: 2550
* Fix bug: test/Regression/Transforms/ADCE/2002-01-31-UseStuckAround.llChris Lattner2002-05-071-46/+31
| | | | | | Cleanup code a lot llvm-svn: 2547
* Merge all individual .h files into a single Scalar.h fileChris Lattner2002-05-0710-10/+10
| | | | llvm-svn: 2537
* This doesn't use DCE!Chris Lattner2002-05-071-1/+0
| | | | llvm-svn: 2536
* Move UnifyFunctionExitNodes to Utils library: final resting place this timeChris Lattner2002-05-072-2/+2
| | | | llvm-svn: 2531
* fix comments and documentation in fileChris Lattner2002-05-071-6/+4
| | | | llvm-svn: 2530
* Split ChangeAllocations.cpp into Raise & LowerAllocations.cppChris Lattner2002-05-072-93/+118
| | | | llvm-svn: 2529
* Cleanup implementation a bitChris Lattner2002-05-071-4/+6
| | | | llvm-svn: 2526
* Updates to move some header files out of include/llvm/Transforms intoChris Lattner2002-05-076-40/+43
| | | | | | the Scalar and Utils subdirectories llvm-svn: 2523
* Reduce dependance on TransformInternals.h, instead using the TransformUtils ↵Chris Lattner2002-05-075-9/+18
| | | | | | library llvm-svn: 2518
* Add #include no longer included by llvm/Transforms/Scalar/ConstantProp.hChris Lattner2002-05-071-0/+1
| | | | llvm-svn: 2517
* Factor code out to the TransformUtils libraryChris Lattner2002-05-072-102/+5
| | | | llvm-svn: 2516
* Factor code out of TransformInternals into the Transform Utils libraryChris Lattner2002-05-072-88/+0
| | | | llvm-svn: 2515
* Build Transforms Utils libraryChris Lattner2002-05-071-1/+1
| | | | llvm-svn: 2514
* Add code pulled out of TransformInternals.cpp, ConstProp.cpp, and DCE.cppChris Lattner2002-05-073-0/+196
| | | | llvm-svn: 2513
* * Convert InstWorkList to vector instead of set, because on big programs itChris Lattner2002-05-071-5/+5
| | | | | | | is empirically faster by a noticable margin, even though duplicates can happen. llvm-svn: 2511
* * Remove all cfg simplification stuff for a new cfg simplify pass (todo)Chris Lattner2002-05-071-330/+85
| | | | | | * Convert to worklist instead of iterative algorithm llvm-svn: 2510
* Only do masking for unsigned values!Chris Lattner2002-05-061-8/+7
| | | | llvm-svn: 2504
* * Eliminate dead code that should have been removed in last revisionChris Lattner2002-05-061-146/+50
| | | | | | | | | * Convert main constant propogation pass to be worklist driven instead of iterative. * -constprop pass no longer "constant propogates" terminator instructions - CFG is now preserved! llvm-svn: 2502
* Handle X = phi Y --> X = YChris Lattner2002-05-061-0/+19
| | | | llvm-svn: 2501
* * Use simplified interface to constant propogation stuff.Chris Lattner2002-05-061-35/+8
| | | | | | | | * Remove dead PHI case (which could not work due to getNumOperands rather than getNumIncomingValues. This really belongs in InstCombine, anyway so we'll move it there. llvm-svn: 2497
* Clean up ADCE by removing extraneous wrapper classChris Lattner2002-05-061-43/+42
| | | | llvm-svn: 2494
* Combine not (not X) -> XChris Lattner2002-05-061-1/+14
| | | | llvm-svn: 2493
* Support more cases...Chris Lattner2002-05-061-16/+43
| | | | llvm-svn: 2490
* Add many more instruction combination simplificationsChris Lattner2002-05-061-10/+188
| | | | llvm-svn: 2484
* Merge blocks like this:Chris Lattner2002-05-061-26/+39
| | | | | | | | | | void "test3"(bool %T) { br bool %T, label %BB1, label %BB1 BB1: ret void } llvm-svn: 2472
* Implement constant propogation of shift instructionsChris Lattner2002-05-062-7/+42
| | | | llvm-svn: 2471
* Ok, really it only takes me 3 times to get this right!Chris Lattner2002-05-021-1/+1
| | | | | | Now use #if 0 instead of #ifdef 0 llvm-svn: 2448
* Oops, disable debugging code all the way. :)Chris Lattner2002-05-021-1/+1
| | | | llvm-svn: 2447
* * Finish the implementation of isEdgeFeasible this fixes bug:Chris Lattner2002-05-021-57/+77
| | | | | | | | | test/Regression/Transforms/SCCP/2002-05-02-EdgeFailure.ll * SCCP now preserves the CFG: It leaves conditional branches the way they are in the program, not simplifying them. A seperate pass should eliminate the potentially dead basic blocks and edges in the CFG. llvm-svn: 2446
* * Enable SCCP debugging to be turned on with a simple change of #defineChris Lattner2002-05-021-32/+52
| | | | | | | | | | | | | * Change worklist to a set so that duplicates cannot happen * Add support for the invoke instruction * Avoid marking store and free instructions as overdefined, since they cannot produce a value anyway. * Inline the OperandChangedState implementation * Add isEdgeFeasible in preparation to fix a bug. Right now it behaves exactly as before. * Remove obsolete comment about constant pools llvm-svn: 2445
* * Simplify the code by not bothering to name the folded constantChris Lattner2002-05-021-10/+7
| | | | | | | | * Do not skip the instruction immediately after a folded instruction. This was causing the testcase failure: test/Regression/Transforms/SCCP/2002-05-02-MissSecondInst.ll llvm-svn: 2443
* ExprTypeConvert will already do this transformation, no need to specializeChris Lattner2002-05-021-21/+0
| | | | | | it here. llvm-svn: 2431
* Be a little more efficient, do not generate loads and stores with indices in ↵Chris Lattner2002-05-021-25/+37
| | | | | | them. llvm-svn: 2430
* Fix bug: test/Regression/Transforms/LevelRaise/2002-05-02-BadCastElimination.llChris Lattner2002-05-021-0/+9
| | | | llvm-svn: 2429
* * Add ability to eliminate a bunch of different cascading cast variationsChris Lattner2002-05-021-2/+60
| | | | | | * Allow elimination of getelementptr X, uint 0 (which is a noop) llvm-svn: 2428
* Fixed bug: ↵Chris Lattner2002-05-011-0/+3
| | | | | | test/Regression/Transforms/Mem2Reg/2002-05-01-ShouldNotPromoteThisAlloca.ll llvm-svn: 2423
* Remove unneccesary passChris Lattner2002-04-301-86/+0
| | | | llvm-svn: 2420
* Add folding rules for mul X, 0 and mul X, 2Chris Lattner2002-04-291-3/+13
| | | | llvm-svn: 2417
* Significantly clean up SCCP pass. Now the two classes are merged and inChris Lattner2002-04-291-44/+37
| | | | | | an anonymous namespace where they belong. llvm-svn: 2415
* Range insertion now returns an iteratorChris Lattner2002-04-291-5/+2
| | | | llvm-svn: 2414
OpenPOWER on IntegriCloud