Commit Graph

2237 Commits

Author SHA1 Message Date
Chris Lattner
726582fa42 * Move stuff around a bit.
* Add reduce_apply_bool

llvm-svn: 88
2001-06-27 23:32:12 +00:00
Chris Lattner
8daf407266 Add instructions to fold unary and binary instructions.
llvm-svn: 87
2001-06-27 23:31:34 +00:00
Chris Lattner
5cfc551fa2 * Use the new reduce_apply_bool template
* Expose Constant Pool Merging from ConstantProp.cpp
* Include definitions for SCCP pass
* InstListType is not neccesary anymore

llvm-svn: 86
2001-06-27 23:31:14 +00:00
Chris Lattner
df93760653 getBasicBlocks() is not needed anymore for reading Method data
llvm-svn: 85
2001-06-27 23:30:11 +00:00
Chris Lattner
0bda227de5 Added methods to make dealing with switches and branch instructions
more tolerable.

llvm-svn: 84
2001-06-27 23:29:41 +00:00
Chris Lattner
a0b9025a9f Minor formating changes
llvm-svn: 83
2001-06-27 23:29:21 +00:00
Chris Lattner
3bcd915b32 Make a new GenericBinaryInst class, instead of providing lots of silly
little classes.

llvm-svn: 82
2001-06-27 23:28:50 +00:00
Chris Lattner
159093b8fe Add a new slew of functions to allow dynamic_cast<> like operation for
upcasting Value's to their subclasses.

llvm-svn: 80
2001-06-27 23:27:42 +00:00
Chris Lattner
b2d6da7f1e Add extra forwarding accessor methods so that getMethodList(), getBasicBlocks()
and getInstList() are obsolete... except for when modifying those lists.  This
makes code much more succinct and to the point.

llvm-svn: 79
2001-06-27 23:26:41 +00:00
Chris Lattner
b408df97c8 * Rename get.*Operator to create seeing that it would have to be qualified
with the classname anyways.
* Add an isPHINode() method to Instruction
* Add getUniqueName() to SymbolTable class
* Add an insert method to ValueHolder

llvm-svn: 73
2001-06-25 07:31:05 +00:00
Chris Lattner
fda748370f Add a helper function bind_obj
llvm-svn: 70
2001-06-25 03:54:32 +00:00
Chris Lattner
108acdb1a7 Big changes. Interval*.h is now more or less finalized. IntervalPartition
is recoded to use IntervalIterators.  IntervalIterators can now maintain
their own memory or let an external entity do it.

Loop depth is a new user of IntervalPartition for calculating the loop
nesting depth of a basic block

TODO: add IntervalPartition capability to split intervals between the looping
portion and the "tail" portion.

llvm-svn: 69
2001-06-25 03:54:14 +00:00
Chris Lattner
61867b5b5d CFG.h: change the iterator tag
Method.h: Add an iterator type.

llvm-svn: 68
2001-06-25 03:52:19 +00:00
Chris Lattner
7841ebeb00 New files due to the Intervals.h splitup
llvm-svn: 65
2001-06-24 04:07:37 +00:00
Chris Lattner
4316c524b4 IntervalPartition & IntervalIterator classes have been split out into
their own .h files

llvm-svn: 61
2001-06-24 04:05:09 +00:00
Chris Lattner
bafc68aaf9 Addition of IntervalIterator. Preparing for rename of Intervals.h to
Interval.h, IntervalPartition.h, and IntervalIterator.h

llvm-svn: 59
2001-06-24 03:22:59 +00:00
Chris Lattner
9e3bd15abf Add comments
Interval::HeaderNode is now accessed thorugh an accessor function

llvm-svn: 55
2001-06-22 02:23:27 +00:00
Chris Lattner
f0a36e647a Add accessor methods to binary/unary operators
Add extra helper methods to PHI class

llvm-svn: 54
2001-06-22 02:21:42 +00:00
Chris Lattner
ec920ae870 New header file defined with neeto utilities put in one place
llvm-svn: 50
2001-06-21 05:25:51 +00:00
Chris Lattner
8ec73986f5 Modified to use the new reduce_apply algorithm
llvm-svn: 49
2001-06-21 05:25:33 +00:00
Chris Lattner
ffd93e3c15 * Added capability to print out an interval
llvm-svn: 48
2001-06-21 05:25:09 +00:00
Chris Lattner
67ccf1f072 * Added comments
* Added prototype for new Interval::isLoop method
* Added destructor to free memory
* Added IntervalPartition::isDegeneratePartition method
* Added IntervalPartition::size() method

llvm-svn: 47
2001-06-21 05:24:46 +00:00
Chris Lattner
09e6e27f2c Add capability to build a derived interval graph
llvm-svn: 41
2001-06-20 22:44:32 +00:00
Chris Lattner
1148046a49 Factor the predeclarations of the CFG.h functionality into a seperate, new header
file: CFGdecls.h

This allows the addition of BasicBlock::(pred|succ)_iterator typedefs.

llvm-svn: 40
2001-06-20 22:44:16 +00:00
Chris Lattner
70a32da836 Add an optimization stub
llvm-svn: 35
2001-06-20 19:26:21 +00:00
Chris Lattner
f2a293a07b New file: Interval analysis support
llvm-svn: 34
2001-06-20 19:26:12 +00:00
Chris Lattner
ecf2e5ecf3 Implement support for writing VCG format output
llvm-svn: 28
2001-06-13 19:55:13 +00:00
Chris Lattner
4309ac0cb1 Move contents to the cfg namespace.
Implement post order and reverse post order iterators

llvm-svn: 27
2001-06-13 19:55:02 +00:00
Chris Lattner
c819db7005 Updates to support
* Changes in PHI node structure
* Fix to Predecessor iterator

llvm-svn: 23
2001-06-11 15:04:06 +00:00
Chris Lattner
11c3121788 Moved getBinaryOperator to the BinaryOperator class and the getUnaryOperator
to the UnaryOperator class (from the Instruction class).

llvm-svn: 21
2001-06-08 21:30:13 +00:00
Chris Lattner
33c5fbdc91 Beautify the source a bit.
llvm-svn: 19
2001-06-08 21:07:26 +00:00
Chris Lattner
c66bfe1b1e Include support for reverse iteration.
llvm-svn: 18
2001-06-08 20:52:54 +00:00
Chris Lattner
9839031654 Added reverse depth first capability, fixed depth first capability
llvm-svn: 16
2001-06-08 00:35:14 +00:00
Chris Lattner
cfdf8c6be1 Moved iterators to the new CFG.h file.
llvm-svn: 14
2001-06-07 21:18:35 +00:00
Chris Lattner
741fb756ab New file
llvm-svn: 13
2001-06-07 21:18:08 +00:00
Chris Lattner
0dcec884f6 Fixes for BB iterators, additional methods added for DCE pass
llvm-svn: 8
2001-06-07 16:58:36 +00:00
Chris Lattner
e6b9b382e2 Initial revision
llvm-svn: 2
2001-06-06 20:29:01 +00:00