Chris Lattner
06ffc5b249
Add accessors and a method to get all the outgoing links for ALL nodes
...
llvm-svn: 2055
2002-03-30 09:07:51 +00:00
Chris Lattner
fb50c702c4
Add an accessor
...
llvm-svn: 2054
2002-03-30 04:02:41 +00:00
Chris Lattner
289f7690fe
Add a hook to allow the datastructure to keep naturally up to date, even
...
though it's not entirely fleshed out.
llvm-svn: 2051
2002-03-29 21:23:29 +00:00
Chris Lattner
ca2c7dbf7c
Expose more information to clients
...
llvm-svn: 2027
2002-03-29 03:35:30 +00:00
Chris Lattner
cab0ce8244
Implement getEscapingAllocations & getNonEscapingAllocations
...
llvm-svn: 2021
2002-03-28 19:33:00 +00:00
Chris Lattner
2f9f87a984
* Remove RemoveUnreachableShadowNodes & UnlinkUndistinguishableShadowNodes
...
to reflect the fact that they actually operate on arbitrary nodes
* Clean up public interface of FunctionDSGraph
* add getEscapingAllocations & getNonEscapingAllocations
llvm-svn: 2019
2002-03-28 19:15:38 +00:00
Chris Lattner
4054edc567
* Define some operators on PointerVal and PVS's
...
* Nodes can determine whether they are foldable with another node
* Rename NewDSNode to AllocDSNode
* The Function graph breaks up all of the node types into individual
vectors to alloc fast access when you are looking for a particular type
of node. Simplifies much code.
llvm-svn: 2009
2002-03-28 17:48:41 +00:00
Chris Lattner
4defbc34ff
* Add a nice utility method to DSNode
...
* Export interface to tell whether an alloc node represent a malloc or alloca
* Add the concept of a "critical" shadow node
llvm-svn: 2000
2002-03-27 19:41:45 +00:00
Chris Lattner
e01e339e93
Allow isa<DSNode>(..)
...
Simplification routines return true on change
llvm-svn: 1996
2002-03-27 00:52:57 +00:00
Chris Lattner
1026adab40
New header file for datastructure analysis
...
llvm-svn: 1993
2002-03-26 22:38:45 +00:00
Chris Lattner
fecabeab3c
Change uses of Method to Function
...
Change uses of methodArgument to FunctionArgument
llvm-svn: 1988
2002-03-26 17:49:55 +00:00
Chris Lattner
c481e92886
Rename Method to Function
...
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Vikram S. Adve
aae5fcc0ca
Big bug fix: killed uses were being inserted instead of erased!
...
Also added a set of debug options.
llvm-svn: 1917
2002-03-19 00:59:08 +00:00
Chris Lattner
4f4609a284
Convert the top line of the header from .cpp style to .h style.
...
llvm-svn: 1884
2002-03-17 21:16:22 +00:00
Chris Lattner
0f0ed63279
Clean up call graph, add comments, and fix test/Regression/Other/2002-01-31-CallGraph.ll
...
llvm-svn: 1828
2002-03-06 20:19:35 +00:00
Chris Lattner
5cea52a4d5
Move callgraph printing out of writer.h into callgraph.h
...
llvm-svn: 1824
2002-03-06 17:59:45 +00:00
Chris Lattner
4830f16b6e
Pull Callgraph out of the cfg namespace
...
llvm-svn: 1821
2002-03-06 17:39:28 +00:00
Chris Lattner
962e012ad5
Take CallGraph out of the CFG namespace. It has nothing to do with CFGs
...
llvm-svn: 1820
2002-03-06 17:16:43 +00:00
Chris Lattner
3ca03295c4
Expose verifier for method and module, and accept constant structures
...
llvm-svn: 1814
2002-02-26 21:38:48 +00:00
Chris Lattner
b10862d793
Make it compile with GCC 3.0.4
...
llvm-svn: 1786
2002-02-24 23:01:21 +00:00
Chris Lattner
9942a79fcd
Modernize verifier interface
...
llvm-svn: 1780
2002-02-20 17:54:35 +00:00
Chris Lattner
c88d936415
* Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
...
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
llvm-svn: 1748
2002-02-12 22:35:27 +00:00
Chris Lattner
3a1bc64866
Method.h no longer includes BasicBlock.h
...
Method::inst_* is now in llvm/Support/InstIterator.h
llvm-svn: 1745
2002-02-12 21:04:35 +00:00
Chris Lattner
3b3ee75819
Convert BBLiveVar to be a BasicBlock annotation, this removes the BB2BBLVMap from MethodLiveVarInfo.
...
llvm-svn: 1721
2002-02-05 06:52:25 +00:00
Chris Lattner
5337fbec40
Minor change: Methods that return ValueSet's that are guaranteed to be valid
...
return references instead of pointers.
llvm-svn: 1719
2002-02-05 04:20:12 +00:00
Chris Lattner
c77877fb46
Remove generic routines to Support/SetOperations.h
...
llvm-svn: 1715
2002-02-05 03:35:31 +00:00
Chris Lattner
6c0cbc3009
Remove empty files
...
llvm-svn: 1713
2002-02-05 02:52:53 +00:00
Chris Lattner
dc3aec7a90
* 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.
llvm-svn: 1711
2002-02-05 02:51:01 +00:00
Chris Lattner
a8170f0944
* Code Cleanups
...
* Introduce RAV to allow stream I/O instead of using printValue
llvm-svn: 1710
2002-02-05 01:43:49 +00:00
Chris Lattner
80c1109e8e
Remove empty file
...
llvm-svn: 1708
2002-02-05 00:35:59 +00:00
Chris Lattner
1181768743
* Big cleanups.
...
* Make BBLiveVar.h effectively an internal header file
* Prepare LiveVarMap.h for deletion
llvm-svn: 1705
2002-02-05 00:33:19 +00:00
Chris Lattner
62860d4c3d
Clean up MethodLiveVarInfo
...
llvm-svn: 1703
2002-02-04 20:49:04 +00:00
Chris Lattner
b4e0d0424c
Turn live variable analysis into a real MethodPass.
...
llvm-svn: 1699
2002-02-04 20:00:08 +00:00
Chris Lattner
8a76e0e37e
Remove Obsolete LoopDepthCalculator. All users should use LoopInfo directly.
...
llvm-svn: 1697
2002-02-04 17:49:01 +00:00
Chris Lattner
faeb3c85f9
Remvoe big hack that was used by the register allocator
...
llvm-svn: 1692
2002-02-04 17:38:03 +00:00
Chris Lattner
0c04c60975
eliminate the add and remove methods, clients must use insert and erase directly.
...
llvm-svn: 1686
2002-02-04 16:33:18 +00:00
Chris Lattner
140f09f8cc
Remove tons of include pollution
...
Remove frivolous const's
Make use of the -> operator
llvm-svn: 1685
2002-02-04 16:32:40 +00:00
Chris Lattner
c6d2d0f12e
Use generic pointer hashes instead of custom ones.
...
llvm-svn: 1684
2002-02-04 16:31:42 +00:00
Chris Lattner
4f37a90fda
Eliminate ModuleAnalyzer. It's old code that is not going to be used in the near future
...
llvm-svn: 1679
2002-02-04 06:47:17 +00:00
Chris Lattner
c98336111d
Remove extraneous #includes
...
llvm-svn: 1634
2002-02-03 07:03:13 +00:00
Chris Lattner
a494a4981d
Free memory when not in use
...
llvm-svn: 1618
2002-01-31 18:32:49 +00:00
Chris Lattner
b678885f4c
Remove this file. Folded into UnifyMethodExitNodes pass
...
llvm-svn: 1612
2002-01-31 01:02:32 +00:00
Chris Lattner
5c1e4c976e
Implement LoopDepth calculation in terms of dominators instead of intervals
...
llvm-svn: 1600
2002-01-31 00:41:01 +00:00
Chris Lattner
3ce0567bac
Convert analyses over to new Pass framework
...
llvm-svn: 1595
2002-01-30 23:27:55 +00:00
Chris Lattner
ae0661dc6c
Don't die on call instructions, which reference methods
...
llvm-svn: 1593
2002-01-30 23:00:41 +00:00
Chris Lattner
2521ae1011
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.
llvm-svn: 1507
2002-01-21 07:31:50 +00:00
Chris Lattner
3dc9a2a61f
Changes to build successfully with GCC 3.02
...
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Ruchira Sasanka
9d26f00cfb
Added comments are more documentation info
...
llvm-svn: 1434
2001-12-08 21:04:22 +00:00
Chris Lattner
c4a5815033
Renamed inst_const_iterator -> const_inst_iterator
...
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner
f6b7da2bb5
Rename ConstPoolVal -> Constant
...
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner
a302c202ab
Induction variables must be phi nodes
...
llvm-svn: 1402
2001-12-03 17:27:42 +00:00
Chris Lattner
463cc31132
Create a new #include "Support/..." directory structure to move things
...
from "llvm/Support/..." that are not llvm dependant.
Move files and fix #includes
llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner
3d0b96e43c
Add writer support for call graph nodes and loops and induction variables
...
llvm-svn: 1364
2001-11-26 18:47:46 +00:00
Chris Lattner
9354ac4d83
Implement an entry node for the call graph
...
llvm-svn: 1363
2001-11-26 18:47:11 +00:00
Chris Lattner
c969e45ded
* Implement dominator based loop identification
...
* Implement cleaner induction variable identification
llvm-svn: 1359
2001-11-26 18:41:20 +00:00
Chris Lattner
fefd12e111
Fix protection probs
...
llvm-svn: 1321
2001-11-15 15:24:31 +00:00
Chris Lattner
41baa6823a
New pass to figure out what types are in use by a program
...
llvm-svn: 1231
2001-11-09 05:27:10 +00:00
Chris Lattner
15b45d9783
Initial checkin of pointer safety checker
...
llvm-svn: 1181
2001-11-07 21:16:12 +00:00
Vikram S. Adve
5b5546998a
Added function IsLeafMethod to identify leaf methods.
...
This will use the CallGraph only if one is provided.
llvm-svn: 950
2001-10-22 13:55:46 +00:00
Chris Lattner
99189a2ebf
Changes to compile with GCC 2.96
...
llvm-svn: 745
2001-10-13 06:25:03 +00:00
Chris Lattner
1e90c0f0c8
Add comment indicating semantics of indirect calls
...
llvm-svn: 744
2001-10-13 06:24:35 +00:00
Ruchira Sasanka
44e467ec90
--added support for implicit operands in machine instructions
...
llvm-svn: 727
2001-10-12 17:46:27 +00:00
Chris Lattner
ad1b0a1a83
Convert more code to use new style casts
...
Eliminate old style casts from value.h
llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
4c684cde80
Add more support for new style casts
...
Convert more code to use them
llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
43781f1f96
Add support for new style casts
...
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
345daca305
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.
llvm-svn: 691
2001-10-01 13:19:53 +00:00
Chris Lattner
e646911562
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.
Also pull Interval stuff into the Interval class out of the global namespace
llvm-svn: 690
2001-10-01 13:19:41 +00:00
Ruchira Sasanka
9d68af20a7
no major change.
...
llvm-svn: 674
2001-09-30 23:22:45 +00:00
Chris Lattner
74c4c61d71
Initial support for construction of a call graph
...
llvm-svn: 660
2001-09-28 00:08:15 +00:00
Chris Lattner
62dea18f11
Add capability to print out call graph
...
llvm-svn: 654
2001-09-28 00:06:15 +00:00
Chris Lattner
676ea87be5
Initial instruction tree support for the analysis library
...
llvm-svn: 555
2001-09-14 01:42:26 +00:00
Chris Lattner
277c7264f6
Handle subtract in expression classifier
...
llvm-svn: 548
2001-09-11 04:27:34 +00:00
Chris Lattner
cd69a08c26
NEw file
...
llvm-svn: 478
2001-09-07 19:29:23 +00:00
Chris Lattner
75c2b8034b
Simplify analyzer
...
llvm-svn: 431
2001-09-07 16:26:36 +00:00
Vikram S. Adve
23d0560303
Use const int instead of #define.
...
llvm-svn: 388
2001-08-28 21:35:26 +00:00
Ruchira Sasanka
74f3230149
LV info on machine instructions
...
llvm-svn: 359
2001-08-20 21:11:01 +00:00
Ruchira Sasanka
12710ee1b2
*** empty log message ***
...
llvm-svn: 291
2001-07-24 17:14:13 +00:00
Chris Lattner
9f3245e86b
More functionality, renamed API
...
llvm-svn: 241
2001-07-21 19:07:19 +00:00
Chris Lattner
6aec8e1991
Start of expression analysis support
...
llvm-svn: 219
2001-07-20 19:17:55 +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
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
94ca55178d
Update documentation a bit, correct #include guard
...
llvm-svn: 127
2001-07-03 05:35:23 +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
df93760653
getBasicBlocks() is not needed anymore for reading Method data
...
llvm-svn: 85
2001-06-27 23:30:11 +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
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
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
f2a293a07b
New file: Interval analysis support
...
llvm-svn: 34
2001-06-20 19:26:12 +00:00
Chris Lattner
e6b9b382e2
Initial revision
...
llvm-svn: 2
2001-06-06 20:29:01 +00:00