3625 Commits

Author SHA1 Message Date
Chris Lattner
d9c86c7c96 * Implement DSNode::removeAllIncomingEdges
* Implement Critical Shadow node handling
* Implement routines to determine whether an allocation node is a malloc
  or alloca

llvm-svn: 2003
2002-03-27 19:46:05 +00:00
Chris Lattner
0ad8b8f5d0 * Add critical node support
* Optimize graph after building it.  This should be unneccesary in the future

llvm-svn: 2002
2002-03-27 19:45:12 +00:00
Chris Lattner
b6c8c5138f * Destroy alloca nodes when a graph gets inlined
* Add links to all subtrees when a shadow node gets resolved
* Add critical node handling

llvm-svn: 2001
2002-03-27 19:44:33 +00:00
Chris Lattner
b358f71d02 * Optimizers return true on change
* Implement indistinguishable shadow node elimination

llvm-svn: 1999
2002-03-27 00:55:13 +00:00
Chris Lattner
5c3280971c Fix long line
llvm-svn: 1998
2002-03-27 00:54:31 +00:00
Chris Lattner
f8e2d060cc * Because of optimization, the shadow nodes between arguments might get
removed.  Check to see if they are there.
* Repeat optimizations while changing

llvm-svn: 1997
2002-03-27 00:53:57 +00:00
Chris Lattner
e604d8ec65 Initial checkin of Datastructure analysis.
Has bugs, but shouldn't crash in theory.

llvm-svn: 1994
2002-03-26 22:39:06 +00:00
Chris Lattner
0df67e347a change refs to Method to Function
Change references to MEthodArgument to FunctionArgument

llvm-svn: 1989
2002-03-26 17:55:33 +00:00
Chris Lattner
4e8c4877aa Rename Method to Function
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Vikram S. Adve
218f8de01a Fixed several problems with handling arguments to Phis.
llvm-svn: 1910
2002-03-18 03:47:26 +00:00
Vikram S. Adve
89637cd8e2 Big bug fix: killed uses were being inserted instead of erased!
Also added a set of debug options.

llvm-svn: 1909
2002-03-18 03:45:41 +00:00
Chris Lattner
c47c3cce6f 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.

llvm-svn: 1876
2002-03-14 22:35:50 +00:00
Chris Lattner
26ec881062 Bugfix for test/Regression/Other/2002-03-11-ExprAssertion.ll
llvm-svn: 1856
2002-03-11 20:50:24 +00:00
Chris Lattner
62f1e98e4f Initial checkin
llvm-svn: 1831
2002-03-07 20:16:38 +00:00
Chris Lattner
beed742b55 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
46519418b0 Pull interprocedural analyses out of Analysis library into their own lib
llvm-svn: 1827
2002-03-06 18:44:29 +00:00
Chris Lattner
d852cc32ec Move call graph printing support out of Writer.h into Callgraph.h
remove dead global function

llvm-svn: 1825
2002-03-06 18:00:49 +00:00
Chris Lattner
8032732948 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
43373a6868 Make it compile with GCC 3.0.4
llvm-svn: 1786
2002-02-24 23:01:21 +00:00
Chris Lattner
83d485b310 * 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

llvm-svn: 1750
2002-02-12 22:39:50 +00:00
Chris Lattner
60a6591d83 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

llvm-svn: 1746
2002-02-12 21:07:25 +00:00
Chris Lattner
7a264284f0 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
ea13e0afa0 Convert operand iterator over to work like an STL iterator
llvm-svn: 1720
2002-02-05 06:02:59 +00:00
Chris Lattner
7e5ee4253c 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
101a5d9197 Must include SetOperations to do set_*
llvm-svn: 1716
2002-02-05 03:35:53 +00:00
Chris Lattner
a2b661f764 Remove generic routines to Support/SetOperations.h
llvm-svn: 1715
2002-02-05 03:35:31 +00:00
Chris Lattner
dc6539bcc0 Remove empty files
llvm-svn: 1713
2002-02-05 02:52:53 +00:00
Chris Lattner
b1def732af * 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
30e8fb69c5 * 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
91c4a419e2 Changes neccesary due to the move of BBLiveVar.h to the lib/Analysis/LiveVar directory
llvm-svn: 1709
2002-02-05 00:43:37 +00:00
Chris Lattner
7c70802193 * 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

llvm-svn: 1706
2002-02-05 00:34:50 +00:00
Chris Lattner
94b8baf089 * 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
f468b52e3a Code cleanups, no functional change
llvm-svn: 1704
2002-02-04 23:31:16 +00:00
Chris Lattner
439d0e557b Clean up MethodLiveVarInfo
llvm-svn: 1703
2002-02-04 20:49:04 +00:00
Chris Lattner
494266eaf0 Turn live variable analysis into a real MethodPass.
llvm-svn: 1699
2002-02-04 20:00:08 +00:00
Chris Lattner
75b2283602 Remove Obsolete LoopDepthCalculator. All users should use LoopInfo directly.
llvm-svn: 1697
2002-02-04 17:49:01 +00:00
Chris Lattner
519af2962d REmove huge hack used by register allocator
llvm-svn: 1694
2002-02-04 17:39:02 +00:00
Chris Lattner
325869ac29 * 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!

llvm-svn: 1687
2002-02-04 16:35:12 +00:00
Chris Lattner
7ad6519f90 Cut down include pollution and number of frivolous consts.
llvm-svn: 1683
2002-02-04 16:31:03 +00:00
Chris Lattner
bd3ad751f0 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
73645f3b94 Minor cleanups
llvm-svn: 1671
2002-02-04 05:48:24 +00:00
Chris Lattner
6f27b7d41c Lots of nonfunctional code cleanups
llvm-svn: 1642
2002-02-03 07:25:25 +00:00
Chris Lattner
a5e103a2ae Provide the right AnalysisID for postdominators
llvm-svn: 1616
2002-01-31 18:29:24 +00:00
Chris Lattner
ccf571a408 Convert analyses to new pass structure
llvm-svn: 1603
2002-01-31 00:42:27 +00:00
Chris Lattner
979d11db14 Implement loop depth calculation in terms of dominators instead of intervals
No problems with irreducibility now

llvm-svn: 1602
2002-01-31 00:42:06 +00:00
Chris Lattner
ee965abc36 Move stuff out of the Optimizations directories into the appropriate Transforms
directories.  Eliminate the opt namespace.

llvm-svn: 1520
2002-01-21 23:17:48 +00:00
Chris Lattner
0686e435d1 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
7f74a56e24 Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Ruchira Sasanka
1a98b28bde added a section on how to modify live variable code to use LLVM instructions
instead of machine instructions.

llvm-svn: 1451
2001-12-13 21:25:46 +00:00
Chris Lattner
cdbcb1fd17 Some programs are using BB's as values, until we resolve this. Disable the assert
llvm-svn: 1448
2001-12-13 00:45:06 +00:00