aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis/DataStructure/TopDownClosure.cpp
AgeCommit message (Collapse)Author
2004-09-20'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner
from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Changes For Bug 352Reid Spencer
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-07Move all of the DSA headers into the Analysis/DataStructure subdir.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14663 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-29Wrapped code and comments at 80 cols; doxygenified some comments.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13264 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08Instead of callign removeTriviallyDeadNodes on the global graph every timeChris Lattner
removeDeadNodes is called, only call it at the end of the pass being run. This saves 1.3 seconds running DSA on 177.mesa (5.3->4.0s), which is pretty big. This is only possible because of the automatic garbage collection done on forwarding nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11178 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-08Remove another unneeded call.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11177 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28In the TD pass, iterate over globals directly instead of through the whole ↵Chris Lattner
scalar map. This saves 5s in the TD pass, from 22->17s on perlbmk git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10998 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-28In the TD pass, don't iterate over the scalar map to find the globals, ↵Chris Lattner
iterate over the globals directly. This doesn't save any substantial time, however, because the globals graph only contains globals! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10997 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-27Rewrite to use the reachability cloner interface. Also, make this much moreChris Lattner
efficient in the case where a function calls into the same graph multiple times (ie, it either contains multiple calls to the same function, or multiple calls to functions in the same SCC graph) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10986 91177308-0d34-0410-b5e6-96231b3b80d8
2004-01-22Eliminated the CompletedNodes argument to the cloneReachable* methods. ThisChris Lattner
map was only used to implement a marginal GlobalsGraph optimization, and it actually slows the analysis down (due to the overhead of keeping it), so just eliminate it entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10955 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-12Fine-grainify namespaces for this libraryChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9948 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-11Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
2003-11-08This doesn't use DSCallSiteIteratorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9809 91177308-0d34-0410-b5e6-96231b3b80d8
2003-10-20Added LLVM project notice to the top of every C++ source file.John Criswell
Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20Functions reachable from the arguments of unresolvable call nodes shouldChris Lattner
not have their arguments marked complete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8639 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20Do not mark incoming arguments to functions complete if the function is ↵Chris Lattner
pointed to by a global in the globals graph git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8637 91177308-0d34-0410-b5e6-96231b3b80d8
2003-09-20Switch from using CallInst's to represent call sites to using the LLVMChris Lattner
CallSite class. Now we can represent function calls by invoke instructions too! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8629 91177308-0d34-0410-b5e6-96231b3b80d8
2003-08-01DEBUG got moved to Support/Debug.hChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7492 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-16(1) Rematerialize nodes from the globals graph into the current graphVikram S. Adve
after all callers are inlined into the current graph. (2) Optimize the way a graph is inlined into its callees in the TD phase: (a) Use DSGraph::cloneReachableSubgraph to clone only a subgraph at each call site, for faster inlining. (b) Clone separately for the same callee at different call sites, since only the reachable subgraph is being cloned, not the entire caller graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7188 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02Remove space at end of lineChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7084 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02Fix how we are handling unreachable functions. This DRAMATICALLY improves ↵Chris Lattner
efficiency git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7082 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02Try using trivially dead deletionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7075 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-02Complete rewrite of td passChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7064 91177308-0d34-0410-b5e6-96231b3b80d8
2003-07-01Rework TD pass to work with the precise call graph constructed by the BU phaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7031 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30Remove dead methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6999 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30Do not multiply delete graphs if functions are sharing graphsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6997 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-30Revamp DSGraphs so that they can support multiple functions in the sameChris Lattner
DSGraph at one time git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6994 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-29Abstract out the predicate which decides whether a function gets completeChris Lattner
arguments or not... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6987 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-28Propagate globals graph from the local to bu to td globals graphs. ThisChris Lattner
fixes bug: DSGraph/buglobals.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6947 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-22Remove support for the MultiObject flag, which was fundamentally brokenChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6840 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-11Implement a "union-findy" version of DS-Analysis, which eliminates theChris Lattner
Referrers list on DSNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5536 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10Rearrange codeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5527 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-09Fix major bugs in incompleteness marking that were pessimizing resultsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5515 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-08Fix a bug where we would mark the callees arguments incomplete if the caller ↵Chris Lattner
was external. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5510 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-05Implement optimization for direct function call case. This dramaticallyChris Lattner
reduces the number of function nodes created and speeds up analysis by about 10% overall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5495 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-04Make the TD pass not include all of the call nodes from the local pass,Chris Lattner
eliminating incomplete markers from them git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5490 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03Hack to work around deficiency in pass infrastructureChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5485 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-01Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner
This change provides a small (3%) but consistent speedup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5460 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-23* Eliminate boolean arguments in favor of using enumsChris Lattner
* T-D pass now eliminates unreachable globals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5419 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-27Fix logical error in TD pass: we should clear Mod/Ref bits of each callerVikram S. Adve
before inlining their graphs into a function. To support this, added flags to CloneFlags to strip/keep Mod/Ref bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4836 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-11Handle a mismatch between # function args and call site argsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4696 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09eliminate the ability to remove global nodes from deadNodeElminate... for now.Chris Lattner
This slows stuff down a bit, but it should get much better before it gets any worse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4666 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09Add globals graphs to all three passesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4663 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09Clean up DSGraph::removeDeadNodes interfaceChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4660 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-09Make removeTriviallyDeadNodes a private interface of DSGraphChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4659 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08Reenable 'quick exit' caseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4638 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08Reimplement TD pass completely it now worksChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4635 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08Use DSNodeHandleMap instead to be safeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4622 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-08Add flushChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4619 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-07Instead of using a bool that constant has to be explained, use a selfChris Lattner
explanitory enum instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4600 91177308-0d34-0410-b5e6-96231b3b80d8