Commit Graph

1127 Commits

Author SHA1 Message Date
Chris Lattner
a5c3dec126 * s/Method/Function
* Implement a check to make sure a function is not internal and external
  at the same time


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2050 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 19:06:18 +00:00
Chris Lattner
a744451856 Correctly clone the function with the extra argument types. Now we need
to modify the function next.

This also properly recycles functions so that we don't get exponential
code blowup in the common case.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2049 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 19:05:48 +00:00
Chris Lattner
f40b4792eb s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2048 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 19:04:45 +00:00
Chris Lattner
fa703a4ae5 New clone function routine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2045 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 19:03:54 +00:00
Chris Lattner
d250f4294e Find out which calls in the function we need to transform and how.
Next step is to start hacking functions up.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2044 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 17:13:46 +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
9d89190434 Modularize code a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2040 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 06:21:38 +00:00
Chris Lattner
54ce13f983 Implement the first step of pool allocation - Creating, initialization, and
destruction of the pools.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2039 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 05:50:20 +00:00
Chris Lattner
b04bb3f158 Add an insert method to VAlueHolder to allow batch insertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2038 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 05:49:37 +00:00
Chris Lattner
68e5ed8dbe Add new addTypeName method to Module class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2037 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 04:48:40 +00:00
Chris Lattner
b408b12556 s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2036 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:57:15 +00:00
Chris Lattner
c9aa7dfee4 s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2035 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:51:11 +00:00
Chris Lattner
6bfd6a578a s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2034 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:44:36 +00:00
Chris Lattner
6056c49ca0 Implement new getFunction and getOrInsertFunction methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2033 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:44:18 +00:00
Chris Lattner
89851077da Simplify code a bit by using Module::getOrInsertFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2032 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:43:24 +00:00
Chris Lattner
d2d3a16641 Flesh out a bunch more code, print allocations that are poolable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2031 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:40:59 +00:00
Chris Lattner
a637859c71 s/method/function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2030 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:40:25 +00:00
Chris Lattner
0d461f7f09 s/Method/Function/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2029 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:39:36 +00:00
Chris Lattner
be591a78cf Simplify code a lot by using the Module::getFunction & getOrInsertFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2028 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-29 03:38:05 +00:00
Chris Lattner
21ba3fec99 Remove the reduceApply functions they are obsolete things from the days before
we had a reasonable pass system


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2022 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 22:49:49 +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
bda28f7c2a Initial checkin of Noop pass that will be the pool allocator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2014 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-28 18:08:31 +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
Cameron Buschardt
b1be061a76 * Move classes around
* rename constructor function
* Move stuff into anonymous namespaces


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2007 91177308-0d34-0410-b5e6-96231b3b80d8
2002-03-27 23:28:40 +00:00
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