aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
* 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