aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* Pull iterators out of CFG.h and CFGdecls and put them in Support directoryChris Lattner2001-09-281-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@664 91177308-0d34-0410-b5e6-96231b3b80d8
* ADCE is broken but at least we know whyChris Lattner2001-09-281-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@656 91177308-0d34-0410-b5e6-96231b3b80d8
* Make ADCE more robust, it still has problems, but it's getting closerChris Lattner2001-09-091-37/+181
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@521 91177308-0d34-0410-b5e6-96231b3b80d8
* Types and constants are wierd things in symbol tables nowChris Lattner2001-09-071-3/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@457 91177308-0d34-0410-b5e6-96231b3b80d8
* * Eliminate reference to ConstantPool classChris Lattner2001-09-071-14/+7
| | | | | | | * Constants are global objects that are not allocated or freed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@456 91177308-0d34-0410-b5e6-96231b3b80d8
* Constant pool is deadChris Lattner2001-09-071-16/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@455 91177308-0d34-0410-b5e6-96231b3b80d8
* Constants are now global unique objectsChris Lattner2001-09-071-6/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@454 91177308-0d34-0410-b5e6-96231b3b80d8
* * Eliminate constant pool dependancies:Chris Lattner2001-09-071-29/+6
| | | | | | | * Eliminate DoRemoveUnusedConstants git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@453 91177308-0d34-0410-b5e6-96231b3b80d8
* * Supoprt global constantsChris Lattner2001-09-071-55/+13
| | | | | | | | | * Remove support for local constant pools * Eliminate constant pool merging method, which is no longer neccesary * Disable invalid optimization (todo: fix it) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@452 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable the elimination of method prototypes that are not referencedChris Lattner2001-07-281-4/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved inline/llvm/Tools/* to include/llvm/Support/*Chris Lattner2001-07-234-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
* Support external methodsChris Lattner2001-07-152-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200 91177308-0d34-0410-b5e6-96231b3b80d8
* Add knowledge about the struct form of the GetElementPtr instructionChris Lattner2001-07-141-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dependency on the structure of ValueHolder.Chris Lattner2001-07-141-6/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't clean out the type plane of the constant pool... this is a hack. FIXMEChris Lattner2001-07-091-1/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement checking for new instructionsChris Lattner2001-07-081-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the CDG to mark branches alive on demand.Chris Lattner2001-07-081-18/+42
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159 91177308-0d34-0410-b5e6-96231b3b80d8
* Neg instruction removed. Cast instruction implemented.Chris Lattner2001-07-081-10/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156 91177308-0d34-0410-b5e6-96231b3b80d8
* Broad superficial changes:Chris Lattner2001-07-075-16/+16
| | | | | | | | | | * Renamed getOpcode to getOpcodeName * Changed getOpcodeName to return a const char * instead of string * Added a getOpcode method to replace getInstType * Changed code to use getOpcode instead of getInstType git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed the fundemental architecture of Operands for Instructions. NowChris Lattner2001-07-074-19/+17
| | | | | | | | | | | | Operands are maintained as a vector<Use> in the User class, and operator iterators are provided as before. Getting an operand no longer requires a virtual function call. WARNING: getOperand(x) where x >= getNumOperands() will now assert instead of returning null! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149 91177308-0d34-0410-b5e6-96231b3b80d8
* Add method to unify all exit nodes of a methodChris Lattner2001-07-061-0/+69
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143 91177308-0d34-0410-b5e6-96231b3b80d8
* Update to include right fileChris Lattner2001-07-061-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial checkin. Should print dead instructions, except it doesn't doChris Lattner2001-06-301-0/+126
| | | | | | | control dependencies. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename DoSparseConditionalConstantProp -> DoSCCPChris Lattner2001-06-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117 91177308-0d34-0410-b5e6-96231b3b80d8
* Optimizations got their own header filesChris Lattner2001-06-306-147/+166
| | | | | | | | Optimizations now live in the 'opt' namespace include/llvm/Opt was renamed include/llvm/Optimizations git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113 91177308-0d34-0410-b5e6-96231b3b80d8
* Export ConstantFoldTerminator, allow it to fold conditional branches toChris Lattner2001-06-291-8/+30
| | | | | | | the same label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107 91177308-0d34-0410-b5e6-96231b3b80d8
* Added documentation. Constant fold terminators.Chris Lattner2001-06-291-5/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106 91177308-0d34-0410-b5e6-96231b3b80d8
* * Factored RemovePredecessorFromBlock into BasicBlock::removePredecessorChris Lattner2001-06-291-68/+30
| | | | | | | | | | * Avoid messing around with this case: br label %A %A: br label %A * Enable optimizations that are correct now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102 91177308-0d34-0410-b5e6-96231b3b80d8
* We need to make sure to remove PHI nodes in the successor that cannot beChris Lattner2001-06-291-0/+8
| | | | | | | executed when removing branch dest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101 91177308-0d34-0410-b5e6-96231b3b80d8
* Miscellaneous cleanups:Chris Lattner2001-06-273-63/+71
| | | | | | | | | | | | * Convert post to pre-increment for for loops * Use generic programming more * Use new Value::cast* instructions * Use new Module, Method, & BasicBlock forwarding methods * Use new facilities in STLExtras.h * Use new Instruction::isPHINode() method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new Sparse Conditional Constant Propogation passChris Lattner2001-06-271-0/+502
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95 91177308-0d34-0410-b5e6-96231b3b80d8
* Misc cleanupChris Lattner2001-06-271-32/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91 91177308-0d34-0410-b5e6-96231b3b80d8
* * Expose DoConstantPoolMergingChris Lattner2001-06-271-40/+24
| | | | | | | | * Cleanups (post->pre increment, new cleaner API, etc) * Moved stuff into ConstantHandling.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement induction variable injection!Chris Lattner2001-06-251-12/+76
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75 91177308-0d34-0410-b5e6-96231b3b80d8
* A silly stupid test of the loop depth calculator was added. REMOVE in theChris Lattner2001-06-251-0/+11
| | | | | | | future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72 91177308-0d34-0410-b5e6-96231b3b80d8
* #include a different header due to Intervals.h splitting upChris Lattner2001-06-241-9/+47
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a lot more functionality. Now loop invariant and linearChris Lattner2001-06-221-5/+253
| | | | | | | induction variables are correctly identified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved printing code to the Assembly/Writer library.Chris Lattner2001-06-211-27/+39
| | | | | | | Code now detects looping intervals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52 91177308-0d34-0410-b5e6-96231b3b80d8
* Get rid of a silly printout that isn't needed right nowChris Lattner2001-06-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45 91177308-0d34-0410-b5e6-96231b3b80d8
* Add capability to print a derived interval graphChris Lattner2001-06-201-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a test case for interval codeChris Lattner2001-06-201-0/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36 91177308-0d34-0410-b5e6-96231b3b80d8
* Updates to work with new cfg namespaceChris Lattner2001-06-131-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29 91177308-0d34-0410-b5e6-96231b3b80d8
* Updates to supportChris Lattner2001-06-112-17/+17
| | | | | | | * Changes in PHI node structure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated to work with new CFG.h file.Chris Lattner2001-06-071-20/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15 91177308-0d34-0410-b5e6-96231b3b80d8
* Significant rework. DCE is still not done (see #ifdef'd out parts)Chris Lattner2001-06-071-53/+188
| | | | | | | but at least the stuff that is checked in, now works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial revisionChris Lattner2001-06-064-0/+770
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2 91177308-0d34-0410-b5e6-96231b3b80d8