summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure
Commit message (Collapse)AuthorAgeFilesLines
...
* changes to make it compatible with 64bit gccAnand Shukla2002-06-255-64/+75
| | | | llvm-svn: 2789
* *** empty log message ***Chris Lattner2002-06-254-86/+80
| | | | llvm-svn: 2777
* Split ConstantVals.h into Constant.h and Constants.hChris Lattner2002-04-281-1/+1
| | | | llvm-svn: 2378
* Fix signed/unsigned comparison warningChris Lattner2002-04-281-1/+1
| | | | llvm-svn: 2350
* Add support for tracking array allocationsChris Lattner2002-04-272-2/+13
| | | | llvm-svn: 2328
* Allow the inline limit to be modified on the commandline for debuggingChris Lattner2002-04-271-1/+6
| | | | llvm-svn: 2327
* Print argument scalars as ellipses instead of boxesChris Lattner2002-04-181-1/+2
| | | | llvm-svn: 2293
* Inline indirect function calls that are only capable of calling one functionChris Lattner2002-04-172-10/+13
| | | | llvm-svn: 2275
* Make data structure acurately get ALL edges, even loads of null fields ofChris Lattner2002-04-173-29/+30
| | | | | | | | nodes that are not shadow nodes This fixes em3d to be _correct_ if not optimial llvm-svn: 2274
* * Remove the concept of a critical shadow nodeChris Lattner2002-04-165-55/+79
| | | | | | | | * 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-165-100/+94
| | | | | | | | | * 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
* Move FunctionArgument out of iOther.h into Argument.h and rename class toChris Lattner2002-04-092-9/+12
| | | | | | be 'Argument' instead of FunctionArgument. llvm-svn: 2216
* Add explicit #includes of Function.h to make up for the removed #includeChris Lattner2002-04-091-0/+1
| | | | | | in iOther.h llvm-svn: 2209
* Add #includes to make up for #includes pruned out of header files.Chris Lattner2002-04-091-0/+2
| | | | llvm-svn: 2207
* Play around with #includesChris Lattner2002-04-082-4/+1
| | | | llvm-svn: 2174
* Call nodes are never equivalentChris Lattner2002-04-041-3/+4
| | | | | | Shadow nodes are never critical. llvm-svn: 2102
* Add hack to get timing of analysisChris Lattner2002-04-041-0/+23
| | | | llvm-svn: 2101
* * Eliminate commented out codeChris Lattner2002-04-041-10/+4
| | | | | | | * Do not demand a shadow node when resolving * Raise arbitrary inline limit llvm-svn: 2100
* Support resolving function arguments/return values to pointers that indexChris Lattner2002-04-011-5/+15
| | | | | | into other objects. llvm-svn: 2094
* Avoid incorrectly adding null values to the scalar map!Chris Lattner2002-04-011-0/+1
| | | | llvm-svn: 2085
* Critical shadow nodes no do not know their parent explictly.Chris Lattner2002-04-011-4/+2
| | | | llvm-svn: 2084
* Minor cleanups (use dyn_cast instead of testing manually)Chris Lattner2002-04-011-6/+7
| | | | | | Shadow nodes now don't explicitly know their parent. llvm-svn: 2083
* 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
* Increase limit for perimeterChris Lattner2002-04-011-1/+1
| | | | llvm-svn: 2081
* 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 the isEquivalentTo implementations here. They can probably be putChris Lattner2002-03-311-1/+39
| | | | | | | someplace nicer in the file though. * Add new dump method for debugging llvm-svn: 2064
* Print out the instruction instead of just the address!Chris Lattner2002-03-311-1/+3
| | | | llvm-svn: 2063
* * 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
* * Convert CallMap to be a vector, because the keys can change, and the mapChris Lattner2002-03-311-8/+45
| | | | | | | | doesn't resort! * Be more generous with the cached matches that we allow now. * Recursive calls should all work now! llvm-svn: 2061
* Implement getEscapingAllocations & getNonEscapingAllocationsChris Lattner2002-03-281-24/+61
| | | | llvm-svn: 2021
* * Rename UnlinkUndistinguishableShadowNodes & RemoveUnreachableShadowNodesChris Lattner2002-03-283-15/+16
| | | | | | | | 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-286-317/+386
| | | | | | | | | | | | | * 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
* * Implement DSNode::removeAllIncomingEdgesChris Lattner2002-03-271-6/+20
| | | | | | | | * Implement Critical Shadow node handling * Implement routines to determine whether an allocation node is a malloc or alloca llvm-svn: 2003
* * Add critical node supportChris Lattner2002-03-271-6/+20
| | | | | | * Optimize graph after building it. This should be unneccesary in the future llvm-svn: 2002
* * Destroy alloca nodes when a graph gets inlinedChris Lattner2002-03-271-2/+32
| | | | | | | * Add links to all subtrees when a shadow node gets resolved * Add critical node handling llvm-svn: 2001
* * Optimizers return true on changeChris Lattner2002-03-271-9/+83
| | | | | | * Implement indistinguishable shadow node elimination llvm-svn: 1999
* Fix long lineChris Lattner2002-03-271-3/+5
| | | | llvm-svn: 1998
* * Because of optimization, the shadow nodes between arguments might getChris Lattner2002-03-271-13/+14
| | | | | | | removed. Check to see if they are there. * Repeat optimizations while changing llvm-svn: 1997
* Initial checkin of Datastructure analysis.Chris Lattner2002-03-267-0/+1329
Has bugs, but shouldn't crash in theory. llvm-svn: 1994
OpenPOWER on IntegriCloud