Commit Graph

1101 Commits

Author SHA1 Message Date
Cameron Buschardt
98a37c2b9c Implemented promote mem->reg pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2005 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 23:17:37 +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
9a3d69649a Change from Method to Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1992 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 18:02:30 +00:00
Chris Lattner
79df7c0aaa Change references from Method to Function
change references from MethodARgument to FunctionArgument


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1991 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 18:01:55 +00:00
Chris Lattner
b0d04726db Convert to use new style casts instead of direct checking
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1990 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 17:58:12 +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
b277d1d0e0 Remove unneccesary forward declarations for classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1987 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-26 17:49:00 +00:00
Vikram S. Adve
dfe412dc8b Refix bug: Add back method MachineCodeForInstruction::dropAllReferences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1980 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:58:02 +00:00
Vikram S. Adve
b6efb3605f Moved to directory Scalar/ and renamed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1977 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:55:06 +00:00
Vikram S. Adve
9c4f7268c6 Destroy MethodLiveVarInfo after register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1976 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:54:03 +00:00
Vikram S. Adve
97fb99bc54 Use deterministic iterator for SchedGraphs. This is actually not
useful right now when we only do local scheduling.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1975 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:53:03 +00:00
Vikram S. Adve
1392d6903c Bug fix: nextToTry was not being initialized in one case.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1974 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:46:15 +00:00
Vikram S. Adve
7c7e46ae5f Add option to disable scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1973 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:45:35 +00:00
Vikram S. Adve
802cec485f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1972 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:44:55 +00:00
Vikram S. Adve
cf8a98f2c2 Minor changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1971 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:40:59 +00:00
Vikram S. Adve
ded1bf8cd8 Re-fix bug: Put back MachineCodeForInstruction::dropAllReferences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1970 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:40:11 +00:00
Vikram S. Adve
e4e4d4e2f9 Fix padding for variables allocated on stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1969 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:39:26 +00:00
Vikram S. Adve
c941b87397 Major overhaul to FoldGetElemPtr to handle mixed array and struct refs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1968 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:37:53 +00:00
Vikram S. Adve
4e7bc49b54 Use deterministic iterator for treeRoots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1967 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:36:52 +00:00
Vikram S. Adve
d7e6becd3e Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().
Also re-enable instr. scheduling pass.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1966 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:35:16 +00:00
Vikram S. Adve
585612e556 Change latencies for Load, Store and Branch instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1965 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:33:53 +00:00
Vikram S. Adve
fd3900ad57 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1964 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:33:02 +00:00
Vikram S. Adve
d95919cbd0 Change treeRoots data structure to make enumeration deterministic.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1962 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:24:00 +00:00
Vikram S. Adve
98d64f8d51 Major overhaul to support arbitrary mixed array and structure indices.
Also moved to the Scalar/ directory and renamed to "MultiDim".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1961 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-24 03:21:18 +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
dfbbf7a631 New pass to decompose multi-dimensional array references into
a sequence of 1-D references, using a sequence of getElementPtrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1948 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-23 20:43:39 +00:00
Chris Lattner
bbe7bbe4d9 Add an assertion that would hopefully catch a problem that was tripping
cameron up


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1944 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-22 18:01:58 +00:00
Chris Lattner
5f4a5289d4 Fix bug test/Regression/Transforms/LevelRaise/2002-03-21-MissedRaise3.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1943 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 23:02:37 +00:00
Chris Lattner
8e640f1fc9 Fix test/Regression/Transforms/LevelRaise/2002-03-21-MissedRaise2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1941 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 22:39:59 +00:00
Chris Lattner
4fe130c22b * AllocationInst ctor moved here from iMemory.h
* AllocationInst now always has an array size operand


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1939 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 22:37:48 +00:00
Chris Lattner
599ca72f5f Fix test/Regression/Other/2002-03-21-LevelRaiseMiss.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1933 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 21:21:13 +00:00
Chris Lattner
9e77f7e08b Make ConvertableToGEP handle cases where the user is indexing into the
first element of a structure type.  Before this would not be handled because
getStructOffset would either stop immediately (because StopEarly was true
and Offset = 0), or blast past the level we wanted.

Now ConvertableToGEP steps down through the type one level at a time, checking
the Offset and Scale conditions at each step


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1931 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:27:20 +00:00
Chris Lattner
8e86542fb6 Implement the new InsertInstBeforeInst function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1930 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:24:00 +00:00
Chris Lattner
45ef5c26d4 Fix the: test/Regression/Other/2002-03-20-LevelRaiseCrash.ll bug. It turned
out that almost always the result of the add was the same as the GEP that
would be generated.  In this case, however, it wasn't, so bad things happened.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1929 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:22:23 +00:00
Chris Lattner
f78642bc06 Declare the new InsertInstBeforeInst function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1927 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 06:15:53 +00:00
Chris Lattner
150dcb9e2d Add an assertion to catch a misuse of replaceAllUsesWith
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1924 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 05:38:15 +00:00
Chris Lattner
99fb91cc2f 1. Fix bug test/Regression/Other/2002-03-20-LevelRaiseBadCodegen.ll
2. Allow negative scales in ConvertableToGEP, so that this loop from
   alloc_tree in the Olden health benchmark is correctly raised:

       for (i = 3; i >= 0; i--)
         fval[i] = alloc_tree(level - 1, label*4 + i + 1, new);

   Stepping through the array backwards caused a negative scale.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1922 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 03:04:38 +00:00
Chris Lattner
ebcd28eb15 Namespace qualify debugging code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1921 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-21 03:02:07 +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
Vikram S. Adve
524185af3f Just a comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1908 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:40:25 +00:00
Vikram S. Adve
a45a327e8d New pass to decompose multi-dimensional array references into
a sequence of 1-D references, using a sequence of getElementPtrs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1907 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:39:09 +00:00
Vikram S. Adve
23a4c8fcb5 Big bug fix: getUsableUniRegAtMI needed to return values in arguments
but did not pass the arguments by reference!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1906 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-18 03:37:19 +00:00