Commit Graph

1248 Commits

Author SHA1 Message Date
Chris Lattner
9636a91649 Add support for new style casts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@694 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 16:18:37 +00:00
Chris Lattner
f0604b84c7 Pull predecessor and successor iterators out of the CFG*.h files, and plop them into
the BasicBlock class where they should be.  pred_begin/pred_end become methods on BasicBlock,
and the cfg namespace isn't used anymore.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@691 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 13:19:53 +00:00
Chris Lattner
3ff4387113 Pull iterators out of CFG.h and CFGdecls and put them in Support directory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@664 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 22:56:31 +00:00
Chris Lattner
8a396e57ab ADCE is broken but at least we know why
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@656 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 00:06:42 +00:00
Chris Lattner
b8259dd93c Make ADCE more robust, it still has problems, but it's getting closer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@521 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-09 22:26:47 +00:00
Chris Lattner
13b1f0cb4b Types and constants are wierd things in symbol tables now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@457 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:43:50 +00:00
Chris Lattner
b70d82fb39 * Eliminate reference to ConstantPool class
* 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
2001-09-07 16:43:22 +00:00
Chris Lattner
78721d5418 Constant pool is dead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@455 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:42:51 +00:00
Chris Lattner
7365745546 Constants are now global unique objects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@454 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:42:26 +00:00
Chris Lattner
2f11a9ded3 * Eliminate constant pool dependancies:
* Eliminate DoRemoveUnusedConstants


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@453 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:42:08 +00:00
Chris Lattner
9b644cc627 * Supoprt global constants
* 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
2001-09-07 16:41:30 +00:00
Chris Lattner
ee7cb29866 Enable the elimination of method prototypes that are not referenced
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-28 17:51:49 +00:00
Chris Lattner
57dbb3ad63 Moved inline/llvm/Tools/* to include/llvm/Support/*
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-23 17:46:59 +00:00
Chris Lattner
bc7135f5c0 Support external methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-15 21:43:45 +00:00
Chris Lattner
3b7bfdb201 Add knowledge about the struct form of the GetElementPtr instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-14 06:11:51 +00:00
Chris Lattner
20a155f5ab Remove dependency on the structure of ValueHolder.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-14 06:11:26 +00:00
Chris Lattner
c262f7298f Don't clean out the type plane of the constant pool... this is a hack. FIXME
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-09 19:38:52 +00:00
Chris Lattner
0bd654a049 Implement checking for new instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-08 21:18:49 +00:00
Chris Lattner
72f1e9929a Use the CDG to mark branches alive on demand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-08 18:38:36 +00:00
Chris Lattner
0908309e3c Neg instruction removed. Cast instruction implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-08 04:57:15 +00:00
Chris Lattner
a41f50dea8 Broad superficial changes:
* 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
2001-07-07 19:24:15 +00:00
Chris Lattner
c8b25d40cb Changed the fundemental architecture of Operands for Instructions. Now
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
2001-07-07 08:36:50 +00:00
Chris Lattner
63a0b2a9b4 Add method to unify all exit nodes of a method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-06 16:58:36 +00:00
Chris Lattner
d818312d09 Update to include right file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-06 16:32:07 +00:00
Chris Lattner
02e90d59c8 Initial checkin. Should print dead instructions, except it doesn't do
control dependencies.  :(


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-30 06:39:11 +00:00
Chris Lattner
49c8f64747 Rename DoSparseConditionalConstantProp -> DoSCCP
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-30 06:37:43 +00:00
Chris Lattner
7e02b7e600 Optimizations got their own header files
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
2001-06-30 04:36:40 +00:00
Chris Lattner
2b05880476 Export ConstantFoldTerminator, allow it to fold conditional branches to
the same label.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-29 23:56:58 +00:00
Chris Lattner
cb056de508 Added documentation. Constant fold terminators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-29 23:56:23 +00:00
Chris Lattner
25d17a5001 * Factored RemovePredecessorFromBlock into BasicBlock::removePredecessor
* 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
2001-06-29 05:24:28 +00:00
Chris Lattner
bca26a4c6b We need to make sure to remove PHI nodes in the successor that cannot be
executed when removing branch dest.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-29 05:23:10 +00:00
Chris Lattner
7fc9fe3439 Miscellaneous cleanups:
* 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
2001-06-27 23:41:11 +00:00
Chris Lattner
138a124f09 Add a new Sparse Conditional Constant Propogation pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-27 23:38:11 +00:00
Chris Lattner
3b34c59dcb Misc cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-27 23:36:09 +00:00
Chris Lattner
531450d8a6 * Expose DoConstantPoolMerging
* 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
2001-06-27 23:35:26 +00:00
Chris Lattner
d473a0acc4 Implement induction variable injection!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-25 07:32:19 +00:00
Chris Lattner
53b1c0161d A silly stupid test of the loop depth calculator was added. REMOVE in the
future.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-25 03:55:37 +00:00
Chris Lattner
c9f39b26c0 #include a different header due to Intervals.h splitting up
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-24 04:05:45 +00:00
Chris Lattner
364b147a0f Implement a lot more functionality. Now loop invariant and linear
induction variables are correctly identified.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-22 02:24:38 +00:00
Chris Lattner
da956802bd Moved printing code to the Assembly/Writer library.
Code now detects looping intervals


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-21 05:27:22 +00:00
Chris Lattner
5ef7afb011 Get rid of a silly printout that isn't needed right now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-20 23:09:39 +00:00
Chris Lattner
568320595c Add capability to print a derived interval graph
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-20 22:44:38 +00:00
Chris Lattner
d213f0f3a1 Add a test case for interval code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-20 19:27:11 +00:00
Chris Lattner
d36c91c9c6 Updates to work with new cfg namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-13 19:55:22 +00:00
Chris Lattner
ee976f3371 Updates to support
* Changes in PHI node structure


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-11 15:04:40 +00:00
Chris Lattner
dac6dda315 Updated to work with new CFG.h file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-07 21:18:45 +00:00
Chris Lattner
f155e13092 Significant rework. DCE is still not done (see #ifdef'd out parts)
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
2001-06-07 16:59:26 +00:00
Chris Lattner
009505452b Initial revision
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-06 20:29:01 +00:00