Commit Graph

266348 Commits

Author SHA1 Message Date
Chris Lattner be449bc1ef * 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.

llvm-svn: 2004
2002-03-27 19:48:03 +00:00
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 ec414e125a * 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 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 42393b3e51 Allow isa<DSNode>(..)
Simplification routines return true on change

llvm-svn: 1996
2002-03-27 00:52:57 +00:00
Chris Lattner bf03a52b3b * Add support for DataStructure analysis
* Parameterize pass outputting with the printPass template, so analysis
  output can optionally take more arguments than just a stream.  The
  default output mode is just to use operator<< on the analysis.
* Remove CurrentModule hack, in favor of using printPass
* Remove special operator<<'s defined for FindUsedTypes and
  FindUnsafePointerTypes, in favor of printPass specializations
* Use std::cout instead of cout

llvm-svn: 1995
2002-03-26 22:43:12 +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 b53954d3c7 New header file for datastructure analysis
llvm-svn: 1993
2002-03-26 22:38:45 +00:00
Chris Lattner af83890436 Change from Method to Function
llvm-svn: 1992
2002-03-26 18:02:30 +00:00
Chris Lattner 57698e2c0b Change references from Method to Function
change references from MethodARgument to FunctionArgument

llvm-svn: 1991
2002-03-26 18:01:55 +00:00
Chris Lattner 5d088b00bf Convert to use new style casts instead of direct checking
llvm-svn: 1990
2002-03-26 17:58:12 +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 181d991cd7 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 b7c442805d Remove unneccesary forward declarations for classes
llvm-svn: 1987
2002-03-26 17:49:00 +00:00
Chris Lattner cbd8c6a1b6 Transform uses of Method into uses of Function.
Rename MethodArgument to FunctionArgument
Fix some _really_ out of date comments

llvm-svn: 1986
2002-03-26 17:48:08 +00:00
Chris Lattner 2a75d5d25c Allow clients to use FunctionType as well as MethodType for now
llvm-svn: 1985
2002-03-26 17:46:41 +00:00
Vikram S. Adve 66f939fc33 Make test more rigorous. It was never reading the non-scalar variables
from memory!  Also, separate the writing and reading routines.

llvm-svn: 1983
2002-03-24 13:22:04 +00:00
Chris Lattner 0a830e61da initialize sum variable
llvm-svn: 1982
2002-03-24 07:03:10 +00:00
Vikram S. Adve 4af7afc3ca Refix bug: Add back method MachineCodeForInstruction::dropAllReferences.
llvm-svn: 1980
2002-03-24 03:58:02 +00:00
Vikram S. Adve c1209d2f82 Fix padding when allocating local variables on stack.
llvm-svn: 1979
2002-03-24 03:57:38 +00:00
Vikram S. Adve 32d77f729c Add methods to support type inquiry. Rename TmpInstruction values.
llvm-svn: 1978
2002-03-24 03:56:55 +00:00
Vikram S. Adve e583c40316 Moved to directory Scalar/ and renamed.
llvm-svn: 1977
2002-03-24 03:55:06 +00:00
Vikram S. Adve 7a78ae9dd6 Destroy MethodLiveVarInfo after register allocation.
llvm-svn: 1976
2002-03-24 03:54:03 +00:00
Vikram S. Adve 479126b3d3 Use deterministic iterator for SchedGraphs. This is actually not
useful right now when we only do local scheduling.

llvm-svn: 1975
2002-03-24 03:53:03 +00:00
Vikram S. Adve 9db158f568 Bug fix: nextToTry was not being initialized in one case.
llvm-svn: 1974
2002-03-24 03:46:15 +00:00
Vikram S. Adve e2a0dfad64 Add option to disable scheduling.
llvm-svn: 1973
2002-03-24 03:45:35 +00:00
Vikram S. Adve c228f7a077 Add option to disable scheduling.
Destroy live-variable information after scheduling so it is
recomputed before later phases (e.g., reg. allocation).
Use deterministic iterator to enumerate sched graphs.

llvm-svn: 1972
2002-03-24 03:44:55 +00:00
Vikram S. Adve 90039d0ab9 Minor changes.
llvm-svn: 1971
2002-03-24 03:40:59 +00:00
Vikram S. Adve 31a5d3a475 Re-fix bug: Put back MachineCodeForInstruction::dropAllReferences.
llvm-svn: 1970
2002-03-24 03:40:11 +00:00
Vikram S. Adve 377646fcfd Fix padding for variables allocated on stack.
llvm-svn: 1969
2002-03-24 03:39:26 +00:00
Vikram S. Adve dc96167e00 Major overhaul to FoldGetElemPtr to handle mixed array and struct refs.
llvm-svn: 1968
2002-03-24 03:37:53 +00:00
Vikram S. Adve 8bc420ec6a Use deterministic iterator for treeRoots.
llvm-svn: 1967
2002-03-24 03:36:52 +00:00
Vikram S. Adve 75ee890af0 Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().
Also re-enable instr. scheduling pass.

llvm-svn: 1966
2002-03-24 03:35:16 +00:00
Vikram S. Adve be08b5ea15 Change latencies for Load, Store and Branch instructions.
llvm-svn: 1965
2002-03-24 03:33:53 +00:00
Vikram S. Adve 72213c9a66 Major enhancements to how array and structure indices are handled.
Improve checking for constants in Multiply.
Simpler method to keep track of when a node is folded into its parent.
Several other bug fixes.

llvm-svn: 1964
2002-03-24 03:33:02 +00:00
Vikram S. Adve 650ad5e881 Change treeRoots data structure to make enumeration deterministic.
Also, add a flag to marked nodes that do not need code because they
have been folded into the user (parent in the BURG tree).

llvm-svn: 1963
2002-03-24 03:25:17 +00:00
Vikram S. Adve 3228f9cc42 Change treeRoots data structure to make enumeration deterministic.
llvm-svn: 1962
2002-03-24 03:24:00 +00:00
Vikram S. Adve 1ee0658a07 Major overhaul to support arbitrary mixed array and structure indices.
Also moved to the Scalar/ directory and renamed to "MultiDim".

llvm-svn: 1961
2002-03-24 03:21:18 +00:00
Vikram S. Adve 025fdf98b6 Rename pass to DecomposeMultiDimRefs.
llvm-svn: 1960
2002-03-24 03:19:54 +00:00
Vikram S. Adve 2d3ea22379 Fix out-of-date name.
llvm-svn: 1959
2002-03-24 03:18:49 +00:00
Vikram S. Adve ec4a8205a7 Regression tests for DecomposeMultiDimRefs pass.
llvm-svn: 1958
2002-03-24 03:17:16 +00:00
Chris Lattner 4e8c4877aa Rename Method to Function
llvm-svn: 1957
2002-03-23 22:51:58 +00:00
Chris Lattner 2c8c163103 Remove extranous forward decl
llvm-svn: 1956
2002-03-23 22:48:21 +00:00
Chris Lattner 26fdff788c Remove unneccesary forward definitions
llvm-svn: 1955
2002-03-23 22:48:07 +00:00
Chris Lattner e03002e772 Add transition header file
llvm-svn: 1954
2002-03-23 22:47:43 +00:00
Chris Lattner d781ebd257 Update documentation, rename Method to Function, move typedef to Value.h for now.
llvm-svn: 1953
2002-03-23 22:47:28 +00:00