summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/TopDownClosure.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove dead methodChris Lattner2003-06-301-27/+0
| | | | llvm-svn: 6999
* Do not multiply delete graphs if functions are sharing graphsChris Lattner2003-06-301-4/+6
| | | | llvm-svn: 6997
* Revamp DSGraphs so that they can support multiple functions in the sameChris Lattner2003-06-301-4/+8
| | | | | | DSGraph at one time llvm-svn: 6994
* Abstract out the predicate which decides whether a function gets completeChris Lattner2003-06-291-13/+23
| | | | | | arguments or not... llvm-svn: 6987
* Propagate globals graph from the local to bu to td globals graphs. ThisChris Lattner2003-06-281-2/+2
| | | | | | fixes bug: DSGraph/buglobals.ll llvm-svn: 6947
* Remove support for the MultiObject flag, which was fundamentally brokenChris Lattner2003-06-221-0/+1
| | | | llvm-svn: 6840
* Implement a "union-findy" version of DS-Analysis, which eliminates theChris Lattner2003-02-111-9/+3
| | | | | | Referrers list on DSNodes. llvm-svn: 5536
* Rearrange codeChris Lattner2003-02-101-11/+13
| | | | llvm-svn: 5527
* Fix major bugs in incompleteness marking that were pessimizing resultsChris Lattner2003-02-091-96/+101
| | | | llvm-svn: 5515
* Fix a bug where we would mark the callees arguments incomplete if the caller ↵Chris Lattner2003-02-081-2/+2
| | | | | | was external. llvm-svn: 5510
* Implement optimization for direct function call case. This dramaticallyChris Lattner2003-02-051-9/+14
| | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495
* Make the TD pass not include all of the call nodes from the local pass,Chris Lattner2003-02-041-0/+1
| | | | | | eliminating incomplete markers from them llvm-svn: 5490
* Hack to work around deficiency in pass infrastructureChris Lattner2003-02-031-3/+9
| | | | llvm-svn: 5485
* Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner2003-02-011-3/+3
| | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460
* * Eliminate boolean arguments in favor of using enumsChris Lattner2003-01-231-2/+3
| | | | | | * T-D pass now eliminates unreachable globals llvm-svn: 5419
* Fix logical error in TD pass: we should clear Mod/Ref bits of each callerVikram S. Adve2002-11-271-2/+3
| | | | | | | before inlining their graphs into a function. To support this, added flags to CloneFlags to strip/keep Mod/Ref bits. llvm-svn: 4836
* Handle a mismatch between # function args and call site argsChris Lattner2002-11-111-1/+2
| | | | llvm-svn: 4696
* eliminate the ability to remove global nodes from deadNodeElminate... for now.Chris Lattner2002-11-091-1/+1
| | | | | | | This slows stuff down a bit, but it should get much better before it gets any worse. llvm-svn: 4666
* Add globals graphs to all three passesChris Lattner2002-11-091-13/+19
| | | | llvm-svn: 4663
* Clean up DSGraph::removeDeadNodes interfaceChris Lattner2002-11-091-2/+1
| | | | llvm-svn: 4660
* Make removeTriviallyDeadNodes a private interface of DSGraphChris Lattner2002-11-091-1/+0
| | | | llvm-svn: 4659
* Reenable 'quick exit' caseChris Lattner2002-11-081-2/+1
| | | | llvm-svn: 4638
* Reimplement TD pass completely it now worksChris Lattner2002-11-081-113/+119
| | | | llvm-svn: 4635
* Use DSNodeHandleMap instead to be safeChris Lattner2002-11-081-4/+4
| | | | llvm-svn: 4622
* Add flushChris Lattner2002-11-081-1/+2
| | | | llvm-svn: 4619
* Instead of using a bool that constant has to be explained, use a selfChris Lattner2002-11-071-1/+1
| | | | | | explanitory enum instead. llvm-svn: 4600
* Implement a new mergeInGraph method, which basically factors code out ofChris Lattner2002-11-071-30/+30
| | | | | | | | | | | | the BU class. This will be used by the IPModRef class to do stuff, eventually perhaps the TD pass will use it also. Speaking of the TD pass, this also eliminates the self recursive case, which was broken, and couldn't occur anyway. llvm-svn: 4599
* Rename DataStructureAnalysis namespace to DSChris Lattner2002-11-071-1/+1
| | | | llvm-svn: 4596
* Delete "StripScalars" argument to cloneInto methodChris Lattner2002-11-061-1/+0
| | | | llvm-svn: 4560
* - Make sure to only keep track of mappings that the TD pass may need in theChris Lattner2002-10-221-4/+46
| | | | | | | | future. This prevents having spurious map entries to nodes that we really don't care about. This allows us to reenable the DeadNodeElim, which was disabled. llvm-svn: 4260
* Delete unused arguments to DSGraph::cloneInto methodChris Lattner2002-10-211-3/+1
| | | | llvm-svn: 4253
* - Add "ResolvingCaller" to the CallSite record. This keeps track of whichChris Lattner2002-10-211-11/+24
| | | | | | | | function was finally able to resolve the function call. Adding this allows the TD pass to actually work right! - Temporarily disable dead node pruning. This will be reenabled soon. llvm-svn: 4252
* As it turns out, we don't need a fully generic mapping copy ctor, we just needChris Lattner2002-10-211-17/+7
| | | | | | | something that maps through a std::map. Since this simplified the client and implementation code, do so now. llvm-svn: 4250
* Remove some unneccesary 'using' directivesChris Lattner2002-10-211-5/+3
| | | | llvm-svn: 4246
* - Make DSCallSite not inherit from std::vector. Renamed methods slightly.Chris Lattner2002-10-211-3/+3
| | | | | | | | Make copy ctor have two versions to avoid dealing with conditional template argument. DSCallSite ctor now takes all arguments instead of taking one and being populated later. llvm-svn: 4240
* Remove spurious caller pointer in DSCallSite.Vikram S. Adve2002-10-201-8/+11
| | | | | | Also add functions to access pointer argument nodes cleanly. llvm-svn: 4235
* Added a first-class representation for each call site that can beVikram S. Adve2002-10-201-13/+13
| | | | | | | | | used in the DS graphs. Essentially, what was vector<DSNodeHandle> before is now a DSCallSite with the same vector, plus pointers to the CallInst and the caller Function. The special-purpose class BUDataStructure::CallSite is no longer needed. llvm-svn: 4228
* Remove more obsolete codeChris Lattner2002-10-171-31/+0
| | | | llvm-svn: 4221
* * Make the DSGraph cloner automatically merge global nodesChris Lattner2002-10-171-9/+0
| | | | | | | | * BUClosure doesn't have to worry about global nodes * TDClosure now works with global nodes * Reenable DNE on TD pass, now that globals work right llvm-svn: 4220
* Enable incompleteness markingChris Lattner2002-10-171-2/+2
| | | | llvm-svn: 4217
* * First try at implementing TD pass this does not merge global nodes yet,Chris Lattner2002-10-171-117/+82
| | | | | | | | among other things. * Significant rewrite of TD pass to avoid potentially N^2 algorithms if possible. It is still not complete, but at least it's checked in now. llvm-svn: 4215
* Checkin some major reworks of data structure analysis. This is not done,Chris Lattner2002-10-011-1/+3
| | | | | | | nor does it work very well, but I need to get it checked in before I break the tree unintentionally. llvm-svn: 3996
* - Do not expose ::ID from any of the analyses anymore.Chris Lattner2002-08-211-1/+0
| | | | llvm-svn: 3416
* Minor changes to DEBUG()'sChris Lattner2002-08-071-2/+3
| | | | llvm-svn: 3261
* Changes to be GCC3.1 friendlyChris Lattner2002-07-311-5/+6
| | | | llvm-svn: 3186
* This file implements the top-down propagation pass for data structure graphs.Vikram S. Adve2002-07-301-0/+224
Also, we now use a separate globals graph to hold externally visible nodes. This changes both the bottom-up and top-down propagation so that globals and other external objects do not have to appear in every function, but only in functions in which they are referenced or they can be used to access something else that is referenced. llvm-svn: 3171
OpenPOWER on IntegriCloud