summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/EliminateNodes.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Reimplement data structure analysisChris Lattner2002-07-101-373/+0
| | | | llvm-svn: 2868
* Fix anand's last checkinChris Lattner2002-06-301-34/+34
| | | | llvm-svn: 2804
* changes to make it compatible with 64bit gccAnand Shukla2002-06-251-30/+31
| | | | llvm-svn: 2789
* Add support for tracking array allocationsChris Lattner2002-04-271-0/+1
| | | | llvm-svn: 2328
* * Remove the concept of a critical shadow nodeChris Lattner2002-04-161-25/+22
| | | | | | | | * Make the function pointer argument explicit for a call nodes * Eliminate unreachable global values * Merge call nodes that are identical llvm-svn: 2266
* * Eliminate ArgDSNode's completely, now rely on scalar mapChris Lattner2002-04-161-14/+19
| | | | | | | | | * 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
* Allow merging of identical call nodes. Make the shadow node pointed toChris Lattner2002-04-011-4/+18
| | | | | | by the call node noncritical before the call is destroyed. llvm-svn: 2082
* Unify the destruction code used for node pairs vs normal nodes. This wasChris Lattner2002-03-311-35/+36
| | | | | | | | 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
* * Move isEquivalentTo implementations to NodeImplChris Lattner2002-03-311-56/+91
| | | | | | | * Implement a new form of node folding to catch cases missed in Addtree * Add removeIndistinguishableNodePairs to merge calls (todo) and globals llvm-svn: 2062
* Implement getEscapingAllocations & getNonEscapingAllocationsChris Lattner2002-03-281-24/+61
| | | | llvm-svn: 2021
* * Rename UnlinkUndistinguishableShadowNodes & RemoveUnreachableShadowNodesChris Lattner2002-03-281-11/+12
| | | | | | | | to reflect that they can eliminate arbitrary nodes. * Rename the ShadowNodeEliminate.cpp file to EliminateNodes.cpp for the same reason llvm-svn: 2020
* Ooops, I did such a great job pruning nodes, that I accidentally deletedChris Lattner2002-03-281-1/+2
| | | | | | ALL allocation nodes... hrm... bad. llvm-svn: 2018
* Many changesChris Lattner2002-03-281-102/+178
| | | | | | | | | | | | | * 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
* * Add #define to enabled debug messagesChris Lattner2002-03-271-12/+15
| | | | | | | | | * 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
* * Optimizers return true on changeChris Lattner2002-03-271-9/+83
| | | | | | * Implement indistinguishable shadow node elimination llvm-svn: 1999
* Initial checkin of Datastructure analysis.Chris Lattner2002-03-261-0/+127
Has bugs, but shouldn't crash in theory. llvm-svn: 1994
OpenPOWER on IntegriCloud