Vikram S. Adve [Sun, 31 Mar 2002 19:03:58 +0000 (19:03 +0000)]
Minor cleanup in printing constants. I think this included a bug
fix related to putting a read-write variable in a read-only section,
but I'm not sure now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2073
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 31 Mar 2002 18:58:49 +0000 (18:58 +0000)]
Add method getCallInstIndirectAddrVal() to add call interference
for this value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2072
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 31 Mar 2002 18:58:14 +0000 (18:58 +0000)]
Add method clearCallInterference().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2071
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 31 Mar 2002 18:57:49 +0000 (18:57 +0000)]
Include temp. values when computing max. size of stack frame!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2070
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 31 Mar 2002 18:56:51 +0000 (18:56 +0000)]
Fix a bug in previous bug fix.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2069
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 31 Mar 2002 18:54:37 +0000 (18:54 +0000)]
Bug fix: address used by indirect call instruction should also
be marked as having a Call Interference, even though it may not
be live after the call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2068
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:17:46 +0000 (07:17 +0000)]
Add debug output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2066
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:16:49 +0000 (07:16 +0000)]
* Fix nondeleted type handle which could cause type pool corruption (and
a memory leak)
* Fix memory leak of Argument nodes on function prototypes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2065
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:16:08 +0000 (07:16 +0000)]
* Move the isEquivalentTo implementations here. They can probably be put
someplace nicer in the file though.
* Add new dump method for debugging
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2064
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:15:20 +0000 (07:15 +0000)]
Print out the instruction instead of just the address!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2063
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:14:52 +0000 (07:14 +0000)]
* Move isEquivalentTo implementations to NodeImpl
* Implement a new form of node folding to catch cases missed in Addtree
* Add removeIndistinguishableNodePairs to merge calls (todo) and globals
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2062
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:13:27 +0000 (07:13 +0000)]
* Convert CallMap to be a vector, because the keys can change, and the map
doesn't resort!
* Be more generous with the cached matches that we allow now.
* Recursive calls should all work now!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2061
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 31 Mar 2002 07:11:20 +0000 (07:11 +0000)]
* Allow access to DSNode iterator as DSNode::iterator/begin/end
* Add debugging "dump" method to DSNode
* Fix bugs in DSNode iterator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2060
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 31 Mar 2002 00:13:12 +0000 (00:13 +0000)]
Fix CreateUIntSetInstruction() to handle sign extensions correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2059
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Mar 2002 20:53:14 +0000 (20:53 +0000)]
* Catch and ignore (for now) return instructions in tranformed functions
* Add more debugging output
* Fix problems refering to wrong versions of various graphs
* Build the pool descriptor map!
* Clear the nodemapping map after building pool descriptor to avoid assert
* Transform the NEw function body, not the old one...
* Matrix.ll now works!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2058
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Mar 2002 09:13:23 +0000 (09:13 +0000)]
Initial checkin of file:
Define an iterator to operate over data structure outgoing links and
graph implementation so generic graph functions can be used.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2057
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Mar 2002 09:12:35 +0000 (09:12 +0000)]
* Clean up data structures [AllocDSNode -> DSNode]
* TransformFunctionInfo now has call field form field mapping. May be
removed in the future.
* Moved the computation of "Scalars" into transformFunctionBody so
transformFunction didn't have to recompute it.
* Implement the node mapping calculation in preparation to calculate
PoolDescriptors to pass to transformFunctionBody
* Print out the node mapping [it looks right!]
* Other minor changes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2056
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Mar 2002 09:07:51 +0000 (09:07 +0000)]
Add accessors and a method to get all the outgoing links for ALL nodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2055
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Mar 2002 04:02:41 +0000 (04:02 +0000)]
Add an accessor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2054
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 30 Mar 2002 04:02:31 +0000 (04:02 +0000)]
Maintain enough information so that the pools for all of the nodes of
the graph can be passed around.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2053
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 21:25:19 +0000 (21:25 +0000)]
Implement the first batch of transformations to the methods. So far it:
* Converts malloc instructions to poolalloc
* Converts free instructions to poolfree
* Convert calls to call the new cloned hacked up versions
Note that this does not modify hacked up stuff yet, just the top level
function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2052
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 21:23:29 +0000 (21:23 +0000)]
Add a hook to allow the datastructure to keep naturally up to date, even
though it's not entirely fleshed out.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2051
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 19:06:18 +0000 (19:06 +0000)]
* 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
Chris Lattner [Fri, 29 Mar 2002 19:05:48 +0000 (19:05 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 19:04:45 +0000 (19:04 +0000)]
s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2048
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 19:04:19 +0000 (19:04 +0000)]
Add more accessors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2047
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 19:04:08 +0000 (19:04 +0000)]
Checkin new useful routine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2046
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 19:03:54 +0000 (19:03 +0000)]
New clone function routine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2045
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 17:13:46 +0000 (17:13 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 17:08:29 +0000 (17:08 +0000)]
s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2043
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 17:08:01 +0000 (17:08 +0000)]
Rename getCalledMethod to getCalledFunction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2042
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 17:07:34 +0000 (17:07 +0000)]
Remove getCalledMethod. Use getCalledFunction instead
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2041
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 06:21:38 +0000 (06:21 +0000)]
Modularize code a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2040
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 05:50:20 +0000 (05:50 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 05:49:37 +0000 (05:49 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 04:48:40 +0000 (04:48 +0000)]
Add new addTypeName method to Module class
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2037
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:57:15 +0000 (03:57 +0000)]
s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2036
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:51:11 +0000 (03:51 +0000)]
s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2035
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:44:36 +0000 (03:44 +0000)]
s/Method/Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2034
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:44:18 +0000 (03:44 +0000)]
Implement new getFunction and getOrInsertFunction methods
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2033
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:43:24 +0000 (03:43 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 03:40:59 +0000 (03:40 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 03:40:25 +0000 (03:40 +0000)]
s/method/function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2030
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:39:36 +0000 (03:39 +0000)]
s/Method/Function/g
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2029
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:38:05 +0000 (03:38 +0000)]
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
Chris Lattner [Fri, 29 Mar 2002 03:35:30 +0000 (03:35 +0000)]
Expose more information to clients
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2027
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:32:29 +0000 (03:32 +0000)]
Add getOrInsertFunction and getFunction methods to Module. This simplifies
some code in the transformations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2026
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:32:00 +0000 (03:32 +0000)]
Add #define for MethodType
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2025
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:30:59 +0000 (03:30 +0000)]
s/Method/Function/
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2024
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 29 Mar 2002 03:15:32 +0000 (03:15 +0000)]
Rename MethodType to FunctionType, provide a #define
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2023
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 22:49:49 +0000 (22:49 +0000)]
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
Chris Lattner [Thu, 28 Mar 2002 19:33:00 +0000 (19:33 +0000)]
Implement getEscapingAllocations & getNonEscapingAllocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2021
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 19:16:48 +0000 (19:16 +0000)]
* 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
Chris Lattner [Thu, 28 Mar 2002 19:15:38 +0000 (19:15 +0000)]
* Remove RemoveUnreachableShadowNodes & UnlinkUndistinguishableShadowNodes
to reflect the fact that they actually operate on arbitrary nodes
* Clean up public interface of FunctionDSGraph
* add getEscapingAllocations & getNonEscapingAllocations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2019
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 18:38:38 +0000 (18:38 +0000)]
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
Chris Lattner [Thu, 28 Mar 2002 18:21:31 +0000 (18:21 +0000)]
Add subdirs to makefile
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2017
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 18:21:05 +0000 (18:21 +0000)]
Initial checkin of first regression test for mem2reg pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2016
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 18:10:31 +0000 (18:10 +0000)]
Makefile change for IPO's that use the Datastructure analysis stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2015
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 18:08:31 +0000 (18:08 +0000)]
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
Chris Lattner [Thu, 28 Mar 2002 18:08:07 +0000 (18:08 +0000)]
Add hook for pool allocation pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2013
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 18:01:22 +0000 (18:01 +0000)]
New file for new pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2012
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 17:56:28 +0000 (17:56 +0000)]
Checking for Cameron
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2011
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 28 Mar 2002 17:56:03 +0000 (17:56 +0000)]
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
Chris Lattner [Thu, 28 Mar 2002 17:48:41 +0000 (17:48 +0000)]
* 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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2009
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Buschardt [Wed, 27 Mar 2002 23:29:23 +0000 (23:29 +0000)]
Rename constructor function for mem2reg pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2008
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Buschardt [Wed, 27 Mar 2002 23:28:40 +0000 (23:28 +0000)]
* 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
Cameron Buschardt [Wed, 27 Mar 2002 23:27:45 +0000 (23:27 +0000)]
Rename constructor function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2006
91177308-0d34-0410-b5e6-
96231b3b80d8
Cameron Buschardt [Wed, 27 Mar 2002 23:17:37 +0000 (23:17 +0000)]
Implemented promote mem->reg pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2005
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 27 Mar 2002 19:48:03 +0000 (19:48 +0000)]
* 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
Chris Lattner [Wed, 27 Mar 2002 19:46:05 +0000 (19:46 +0000)]
* 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
Chris Lattner [Wed, 27 Mar 2002 19:45:12 +0000 (19:45 +0000)]
* 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
Chris Lattner [Wed, 27 Mar 2002 19:44:33 +0000 (19:44 +0000)]
* 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
Chris Lattner [Wed, 27 Mar 2002 19:41:45 +0000 (19:41 +0000)]
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2000
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 27 Mar 2002 00:55:13 +0000 (00:55 +0000)]
* 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
Chris Lattner [Wed, 27 Mar 2002 00:54:31 +0000 (00:54 +0000)]
Fix long line
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1998
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 27 Mar 2002 00:53:57 +0000 (00:53 +0000)]
* 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
Chris Lattner [Wed, 27 Mar 2002 00:52:57 +0000 (00:52 +0000)]
Allow isa<DSNode>(..)
Simplification routines return true on change
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1996
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 22:43:12 +0000 (22:43 +0000)]
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1995
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 22:39:06 +0000 (22:39 +0000)]
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
Chris Lattner [Tue, 26 Mar 2002 22:38:45 +0000 (22:38 +0000)]
New header file for datastructure analysis
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1993
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 18:02:30 +0000 (18:02 +0000)]
Change from Method to Function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1992
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 18:01:55 +0000 (18:01 +0000)]
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
Chris Lattner [Tue, 26 Mar 2002 17:58:12 +0000 (17:58 +0000)]
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
Chris Lattner [Tue, 26 Mar 2002 17:55:33 +0000 (17:55 +0000)]
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
Chris Lattner [Tue, 26 Mar 2002 17:49:55 +0000 (17:49 +0000)]
Change uses of Method to Function
Change uses of methodArgument to FunctionArgument
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1988
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 17:49:00 +0000 (17:49 +0000)]
Remove unneccesary forward declarations for classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1987
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 17:48:08 +0000 (17:48 +0000)]
Transform uses of Method into uses of Function.
Rename MethodArgument to FunctionArgument
Fix some _really_ out of date comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1986
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 26 Mar 2002 17:46:41 +0000 (17:46 +0000)]
Allow clients to use FunctionType as well as MethodType for now
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1985
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 13:22:04 +0000 (13:22 +0000)]
Make test more rigorous. It was never reading the non-scalar variables
from memory! Also, separate the writing and reading routines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1983
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 24 Mar 2002 07:03:10 +0000 (07:03 +0000)]
initialize sum variable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1982
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:58:02 +0000 (03:58 +0000)]
Refix bug: Add back method MachineCodeForInstruction::dropAllReferences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1980
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:57:38 +0000 (03:57 +0000)]
Fix padding when allocating local variables on stack.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1979
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:56:55 +0000 (03:56 +0000)]
Add methods to support type inquiry. Rename TmpInstruction values.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1978
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:55:06 +0000 (03:55 +0000)]
Moved to directory Scalar/ and renamed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1977
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:54:03 +0000 (03:54 +0000)]
Destroy MethodLiveVarInfo after register allocation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1976
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:53:03 +0000 (03:53 +0000)]
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
Vikram S. Adve [Sun, 24 Mar 2002 03:46:15 +0000 (03:46 +0000)]
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
Vikram S. Adve [Sun, 24 Mar 2002 03:45:35 +0000 (03:45 +0000)]
Add option to disable scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1973
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Sun, 24 Mar 2002 03:44:55 +0000 (03:44 +0000)]
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
Vikram S. Adve [Sun, 24 Mar 2002 03:40:59 +0000 (03:40 +0000)]
Minor changes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1971
91177308-0d34-0410-b5e6-
96231b3b80d8