| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 2378
|
|
|
|
| |
llvm-svn: 2350
|
|
|
|
| |
llvm-svn: 2328
|
|
|
|
| |
llvm-svn: 2327
|
|
|
|
| |
llvm-svn: 2293
|
|
|
|
| |
llvm-svn: 2275
|
|
|
|
|
|
|
|
| |
nodes that are not shadow nodes
This fixes em3d to be _correct_ if not optimial
llvm-svn: 2274
|
|
|
|
|
|
|
|
| |
* Make the function pointer argument explicit for a call nodes
* Eliminate unreachable global values
* Merge call nodes that are identical
llvm-svn: 2266
|
|
|
|
|
|
|
|
|
| |
* Fold call nodes that are indistinguishable for each other. This is a big
win for external functions like sqrt, which would multiply dramatically
before.
* Global nodes with no edges to or from them are now eliminated from the graph.
llvm-svn: 2257
|
|
|
|
|
|
| |
be 'Argument' instead of FunctionArgument.
llvm-svn: 2216
|
|
|
|
|
|
| |
in iOther.h
llvm-svn: 2209
|
|
|
|
| |
llvm-svn: 2207
|
|
|
|
| |
llvm-svn: 2174
|
|
|
|
|
|
| |
Shadow nodes are never critical.
llvm-svn: 2102
|
|
|
|
| |
llvm-svn: 2101
|
|
|
|
|
|
|
| |
* Do not demand a shadow node when resolving
* Raise arbitrary inline limit
llvm-svn: 2100
|
|
|
|
|
|
| |
into other objects.
llvm-svn: 2094
|
|
|
|
| |
llvm-svn: 2085
|
|
|
|
| |
llvm-svn: 2084
|
|
|
|
|
|
| |
Shadow nodes now don't explicitly know their parent.
llvm-svn: 2083
|
|
|
|
|
|
| |
by the call node noncritical before the call is destroyed.
llvm-svn: 2082
|
|
|
|
| |
llvm-svn: 2081
|
|
|
|
|
|
|
|
| |
causing a problem before because global values with incoming edges didn't
copy the incoming edges to the node they were being merged from, causing
the poolalloc pass to die.
llvm-svn: 2079
|
|
|
|
|
|
|
| |
someplace nicer in the file though.
* Add new dump method for debugging
llvm-svn: 2064
|
|
|
|
| |
llvm-svn: 2063
|
|
|
|
|
|
|
| |
* Implement a new form of node folding to catch cases missed in Addtree
* Add removeIndistinguishableNodePairs to merge calls (todo) and globals
llvm-svn: 2062
|
|
|
|
|
|
|
|
| |
doesn't resort!
* Be more generous with the cached matches that we allow now.
* Recursive calls should all work now!
llvm-svn: 2061
|
|
|
|
| |
llvm-svn: 2021
|
|
|
|
|
|
|
|
| |
to reflect that they can eliminate arbitrary nodes.
* Rename the ShadowNodeEliminate.cpp file to EliminateNodes.cpp for the
same reason
llvm-svn: 2020
|
|
|
|
|
|
| |
ALL allocation nodes... hrm... bad.
llvm-svn: 2018
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
llvm-svn: 2010
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
| |
* Implement Critical Shadow node handling
* Implement routines to determine whether an allocation node is a malloc
or alloca
llvm-svn: 2003
|
|
|
|
|
|
| |
* Optimize graph after building it. This should be unneccesary in the future
llvm-svn: 2002
|
|
|
|
|
|
|
| |
* Add links to all subtrees when a shadow node gets resolved
* Add critical node handling
llvm-svn: 2001
|
|
|
|
|
|
| |
* Implement indistinguishable shadow node elimination
llvm-svn: 1999
|
|
|
|
| |
llvm-svn: 1998
|
|
|
|
|
|
|
| |
removed. Check to see if they are there.
* Repeat optimizations while changing
llvm-svn: 1997
|
|
Has bugs, but shouldn't crash in theory.
llvm-svn: 1994
|