Chris Lattner
a36e2a7fbe
hasSideEffects should be marked virtual
...
stores and free's have sideeffects
llvm-svn: 170
2001-07-09 19:38:26 +00:00
Chris Lattner
9373328e93
Fix stupid typo
...
llvm-svn: 168
2001-07-09 16:54:29 +00:00
Chris Lattner
6065e61656
Implementation of Store & GetElementPtr
...
llvm-svn: 164
2001-07-08 23:22:50 +00:00
Chris Lattner
dccda26cd8
Implemented shl, shl, & load instructions
...
llvm-svn: 161
2001-07-08 21:10:27 +00:00
Chris Lattner
3473967aeb
Moved Cast from being a Unary instruction to being an "Other" instruction
...
llvm-svn: 160
2001-07-08 19:03:27 +00:00
Chris Lattner
246d869f71
Add a new "addOperand" method to User.
...
llvm-svn: 158
2001-07-08 18:38:18 +00:00
Chris Lattner
7a7ddef47e
Neg instruction removed. Cast instruction implemented.
...
llvm-svn: 156
2001-07-08 04:57:15 +00:00
Chris Lattner
1619a709b4
Convert BinaryOperand and UnaryOperator to only take instruction types of
...
the appropriate enum
llvm-svn: 153
2001-07-07 20:17:23 +00:00
Chris Lattner
c00392210d
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
llvm-svn: 152
2001-07-07 19:24:15 +00:00
Chris Lattner
cd5bbb0001
Devirtualize User::dropAllReferences
...
llvm-svn: 151
2001-07-07 19:00:36 +00:00
Chris Lattner
9044bfe6a6
Remove dtor's that simply call dropAllReferences
...
llvm-svn: 150
2001-07-07 18:42:52 +00:00
Chris Lattner
6f7587e4d3
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!
llvm-svn: 149
2001-07-07 08:36:50 +00:00
Chris Lattner
f084b21644
New file, includes method to merge exit nodes together
...
llvm-svn: 141
2001-07-06 16:57:52 +00:00
Chris Lattner
f1f61a28cc
* Add a DominatorBase base class to maintain root of Dominator info
...
* Implement post dominator support
llvm-svn: 140
2001-07-06 16:57:21 +00:00
Chris Lattner
0cca9fc688
* Added comments
...
* Made iterators inherit from appropriate iterator base class
* Abstracted out graphs from depth first iterator
* Add "Inverse" traversal of CFG
llvm-svn: 139
2001-07-06 16:56:17 +00:00
Chris Lattner
223a2f8df5
IntervalPartition was changed to inherit from vector<Interval*> instead of
...
contain it so that it would have full iterator access without much work.
llvm-svn: 132
2001-07-03 15:28:08 +00:00
Chris Lattner
3fe0657ad9
Checkin of new Analysis result printing header
...
llvm-svn: 130
2001-07-03 05:37:26 +00:00
Chris Lattner
0aeb371764
Remove code for printing out Analysis data structures. It got moved
...
llvm-svn: 128
2001-07-03 05:35:52 +00:00
Chris Lattner
94ca55178d
Update documentation a bit, correct #include guard
...
llvm-svn: 127
2001-07-03 05:35:23 +00:00
Chris Lattner
75057fa064
Enable printing of dominator related information.
...
Theis will eventually be moved!
llvm-svn: 123
2001-07-02 05:45:30 +00:00
Chris Lattner
4a9f31a0a7
Add new anaysis routines for building dominator related information
...
llvm-svn: 122
2001-07-02 05:45:17 +00:00
Chris Lattner
be2224f993
Addition of 'deleter' function.
...
llvm-svn: 121
2001-07-02 01:09:41 +00:00
Chris Lattner
b8dcf545b8
Add prototypes for ADCE pass
...
llvm-svn: 115
2001-06-30 06:37:16 +00:00
Chris Lattner
f214ef4014
Rename DoSparseConditionalConstantProp to DoSCCP
...
llvm-svn: 114
2001-06-30 06:37:01 +00:00
Chris Lattner
5ce7b422a1
Add a new pop_back() method
...
llvm-svn: 111
2001-06-30 04:35:21 +00:00
Chris Lattner
6ba8542caa
The ConstRules class got moved to the opt namespace
...
llvm-svn: 110
2001-06-30 04:35:01 +00:00
Chris Lattner
57248a3460
Add a reduceApply method
...
llvm-svn: 109
2001-06-30 04:34:42 +00:00
Chris Lattner
b94dddaef6
Split AllOpts.h into lots of little .h files.
...
llvm-svn: 108
2001-06-30 04:34:07 +00:00
Chris Lattner
44cd71222f
Added prototype for ConstantFoldTerminator
...
llvm-svn: 105
2001-06-29 23:56:00 +00:00
Chris Lattner
86827f3d2d
Added new removePredecessor method prototype
...
llvm-svn: 99
2001-06-29 05:21:42 +00:00
Chris Lattner
d616582a7a
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
llvm-svn: 96
2001-06-27 23:41:11 +00:00
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