Chris Lattner
601fc7c71c
Eliminate uses of MachineBasicBlock::get
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4340 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 18:01:21 +00:00
Chris Lattner
55291ead55
Rename MachineCodeForBasicBlock to MachineBasicBlock
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4318 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-28 01:41:47 +00:00
Chris Lattner
4bdb9b7ebe
- Make sure to only keep track of mappings that the TD pass may need in the
...
future. This prevents having spurious map entries to nodes that we really
don't care about. This allows us to reenable the DeadNodeElim, which was
disabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4260 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-22 16:01:03 +00:00
Chris Lattner
9faf18d523
The callee is not correct, and confuses the TD pass. Null it out.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4259 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-22 15:58:46 +00:00
Chris Lattner
e4ae3041f9
Delete unused arguments to DSGraph::cloneInto method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4253 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 19:50:29 +00:00
Chris Lattner
198be22cec
- Add "ResolvingCaller" to the CallSite record. This keeps track of which
...
function was finally able to resolve the function call. Adding this allows
the TD pass to actually work right!
- Temporarily disable dead node pruning. This will be reenabled soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4252 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 19:47:18 +00:00
Chris Lattner
eff0da9d33
Add another copy ctor form
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4251 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 15:32:34 +00:00
Chris Lattner
99a22847ba
As it turns out, we don't need a fully generic mapping copy ctor, we just need
...
something that maps through a std::map. Since this simplified the client and
implementation code, do so now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4250 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 15:04:18 +00:00
Chris Lattner
448f4949dc
Don't create a new node for every reference to a global. This caused a huge
...
node explosion that doesn't help anything at all. In previous versions of
the representation this DID help, but not anymore.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4249 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 13:51:30 +00:00
Chris Lattner
482b651cf8
Fix a confusing bug that caused return value and callee pointers to not
...
be printed!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4248 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 13:47:57 +00:00
Chris Lattner
13ec72a12a
Remove some unneccesary 'using' directives
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4246 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 13:31:48 +00:00
Chris Lattner
65d6a9ee47
Fix bug with prior checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4242 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 02:18:55 +00:00
Chris Lattner
0969c50cb8
- Make DSCallSite not inherit from std::vector. Renamed methods slightly.
...
Make copy ctor have two versions to avoid dealing with conditional template
argument. DSCallSite ctor now takes all arguments instead of taking one
and being populated later.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4240 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-21 02:08:03 +00:00
Chris Lattner
0c8d73b74c
Avoid extra copy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4239 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 22:12:06 +00:00
Chris Lattner
9de906c72a
Simplify code a bit, add comment flyer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4238 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 22:11:44 +00:00
Chris Lattner
7836d609fa
Split some long lines
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4237 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 22:11:17 +00:00
Vikram S. Adve
26b98265b7
Remove spurious caller pointer in DSCallSite.
...
Also add functions to access pointer argument nodes cleanly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4235 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 21:41:02 +00:00
Chris Lattner
e80fe61a72
This function can be static
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4234 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 20:39:31 +00:00
Chris Lattner
d1f8d0abeb
Fix previous checkin :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4233 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 20:39:17 +00:00
Chris Lattner
bd14460289
Avoid extra callSite copy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4232 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 20:32:13 +00:00
Chris Lattner
af4800b8a9
Print the array flag
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4231 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 20:29:10 +00:00
Vikram S. Adve
42fd169310
Added a first-class representation for each call site that can be
...
used in the DS graphs. Essentially, what was vector<DSNodeHandle>
before is now a DSCallSite with the same vector, plus pointers to the
CallInst and the caller Function. The special-purpose class
BUDataStructure::CallSite is no longer needed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4228 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-20 18:07:37 +00:00
Chris Lattner
a3f8586d9d
Convert typerec to be a structure instead of a pair
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4226 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-18 18:22:46 +00:00
Chris Lattner
dc062d3e6c
Print Mod/ref info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4224 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 22:13:28 +00:00
Chris Lattner
06285237ea
Calculate mod/ref info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4223 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 22:13:19 +00:00
Chris Lattner
97e7f083f2
Remove more obsolete code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4221 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 20:53:12 +00:00
Chris Lattner
cf15db34d3
* Make the DSGraph cloner automatically merge global nodes
...
* BUClosure doesn't have to worry about global nodes
* TDClosure now works with global nodes
* Reenable DNE on TD pass, now that globals work right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4220 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 20:09:52 +00:00
Chris Lattner
3cc061c0e9
Remove obsolete code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4218 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:58:10 +00:00
Chris Lattner
19db0492b8
Enable incompleteness marking
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4217 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:57:28 +00:00
Chris Lattner
0e74412cee
* First try at implementing TD pass this does not merge global nodes yet,
...
among other things.
* Significant rewrite of TD pass to avoid potentially N^2 algorithms if
possible. It is still not complete, but at least it's checked in now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4215 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:26:54 +00:00
Chris Lattner
e25ab83a5f
Reenable printing of TD analysis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4214 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:24:30 +00:00
Chris Lattner
613692c106
* Add data structures and code to track the call sites for each function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4213 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 04:24:08 +00:00
Chris Lattner
e17a4e8b55
Cleanup data structure graph printer, eliminate hard coded printing in
...
favor of generic printer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4209 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-17 01:02:46 +00:00
Chris Lattner
962ee45fe6
Make sure to print out the call nodes as well
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4203 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 20:16:16 +00:00
Chris Lattner
eb265cdc90
* Print the "return" node in the graphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4199 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 02:04:36 +00:00
Chris Lattner
ff5feedf28
The second element of the iterator is really an offset, not a link
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4196 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:43:11 +00:00
Chris Lattner
641e1c252d
Specify the graph name
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4195 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:34:28 +00:00
Chris Lattner
f29e307765
- DSGraph Printing Improvements:
...
* Print edge source labels again
* Override node shape to be Mrecord again, instead of just record.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4193 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-16 01:18:27 +00:00
Chris Lattner
f6c52db371
Halfway conversion from custom printing to GraphWriter printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4146 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13 19:31:57 +00:00
Vikram S. Adve
6e0bb63264
Use PARALLEL_DIRS.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4114 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11 16:08:17 +00:00
Misha Brukman
a27229013f
Added capability to get execution count of a loop if it is a predictable
...
number of iterations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4113 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11 05:34:32 +00:00
Misha Brukman
6b290a5440
Added helper functions in LoopInfo: isLoopExit and numBackEdges.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4112 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11 05:31:10 +00:00
Chris Lattner
7d821db958
Handle post dominance correctly in the case where blocks do not have a path to
...
the exit node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4038 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-04 14:50:20 +00:00
Chris Lattner
a00397e1ee
Prune function nodes that are no longer referenced due to inlining
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4036 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-03 21:55:28 +00:00
Chris Lattner
6727ec64e8
sgefa uses truely huge data structures nodes. Only print part of them if they
...
are so big
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4035 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-03 21:55:13 +00:00
Chris Lattner
62d928eac1
Handle bug exposed by power benchmark
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4033 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-03 21:06:38 +00:00
Chris Lattner
55c1058135
Reimplement/port the Bottom Up Closure pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4031 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-03 20:38:41 +00:00
Chris Lattner
c5f21de2bc
DataStructure.h doesn't include DSGraph.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4029 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 22:14:38 +00:00
Chris Lattner
e03f32bcc2
* Implement fully general merging of array subscripts on demand! This
...
does not handle the initial pointer index case yet though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4012 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 06:24:36 +00:00
Chris Lattner
9cfb358fa4
When printing DS nodes, print the mergemap index as well to allow easier
...
debugging of merging process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4010 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 05:17:55 +00:00
Chris Lattner
7b7200c4ea
* Significant rework of DSNode to support arbitrary aliasing due to merging
...
* Now all and any bytes of a DSNode can be merged together individually. This
is neccesary to support the full generality of C and support aliasing
correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4008 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02 04:57:39 +00:00
Chris Lattner
1c7ce2c7fe
Initial checkin of Steensgaards context insensitive flow insensitive
...
alias analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3997 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-01 22:34:12 +00:00
Chris Lattner
fccd06fcea
Checkin some major reworks of data structure analysis. This is not done,
...
nor does it work very well, but I need to get it checked in before I break
the tree unintentionally.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3996 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-01 22:33:50 +00:00
Chris Lattner
c8f25d91bd
Minor tweak
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3985 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-29 22:59:29 +00:00
Chris Lattner
b1f8aebc67
Fix printing of loop information
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3977 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-29 21:43:04 +00:00
Chris Lattner
009cc3d2e8
First try at implementing the AliasSetTracker class. I'm sure it will need
...
revision as I start to use it though.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3954 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 21:49:07 +00:00
Chris Lattner
fce46ef803
Fix printing of loop information
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3941 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 16:15:54 +00:00
Chris Lattner
699b305c86
- Add new methods to LoopInfo: getLoopPreheader, addBasicBlockToLoop.
...
These allow extra information to be easily gathered, and loopinfo to be
updated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3936 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-26 05:32:50 +00:00
Chris Lattner
c3a388143b
Convert BasicVN to be an ImmutablePass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3924 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-25 22:27:25 +00:00
Chris Lattner
5057b00faf
Make users of FindUsedTypes not have problems with linkage. This fixes
...
Cwriter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3900 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-24 00:07:21 +00:00
Chris Lattner
74493a4c6e
Clean up indvar printing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3650 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-10 15:35:39 +00:00
Chris Lattner
a6299345ee
* Add capability to recognize alias properties of the following common cases:
...
- A[c1] cannot alias A[c2] where constants c1 != c2
- A[i] cannot alias B[j] if A & B are provably different arrays
This should help out array based codes. For example, from bzip2 from spec,
3 additional loads can be GCSE'd, and _21_ additional loads can be LICMd due
to this change.
In a test example from the Spec GAP benchmark (vecffe.c), this change allows
_52_ additional loads to be GCSE'd and _224_ additional LICM'd loads.
Not bad for such a simple change. Other testcases show no change at all
because they just don't use arrays. Not too suprising there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-08 18:45:18 +00:00
Chris Lattner
20d4129fef
Minor bug fix.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3577 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 23:12:40 +00:00
Chris Lattner
ce8a14915d
- Renamed Type::isIntegral() to Type::isInteger()
...
- Added new method Type::isIntegral() that is the same as isInteger, but
also accepts bool.
SCVS: ----------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3572 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-03 01:05:48 +00:00
Chris Lattner
d122f4b648
Fix bugs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3569 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-02 20:49:27 +00:00
Chris Lattner
96f9d7232c
Add printing support to ConstantRange class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3565 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-02 00:18:22 +00:00
Chris Lattner
645e00d149
Initial implementation of ConstantRange support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3563 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-01 23:53:36 +00:00
Chris Lattner
c74cb8698f
- Eliminate the last traces of the 'analysis' namespace
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3550 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:53:53 +00:00
Chris Lattner
3e813b38f1
Minor cleanups so I can remove BasicValueNumbering.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3544 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 22:30:36 +00:00
Chris Lattner
74542b64b1
initial implementation of ValueNumbering interface.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3541 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:29:02 +00:00
Chris Lattner
71c7ec9b18
Initial implementation of value numbering for load instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3540 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-30 20:28:10 +00:00
Chris Lattner
04b9025450
Remove unneeded #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3524 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-29 20:08:55 +00:00
Anand Shukla
e0b6b78e09
Changed so it gets linked properly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3508 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-26 16:45:19 +00:00
Chris Lattner
3bb8ad27a8
Eliminated the MemAccessInst class, folding contents into GEP class.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3488 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 23:37:24 +00:00
Chris Lattner
24ea74eb9a
Load & StoreInst no longer derive from MemAccessInst, so we don't have
...
to handle indexing anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3485 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:49:05 +00:00
Chris Lattner
f9355f636b
doxygenize comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3481 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 22:46:39 +00:00
Chris Lattner
22d8cd6143
Add missing #include
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3467 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 18:57:09 +00:00
Chris Lattner
53ad0edd36
Check-in new alias analysis infrastructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3465 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-22 18:25:32 +00:00
Chris Lattner
a69fd90358
- Split Dominators.h into Dominators.h & PostDominators.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3432 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 23:43:50 +00:00
Chris Lattner
546b027b3e
- Do not expose ::ID from any of the analyses anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3417 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 17:09:49 +00:00
Chris Lattner
044f908791
- Do not expose ::ID from any of the analyses anymore.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3416 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-21 17:09:45 +00:00
Chris Lattner
389694834a
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3282 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-09 22:52:08 +00:00
Chris Lattner
dd5b495129
- Cleaned up the interface to AnalysisUsage to take analysis class names
...
instead of ::ID's.
- Pass::getAnalysis<> now no longer takes an optional argument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3264 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-08 19:01:28 +00:00
Chris Lattner
221c97974c
Minor changes to DEBUG()'s
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3261 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 21:41:11 +00:00
Chris Lattner
13c476cbd1
Reorder #includes to be right
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3260 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-07 21:41:03 +00:00
Chris Lattner
4c9df7c619
Split dominance calculation and post dominance calculation stuff
...
Dominance calculation goes to VMCore library to be used by Verifier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3210 91177308-0d34-0410-b5e6-96231b3b80d8
2002-08-02 16:43:03 +00:00
Chris Lattner
7541b89092
Changes to be GCC3.1 friendly
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3186 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 19:32:12 +00:00
Chris Lattner
1b0a63fa64
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3185 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 19:32:01 +00:00
Chris Lattner
dadd49bdb8
Add new -only-print-main-ds option that causes mains ds graph to be
...
printed, but no others.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3178 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-31 17:15:40 +00:00
Vikram S. Adve
358fc38d3b
Add GlobalDSGraph -- a common graph that holds externally visible nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3173 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:08:08 +00:00
Vikram S. Adve
dfd2f32bf7
Print globals graph after either the BU or the TD pass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3172 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:07:26 +00:00
Vikram S. Adve
aaeee75af8
This file implements the top-down propagation pass for data structure graphs.
...
Also, we now use a separate globals graph to hold externally visible nodes.
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3171 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:06:40 +00:00
Vikram S. Adve
355e2ca1f4
Use a separate globals graph to hold externally visible nodes.
...
This changes both the bottom-up and top-down propagation so that
globals and other external objects do not have to appear in every
function, but only in functions in which they are referenced or
they can be used to access something else that is referenced.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3170 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 22:05:22 +00:00
Chris Lattner
17689dfe24
Declare that these passes only depend on the CFG of the function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3157 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-30 16:27:52 +00:00
Chris Lattner
eb702350f7
* Eliminate the Provided set. All Passes now finally just automatically
...
provide themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3124 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-29 21:03:33 +00:00
Chris Lattner
a59cbb2043
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3116 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-27 01:12:17 +00:00
Chris Lattner
97f51a3024
* Standardize how analysis results/passes as printed with the print() virtual
...
methods
* Eliminate AnalysisID: Now it is just a typedef for const PassInfo*
* Simplify how AnalysisID's are initialized
* Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into
the analyses themselves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3115 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-27 01:12:15 +00:00
Chris Lattner
a6275ccdf5
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3113 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-26 21:12:46 +00:00
Chris Lattner
1e43516dcf
* Add support for different "PassType's"
...
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Add support for different "PassType's"
* Add new RegisterOpt/RegisterAnalysis templates for registering passes that
are to show up in opt or analyze
* Register Analyses now
* Change optimizations to use RegisterOpt instead of RegisterPass
* Remove getPassName implementations from various subclasses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3112 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-26 21:12:44 +00:00
Chris Lattner
ce6ef112c4
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3105 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-26 18:40:14 +00:00
Chris Lattner
cdcfcf65d9
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3097 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-25 19:59:41 +00:00
Chris Lattner
ceadf0514b
GCC 3.1 changes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3071 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:40:36 +00:00
Chris Lattner
d31d81c7ae
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3069 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:33:53 +00:00
Chris Lattner
1868227886
Changes for GCC 3.1
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3068 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-24 22:33:50 +00:00
Chris Lattner
56d27019e6
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3002 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 17:52:38 +00:00
Chris Lattner
f78a824b3c
Convert over to new style makefile where libraries by default build .o files
...
unless they specify BUILD_ARCHIVE to also build a .a file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3001 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-23 17:52:24 +00:00
Chris Lattner
eef796c767
Always create a shadow node for a store instruction, even if it's storing
...
a scalar value. Likewise for load instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2990 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-22 16:35:53 +00:00
Chris Lattner
5ff62e90d0
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2985 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-22 02:10:13 +00:00
Chris Lattner
21735d739b
Convert Command Line option handling code to use the CommandLine 2.0 interface
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2983 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-22 02:08:59 +00:00
Chris Lattner
173e4244db
Print the contents, not the pointer...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2981 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-22 02:06:50 +00:00
Chris Lattner
9eee58d0ba
Ignore some common varargs functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2973 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-19 18:11:43 +00:00
Chris Lattner
e221976b37
* Inline CopyFunctionCallsList
...
* Don't clone OrigCallList
* Rename removeDeadNodes -> removeTriviallyDeadNodes
* Implement new removeDeadNodes method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2970 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 18:22:40 +00:00
Chris Lattner
2a2c490154
Rename removeDeadNodes to removeTriviallyDeadNodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2969 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 18:19:09 +00:00
Vikram S. Adve
c44e9bfa5c
Add support for a top-down propagation pass:
...
-- Save a copy of the original call nodes in DSGraph before inlining bottom-up.
-- Also, save a list of the callers of each function in DSGraph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2966 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 16:13:52 +00:00
Vikram S. Adve
6aa0d62cb9
Add support for a top-down propagation pass.
...
Each DSGraph now keeps a list of pending callers that have not
been inlined into the function represented by that graph.
It also keeps a copy of the original call nodes before the BU pass
eliminates some of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2965 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 16:12:08 +00:00
Chris Lattner
055dc2c67e
Implement cast nodes correctly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2964 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 15:54:42 +00:00
Chris Lattner
d99d4d7b70
* s/method/function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2958 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 04:43:16 +00:00
Chris Lattner
d124c38993
The graph is more accurate when I don't completely ignore the return value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2952 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 01:58:24 +00:00
Chris Lattner
0d9bab8bac
Lots of bug fixes, add BottomUpClosure, which has bugs, but is a start.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2945 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-18 00:12:30 +00:00
Anand Shukla
6c5ed410b2
added std:: to string
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2915 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-16 00:03:10 +00:00
Chris Lattner
76d5b489e3
* Pass the DSGraph around instead of the Function to printing fns
...
* Print the globals list in the node
* Print the scalars in the scalar node
* Eliminate Scalar "label" edges in the graph
* Print fake edges lighter instead of dotted
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2880 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-11 20:33:32 +00:00
Chris Lattner
f9ae4c5cb6
* Nodes now keep track of any global variables in them
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2879 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-11 20:32:22 +00:00
Chris Lattner
c314ac49d7
* Nodes now keep track of any global variables in them
...
* Only dead-node-eliminate nodes with no flags
* Don't merge scalars, only merge what they point to.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2878 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-11 20:32:02 +00:00
Chris Lattner
c68c31b2d3
New implementation of data structure analysis. Only local analysis has been
...
implemented so far.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2871 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-10 22:38:08 +00:00
Chris Lattner
2b0f739d57
Reimplement data structure analysis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2868 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-10 22:36:26 +00:00
Vikram S. Adve
9afa88c3a7
A single MachineInstr operand may now be both a def and a use.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2825 91177308-0d34-0410-b5e6-96231b3b80d8
2002-07-08 22:56:34 +00:00
Chris Lattner
9fdaeb44b3
Fix anand's last checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2804 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-30 16:01:15 +00:00
Anand Shukla
3b5eabb24b
changes to make it compatible with 64bit gcc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2795 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25 21:18:19 +00:00
Anand Shukla
a928403ca4
changes to make it compatible with 64bit gcc
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2789 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25 20:35:19 +00:00
Anand Shukla
add9643e92
minor change in removing endl
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2788 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25 20:34:54 +00:00
Chris Lattner
7e70829632
MEGAPATCH checkin.
...
For details, See: docs/2002-06-25-MegaPatchInfo.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2779 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25 16:13:24 +00:00
Chris Lattner
18961504fc
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2777 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-25 16:12:52 +00:00
Chris Lattner
0f99555ce4
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2755 91177308-0d34-0410-b5e6-96231b3b80d8
2002-06-03 22:10:52 +00:00
Chris Lattner
70e60cbd4d
Move debug options out of header files so that the header does not have
...
to #include CommandLine.h.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2712 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-22 17:08:27 +00:00
Chris Lattner
59dcbf9c03
Move the DEBUG_LV option out of the public header file into a private header.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2711 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-22 17:07:26 +00:00
Chris Lattner
ad86b74baf
Hide debugging options
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2676 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-20 21:39:10 +00:00
Chris Lattner
ef704a23b4
Add method to check to see if two _Instructions_ dominate each other
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-13 22:03:16 +00:00
Chris Lattner
4874680b65
Print out post dominance data structures more nicely
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2562 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-08 23:11:08 +00:00
Chris Lattner
fc514f40a6
Move UnifyFunctionExitNodes to Utils library: final resting place this time
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2531 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 19:18:48 +00:00
Chris Lattner
c8cc4cb03b
Updates to move some header files out of include/llvm/Transforms into
...
the Scalar and Utils subdirectories
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2523 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-07 18:36:35 +00:00
Chris Lattner
07a228d1f7
Mark analyses that only depend on the CFG of a function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2507 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 19:32:07 +00:00
Chris Lattner
db93124d41
Add #include removed from ConstantHandling.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2496 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 17:53:10 +00:00
Chris Lattner
9b625030c8
Replace all usages of Type::isPointerType with isa<PointerType>
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2486 91177308-0d34-0410-b5e6-96231b3b80d8
2002-05-06 16:15:30 +00:00
Chris Lattner
c6f3ae5c66
Eliminate duplicate or unneccesary #include's
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2397 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-29 17:42:12 +00:00
Chris Lattner
31bcdb822f
Split ConstantVals.h into Constant.h and Constants.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2378 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 19:55:58 +00:00
Chris Lattner
bfeec103e1
Simplify and update code a bit
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2376 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 19:20:10 +00:00
Chris Lattner
1b7f7dc4b4
Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes
...
to the global namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2370 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 16:21:30 +00:00
Chris Lattner
96d0f3011a
Module's are no longer Value subclasses
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2351 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:50:00 +00:00
Chris Lattner
3bed5b46ba
Fix signed/unsigned comparison warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2350 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 04:49:43 +00:00
Chris Lattner
a298d27808
Change the Dominator info and LoopInfo classes to keep track of BasicBlock's, not
...
const BasicBlocks
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2337 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-28 00:15:57 +00:00
Chris Lattner
483e14ee04
s/Method/Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2336 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 07:27:19 +00:00
Chris Lattner
f57b845547
* Rename MethodPass class to FunctionPass
...
- Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
- Method is now const
- It now takes one AnalysisUsage object to fill in instead of 3 vectors
to fill in
- Pass's now specify which other passes they _preserve_ not which ones
they modify (be conservative!)
- A pass can specify that it preserves all analyses (because it never
modifies the underlying program)
* s/Method/Function/g in other random places as well
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2333 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 06:56:12 +00:00
Chris Lattner
ee7eafa054
Add support for tracking array allocations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2328 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:28:41 +00:00
Chris Lattner
2aa51be083
Allow the inline limit to be modified on the commandline for debugging
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2327 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:27:48 +00:00
Chris Lattner
1a18b7cf80
Change Constant::getNullConstant to Constant::getNullValue
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2323 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-27 02:25:14 +00:00
Chris Lattner
6228106e9f
Just use << isntead of forcing getStrValue
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2294 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:14:40 +00:00
Chris Lattner
595d2f670a
Print argument scalars as ellipses instead of boxes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2293 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-18 18:14:19 +00:00
Chris Lattner
ef35ff066c
Inline indirect function calls that are only capable of calling one function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2275 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-17 03:42:51 +00:00
Chris Lattner
fe14568a81
Make data structure acurately get ALL edges, even loads of null fields of
...
nodes that are not shadow nodes
This fixes em3d to be _correct_ if not optimial
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2274 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-17 03:24:59 +00:00
Chris Lattner
7650b94c75
* Remove the concept of a critical shadow node
...
* Make the function pointer argument explicit for a call nodes
* Eliminate unreachable global values
* Merge call nodes that are identical
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2266 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 20:39:59 +00:00
Chris Lattner
212be2e569
* Eliminate ArgDSNode's completely, now rely on scalar map
...
* Fold call nodes that are indistinguishable for each other. This is a big
win for external functions like sqrt, which would multiply dramatically
before.
* Global nodes with no edges to or from them are now eliminated from the graph.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2257 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-16 03:44:03 +00:00
Chris Lattner
5648b58a19
Print out what the root of the call graph is.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2223 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-10 20:31:44 +00:00
Chris Lattner
73e214244f
Move FunctionArgument out of iOther.h into Argument.h and rename class to
...
be 'Argument' instead of FunctionArgument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2216 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:48:49 +00:00
Chris Lattner
0ac5429ff0
Add explicit #includes of Function.h to make up for the removed #include
...
in iOther.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2209 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 19:08:28 +00:00
Chris Lattner
42a412711c
Add #includes to make up for #includes pruned out of header files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2207 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 18:37:46 +00:00
Chris Lattner
918c4ecb0c
Don't leak all of the Loop objects created...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2196 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:43:19 +00:00
Chris Lattner
fb005fe5c2
* General cleanups
...
* In calcLiveVarSetsForBB, do not leak a ValueSet every time the function
is called!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2189 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-09 05:14:14 +00:00
Chris Lattner
b7653df085
s/Method/Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2180 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 22:03:57 +00:00
Chris Lattner
c8a79af27d
isLabelType is obsolete
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2175 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:59:08 +00:00
Chris Lattner
e6d4ec3d5a
Play around with #includes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2174 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:58:53 +00:00
Chris Lattner
ab44871a5d
Add #includes that were pruned from already #included files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2173 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 21:56:50 +00:00
Chris Lattner
968ddc921e
ConstantHandling moved into VMCore library
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2165 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-08 20:18:09 +00:00
Chris Lattner
2fbfdcffd3
Change references to the Method class to be references to the Function
...
class. The Method class is obsolete (renamed) and all references to it
are being converted over to Function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2144 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-07 20:49:59 +00:00
Chris Lattner
0009dac2bf
Call nodes are never equivalent
...
Shadow nodes are never critical.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2102 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:21:51 +00:00
Chris Lattner
1f1170c94a
Add hack to get timing of analysis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2101 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:21:27 +00:00
Chris Lattner
cc0c1b2e18
* Eliminate commented out code
...
* Do not demand a shadow node when resolving
* Raise arbitrary inline limit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2100 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-04 19:21:06 +00:00
Chris Lattner
a13d6ceed7
Support resolving function arguments/return values to pointers that index
...
into other objects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2094 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 22:20:48 +00:00
Chris Lattner
e0d1d1acf6
Avoid incorrectly adding null values to the scalar map!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2085 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 00:45:09 +00:00
Chris Lattner
dba61f34e8
Critical shadow nodes no do not know their parent explictly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2084 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 00:15:30 +00:00
Chris Lattner
3feaf02c47
Minor cleanups (use dyn_cast instead of testing manually)
...
Shadow nodes now don't explicitly know their parent.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2083 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 00:14:41 +00:00
Chris Lattner
f30185fdfb
Allow merging of identical call nodes. Make the shadow node pointed to
...
by the call node noncritical before the call is destroyed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2082 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 00:13:56 +00:00
Chris Lattner
bab4a90cb9
Increase limit for perimeter
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2081 91177308-0d34-0410-b5e6-96231b3b80d8
2002-04-01 00:12:58 +00:00
Chris Lattner
0b7c85c06a
Unify the destruction code used for node pairs vs normal nodes. This was
...
causing a problem before because global values with incoming edges didn't
copy the incoming edges to the node they were being merged from, causing
the poolalloc pass to die.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2079 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 19:57:44 +00:00
Chris Lattner
b28bf05483
* Move the isEquivalentTo implementations here. They can probably be put
...
someplace nicer in the file though.
* Add new dump method for debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2064 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 07:16:08 +00:00
Chris Lattner
e6b552fd86
Print out the instruction instead of just the address!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2063 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 07:15:20 +00:00
Chris Lattner
44cf390784
* Move isEquivalentTo implementations to NodeImpl
...
* Implement a new form of node folding to catch cases missed in Addtree
* Add removeIndistinguishableNodePairs to merge calls (todo) and globals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2062 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 07:14:52 +00:00
Chris Lattner
26cfa6664c
* Convert CallMap to be a vector, because the keys can change, and the map
...
doesn't resort!
* Be more generous with the cached matches that we allow now.
* Recursive calls should all work now!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2061 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-31 07:13:27 +00:00
Chris Lattner
dc89f87d52
s/Method/Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2043 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 17:08:29 +00:00
Chris Lattner
4dc1f82e7e
Implement getEscapingAllocations & getNonEscapingAllocations
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2021 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 19:33:00 +00:00
Chris Lattner
7d093d4231
* Rename UnlinkUndistinguishableShadowNodes & RemoveUnreachableShadowNodes
...
to reflect that they can eliminate arbitrary nodes.
* Rename the ShadowNodeEliminate.cpp file to EliminateNodes.cpp for the
same reason
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2020 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 19:16:48 +00:00
Chris Lattner
cdae0b2591
Ooops, I did such a great job pruning nodes, that I accidentally deleted
...
ALL allocation nodes... hrm... bad.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2018 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 18:38:38 +00:00
Chris Lattner
1120c8b34a
Many changes
...
* Simplify a lot of the inlining stuff. There are still problems, but not
many
* Break up the Function representation to have a vector for every different
node type so it is fast to find nodes of a particular flavor.
* Do more intelligent merging of call values
* Allow elimination of unreachable shadow and allocation nodes
* Generalize indistinguishability testing to allow merging of identical calls.
* Increase shadow node merging power
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2010 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 17:56:03 +00:00
Chris Lattner
2ba3a72c3a
* Add #define to enabled debug messages
...
* Move removeEdgesTo to be a member of DSNode
* Implement (but #ifdef out) the new, spiffier, method of determining
shadow node equivalence. This cannot be enabled until more is
implemented.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2004 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 19:48:03 +00:00
Chris Lattner
6088c4f55e
* Implement DSNode::removeAllIncomingEdges
...
* Implement Critical Shadow node handling
* Implement routines to determine whether an allocation node is a malloc
or alloca
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2003 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 19:46:05 +00:00
Chris Lattner
f4066b3fe1
* Add critical node support
...
* Optimize graph after building it. This should be unneccesary in the future
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2002 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 19:45:12 +00:00
Chris Lattner
ea4af65b72
* Destroy alloca nodes when a graph gets inlined
...
* Add links to all subtrees when a shadow node gets resolved
* Add critical node handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2001 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 19:44:33 +00:00
Chris Lattner
9d42a1d2f9
* Optimizers return true on change
...
* Implement indistinguishable shadow node elimination
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1999 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 00:55:13 +00:00
Chris Lattner
dd3fc184f5
Fix long line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1998 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 00:54:31 +00:00
Chris Lattner
df8af1ca89
* Because of optimization, the shadow nodes between arguments might get
...
removed. Check to see if they are there.
* Repeat optimizations while changing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1997 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 00:53:57 +00:00
Chris Lattner
bb2a28fec5
Initial checkin of Datastructure analysis.
...
Has bugs, but shouldn't crash in theory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1994 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 22:39:06 +00:00
Chris Lattner
e590ff260e
change refs to Method to Function
...
Change references to MEthodArgument to FunctionArgument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1989 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 17:55:33 +00:00
Chris Lattner
e7506a366e
Rename Method to Function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1957 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-23 22:51:58 +00:00
Vikram S. Adve
4a12da7912
Fixed several problems with handling arguments to Phis.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1910 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:47:26 +00:00
Vikram S. Adve
9cf85a75d2
Big bug fix: killed uses were being inserted instead of erased!
...
Also added a set of debug options.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1909 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:45:41 +00:00
Chris Lattner
9b534266f0
Fix test/Regression/Other/2002-03-14-ValueToLarge.ll. Note that this
...
fix could be better, but we don't have the infrastructure to find out what
size types are yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1876 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-14 22:35:50 +00:00
Chris Lattner
cb05e78cb7
Bugfix for test/Regression/Other/2002-03-11-ExprAssertion.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1856 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-11 20:50:24 +00:00
Chris Lattner
9c85fa660e
Initial checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1831 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-07 20:16:38 +00:00
Chris Lattner
d4d427baa9
Clean up call graph, add comments, and fix test/Regression/Other/2002-01-31-CallGraph.ll
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1828 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 20:19:35 +00:00
Chris Lattner
71e7bb4bc0
Pull interprocedural analyses out of Analysis library into their own lib
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1827 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 18:44:29 +00:00
Chris Lattner
8d5a16ca0b
Move call graph printing support out of Writer.h into Callgraph.h
...
remove dead global function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1825 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 18:00:49 +00:00
Chris Lattner
4ce0f8aa9e
Take CallGraph out of the CFG namespace. It has nothing to do with CFGs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1820 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-06 17:16:43 +00:00
Chris Lattner
1ddf664f74
Make it compile with GCC 3.0.4
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1786 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-24 23:01:21 +00:00
Chris Lattner
455889aa79
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
InstrTypes.h anymore
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1750 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12 22:39:50 +00:00
Chris Lattner
221d688a5e
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1746 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-12 21:07:25 +00:00
Chris Lattner
6357a3f42d
Convert BBLiveVar to be a BasicBlock annotation, this removes the BB2BBLVMap from MethodLiveVarInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1721 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 06:52:25 +00:00
Chris Lattner
2f898d2074
Convert operand iterator over to work like an STL iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1720 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 06:02:59 +00:00
Chris Lattner
748697d242
Minor change: Methods that return ValueSet's that are guaranteed to be valid
...
return references instead of pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1719 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 04:20:12 +00:00
Chris Lattner
7471a7b019
Must include SetOperations to do set_*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1716 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 03:35:53 +00:00
Chris Lattner
eb5230c4f9
Remove generic routines to Support/SetOperations.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1715 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 03:35:31 +00:00
Chris Lattner
c980c50dc1
Remove empty files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1713 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:52:53 +00:00
Chris Lattner
5e5dfa307a
* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static
...
function in the one .cpp file that uses it. Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
templates that will eventually be moved to Support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1711 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 02:51:01 +00:00
Chris Lattner
0665a5f1f5
* Code Cleanups
...
* Introduce RAV to allow stream I/O instead of using printValue
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1710 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 01:43:49 +00:00
Chris Lattner
f39f379f9e
Changes neccesary due to the move of BBLiveVar.h to the lib/Analysis/LiveVar directory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1709 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:43:37 +00:00
Chris Lattner
ab584111e7
* Give BBLiveVar.cpp a proper file header
...
* applyFlowFunc DOES NOT NEED TO COPY the huge BB->BBLiveVar Map every time it is invoked!
* Big cleanups.
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1706 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:34:50 +00:00
Chris Lattner
0174410fd0
* Big cleanups.
...
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1705 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-05 00:33:19 +00:00
Chris Lattner
a51c7a8ef5
Code cleanups, no functional change
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1704 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 23:31:16 +00:00
Chris Lattner
bdfd328515
Clean up MethodLiveVarInfo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1703 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:49:04 +00:00
Chris Lattner
4fd2dbbf1d
Turn live variable analysis into a real MethodPass.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1699 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 20:00:08 +00:00
Chris Lattner
bcbce17864
Remove Obsolete LoopDepthCalculator. All users should use LoopInfo directly.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1697 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:49:01 +00:00
Chris Lattner
f806c025bd
REmove huge hack used by register allocator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1694 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 17:39:02 +00:00
Chris Lattner
1164632c7e
* Add #includes that were yanked out of header files
...
* Convert over to valueset interface that uses insert & erase insead of add and remove
* the -> operator really isn't that hard to use!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1687 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:35:12 +00:00
Chris Lattner
65b1ad9042
Cut down include pollution and number of frivolous consts.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1683 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 16:31:03 +00:00
Chris Lattner
28a7aa0e64
Eliminate ModuleAnalyzer. It's old code that is not going to be used in the near future
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1679 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 06:47:17 +00:00
Chris Lattner
9e881eb60d
Minor cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1671 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-04 05:48:24 +00:00
Chris Lattner
56cf02d5a0
Lots of nonfunctional code cleanups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1642 91177308-0d34-0410-b5e6-96231b3b80d8
2002-02-03 07:25:25 +00:00
Chris Lattner
65b9709071
Provide the right AnalysisID for postdominators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1616 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 18:29:24 +00:00
Chris Lattner
93193f8063
Convert analyses to new pass structure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1603 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 00:42:27 +00:00
Chris Lattner
0f0fc3253d
Implement loop depth calculation in terms of dominators instead of intervals
...
No problems with irreducibility now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1602 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-31 00:42:06 +00:00
Chris Lattner
59b6b8e0b3
Move stuff out of the Optimizations directories into the appropriate Transforms
...
directories. Eliminate the opt namespace.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1520 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 23:17:48 +00:00
Chris Lattner
f4de63f65f
Implement a more powerful, simpler, pass system. This pass system can figure
...
out how to run a collection of passes optimially given their behaviors and
charactaristics.
Convert code to use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1507 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-21 07:31:50 +00:00
Chris Lattner
697954c15d
Changes to build successfully with GCC 3.02
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
2002-01-20 22:54:45 +00:00
Ruchira Sasanka
545cc35b82
added a section on how to modify live variable code to use LLVM instructions
...
instead of machine instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1451 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 21:25:46 +00:00
Chris Lattner
481fafe67d
Some programs are using BB's as values, until we resolve this. Disable the assert
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1448 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-13 00:45:06 +00:00
Ruchira Sasanka
789cebb908
Added more comments. Added code to destructor in MethodLiveVarInfo to delete
...
LiveVarSet caches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1435 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-08 21:05:27 +00:00
Ruchira Sasanka
b720a8bc1d
Added comments are more documentation info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1434 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-08 21:04:22 +00:00
Chris Lattner
0da29c8ec1
"fix" problems processing floating point expressions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1421 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-05 19:38:29 +00:00
Chris Lattner
6de230aca8
Fix a bug that clobbered the step value on some inputs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1416 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-05 06:32:30 +00:00
Chris Lattner
621c9920c7
Fix a pessimization due to sucky LI testing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1412 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 08:12:47 +00:00
Chris Lattner
7a17675206
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1408 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-04 00:03:30 +00:00
Chris Lattner
e9bb2df410
Rename ConstPoolVal -> Constant
...
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1407 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 22:26:30 +00:00
Chris Lattner
7061dc50b2
Split the PHINode class out from the iOther.h file into the iPHINode.h file
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1405 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 18:02:31 +00:00
Chris Lattner
df89f6efbc
Induction variables must be phi nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1402 91177308-0d34-0410-b5e6-96231b3b80d8
2001-12-03 17:27:42 +00:00
Chris Lattner
cee8f9ae67
Create a new #include "Support/..." directory structure to move things
...
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1400 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-27 00:03:19 +00:00
Chris Lattner
a2eb259c6b
Implement writer support for Loops, Induction Variables, and CallGraphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1372 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:53:29 +00:00
Chris Lattner
50020223b9
Make Mul work right
...
Make sub work right
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1371 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:53:07 +00:00
Chris Lattner
ff5a8c43c9
Fix a bad assertion to be correct . The root basic block can be used by PHI nodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1370 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:52:02 +00:00
Chris Lattner
25e9cad236
Implement a new entry node that has edges to all external methods in the module
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1369 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:51:25 +00:00
Chris Lattner
0bbe58f073
* Implement dominator based loop identification
...
* Implement cleaner induction variable identification
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1359 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 18:41:20 +00:00
Chris Lattner
882572aa68
* Implement more powerful expr analysis of cast instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1335 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26 16:53:50 +00:00
Chris Lattner
b61107aa51
New pass to find types in use by a program
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1232 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09 05:27:21 +00:00
Chris Lattner
837bb2ce96
Print the method that makes an instruction invalid
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1213 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08 19:29:51 +00:00
Chris Lattner
2618fba8e3
Initial checkin of pointer safety checker
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1181 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07 21:16:12 +00:00
Vikram S. Adve
a7edb1888c
Added function IsLeafMethod to identify leaf methods.
...
This will use the CallGraph only if one is provided.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@950 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-22 13:55:46 +00:00
Ruchira Sasanka
92e251cc29
No major change - added some comments
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@848 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-16 01:25:05 +00:00
Chris Lattner
634b352fa6
Print Debug Code to stderr instead of stdout so that it doesn't mess up the assembly output
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@841 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 18:30:06 +00:00
Ruchira Sasanka
b8354a8e4f
--added support for implicit operands
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@832 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-15 16:58:50 +00:00
Chris Lattner
8f486ddc76
Fix code to make GCC 2.96 happy
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@753 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:34:47 +00:00
Chris Lattner
9f9e2befd0
* Add support for Invoke instructions
...
* Add support for indirect calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@752 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-13 06:33:19 +00:00
Ruchira Sasanka
c1daae895d
added support for implict operands in machine instruction
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@728 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-12 17:47:23 +00:00
Ruchira Sasanka
598641b4ca
--added support for implicit operands in machine instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@727 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-12 17:46:27 +00:00
Chris Lattner
ef9c23f281
* Both Method & GlobalVariable now subclass GlobalValue
...
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@703 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-03 14:53:21 +00:00
Chris Lattner
b00c582b6d
Commit more code over to new cast style
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@697 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-02 03:41:24 +00:00
Chris Lattner
1d87bcf490
Convert more code to use new style casts
...
Eliminate old style casts from value.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 20:11:19 +00:00
Chris Lattner
cfe26c930a
Add more support for new style casts
...
Convert more code to use them
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@695 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-01 18:26:53 +00:00
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
Ruchira Sasanka
aca997cbd7
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@675 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-30 23:28:04 +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
41fbf305ee
Initial support for construction of a call graph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@660 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-28 00:08:15 +00:00
Chris Lattner
f6374bfd69
Move the sparc target to a new lib/Target directory
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@562 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:55:11 +00:00
Chris Lattner
0811f76860
This checkin represents some cleanup of the backend, implementing the following things:
...
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory. The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.
NOTE! The BBLiveVar.cpp file dependant on the Sparc backend, and is therefore not generic/portale to other backends. This needs to be fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@558 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-14 03:37:22 +00:00
Chris Lattner
69f8ce051e
Handle subtract in expression classifier
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@548 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-11 04:27:34 +00:00
Chris Lattner
fad0d4f1d4
Add support for global variables
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@535 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-10 20:07:57 +00:00
Chris Lattner
5485bbe0f6
Module analyzer no longer has to iterate over constant pool
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@441 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:31:23 +00:00
Chris Lattner
8e195e02fe
Simplify code by eliminating need to hang onto constant pool references
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@440 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 16:31:04 +00:00
Vikram S. Adve
0e4fda3c1a
Added directory LiveVar/
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@410 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 23:29:31 +00:00
Vikram S. Adve
8b5f6cc0a4
analyze() now checks to see that we don't analyze the same method twice.
...
Needs a mechnanism to override this check (e.g., after a transformation).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@391 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-28 22:36:35 +00:00
Chris Lattner
1b5499bbb8
Make sure noone branches to the entry node of the method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@369 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-24 14:56:34 +00:00
Chris Lattner
384e5b1595
Handle case where there is no exit node from a flowgraph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@365 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-23 17:07:19 +00:00
Ruchira Sasanka
e27c344b56
LV code on machine instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@360 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-20 21:12:49 +00:00
Ruchira Sasanka
9166181257
LV info on machine instructions
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@359 91177308-0d34-0410-b5e6-96231b3b80d8
2001-08-20 21:11:01 +00:00
Chris Lattner
793d678316
Fix a bug when compiling 'shl ubyte * %var, ubyte 2'
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-25 22:47:32 +00:00
Ruchira Sasanka
b2d11bad7e
Changed printValue() to print constant value if the value is a constant.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@292 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-24 18:21:21 +00:00
Ruchira Sasanka
683847fb75
*** empty log message ***
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@291 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-24 17:14:13 +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
19f31f28d8
More functionality, renamed API
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-21 19:07:19 +00:00
Chris Lattner
369bbeb62c
Start of expression analysis support
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-20 19:17:55 +00:00
Chris Lattner
7f6330c743
Fix nasty typo
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-20 04:39:07 +00:00
Chris Lattner
644dc172f5
* The parent of a constant pool is a SymTabValue, not a value.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-14 06:08:51 +00:00
Chris Lattner
3590830cef
Fixed post dominator frontiers! Yaay!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-08 05:54:09 +00:00
Chris Lattner
94108ab8a3
Implement support for postdominators, except in dom frontiers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@142 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-06 16:58:22 +00:00
Chris Lattner
e6850235f5
IntervalPartition was changed to inherit from vector<Interval*> instead of
...
contain it so that it would have full iterator access without much work.
Writer includes code to print out IntervalPartition's now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-03 15:28:35 +00:00
Chris Lattner
3d98049e38
Code got moved from the lib/Assembly/Writer/IntervalWriter.cpp file to
...
here. Updates to correct description n stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-03 05:36:34 +00:00
Chris Lattner
347bfdad7f
Add printing code for dominator info
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-02 05:46:47 +00:00
Chris Lattner
1715229db9
Checkin of new dominator calculation routines. These will be improved in
...
the future to do post dominators and stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-02 05:46:38 +00:00
Chris Lattner
bd4996ad68
Moved deleter to include/llvm/Tools/STLExtras.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120 91177308-0d34-0410-b5e6-96231b3b80d8
2001-07-02 01:08:08 +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
23e36625a2
IntervalPartition: recode to use IntervalIterator to do all the work
...
LoopDepth.cpp: new file that calculates the depth of a loop, using
IntervalPartitions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-25 03:55:04 +00:00
Chris Lattner
2d676c961e
New file due to the Intervals.h splitup
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-24 04:07:44 +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
107109c2cd
IntervalPartition & IntervalIterator classes have been split out into
...
their own .h files & .cpp file
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-24 04:05:21 +00:00
Chris Lattner
a0eb461263
Prepare for split between Interval, IntervalIterator, and IntervalIPartition
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-24 03:25:01 +00:00
Chris Lattner
a4ef933a04
Interval::HeaderNode is now accessed thorugh an accessor function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-22 02:23:39 +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
1c54f1da79
Implement the new Interval::isLoop method
...
Implement destructor to free memory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-21 05:26:15 +00:00
Chris Lattner
ed465bc265
Add capability to build a derived interval graph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-20 22:44:32 +00:00
Chris Lattner
2275c1d55d
Initial Checking of Interval handling code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39 91177308-0d34-0410-b5e6-96231b3b80d8
2001-06-20 20:09:55 +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