summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Fix signed/unsigned comparison warningChris Lattner2002-04-281-1/+1
| | | | llvm-svn: 2350
* Change the Dominator info and LoopInfo classes to keep track of ↵Chris Lattner2002-04-284-27/+27
| | | | | | | | BasicBlock's, not const BasicBlocks llvm-svn: 2337
* s/Method/FunctionChris Lattner2002-04-273-17/+18
| | | | llvm-svn: 2336
* * Rename MethodPass class to FunctionPassChris Lattner2002-04-276-42/+24
| | | | | | | | | | | | | | | - Rename runOnMethod to runOnFunction * Transform getAnalysisUsageInfo into getAnalysisUsage - Method is now const - It now takes one AnalysisUsage object to fill in instead of 3 vectors to fill in - Pass's now specify which other passes they _preserve_ not which ones they modify (be conservative!) - A pass can specify that it preserves all analyses (because it never modifies the underlying program) * s/Method/Function/g in other random places as well llvm-svn: 2333
* 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
* Change Constant::getNullConstant to Constant::getNullValueChris Lattner2002-04-271-2/+2
| | | | llvm-svn: 2323
* Just use << isntead of forcing getStrValueChris Lattner2002-04-181-1/+1
| | | | llvm-svn: 2294
* 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
* Print out what the root of the call graph is.Chris Lattner2002-04-101-0/+2
| | | | llvm-svn: 2223
* Move FunctionArgument out of iOther.h into Argument.h and rename class toChris Lattner2002-04-094-11/+14
| | | | | | 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-092-0/+3
| | | | llvm-svn: 2207
* Don't leak all of the Loop objects created...Chris Lattner2002-04-091-2/+10
| | | | llvm-svn: 2196
* * General cleanupsChris Lattner2002-04-091-21/+21
| | | | | | | * In calcLiveVarSetsForBB, do not leak a ValueSet every time the function is called! llvm-svn: 2189
* s/Method/FunctionChris Lattner2002-04-082-9/+9
| | | | llvm-svn: 2180
* isLabelType is obsoleteChris Lattner2002-04-081-1/+1
| | | | llvm-svn: 2175
* Play around with #includesChris Lattner2002-04-082-4/+1
| | | | llvm-svn: 2174
* Add #includes that were pruned from already #included filesChris Lattner2002-04-081-0/+2
| | | | llvm-svn: 2173
* ConstantHandling moved into VMCore libraryChris Lattner2002-04-081-1/+1
| | | | llvm-svn: 2165
* Change references to the Method class to be references to the FunctionChris Lattner2002-04-074-40/+37
| | | | | | | class. The Method class is obsolete (renamed) and all references to it are being converted over to Function. llvm-svn: 2144
* 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
* s/Method/FunctionChris Lattner2002-03-291-2/+2
| | | | llvm-svn: 2043
* 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
OpenPOWER on IntegriCloud