aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/DataStructure
Commit message (Collapse)AuthorAgeFilesLines
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-2014-0/+98
| | | | | | | Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix spelling.Misha Brukman2003-10-101-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9027 91177308-0d34-0410-b5e6-96231b3b80d8
* Use std::string::size_type for for ColonPos to stop gcc from giving a warningAlkis Evlogimenos2003-10-011-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8811 91177308-0d34-0410-b5e6-96231b3b80d8
* DOn't crash if program calls the null pointerChris Lattner2003-09-241-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8708 91177308-0d34-0410-b5e6-96231b3b80d8
* Functions reachable from the arguments of unresolvable call nodes shouldChris Lattner2003-09-202-2/+17
| | | | | | | not have their arguments marked complete git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8639 91177308-0d34-0410-b5e6-96231b3b80d8
* The Globals graph must become complete at the end of the BU phase!Chris Lattner2003-09-201-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8638 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not mark incoming arguments to functions complete if the function is ↵Chris Lattner2003-09-201-10/+30
| | | | | | 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
* Make sure to add global variable initializers to the Globals graph!Chris Lattner2003-09-201-15/+69
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8636 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't consider incomplete nodes to be typesafe!Chris Lattner2003-09-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8635 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trivially dead nodes was not removing nodes that were dead due to ↵Chris Lattner2003-09-201-0/+14
| | | | | | forwarding! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8634 91177308-0d34-0410-b5e6-96231b3b80d8
* Add special case handling for calloc and reallocChris Lattner2003-09-201-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8630 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch from using CallInst's to represent call sites to using the LLVMChris Lattner2003-09-206-50/+59
| | | | | | | | 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
* Make this work better for constants that aren't necessarily in ANY graph, ↵Chris Lattner2003-09-201-4/+15
| | | | | | such as null pointers git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8628 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep track of the number of typed/untyped memory accesses theyre are in the ↵Chris Lattner2003-09-201-30/+62
| | | | | | | | | program VS: ---------------------------------------------------------------------- git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8611 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixed spelling and grammar.Misha Brukman2003-09-114-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8478 91177308-0d34-0410-b5e6-96231b3b80d8
* Final cleanup: remove dead codeChris Lattner2003-09-011-39/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8291 91177308-0d34-0410-b5e6-96231b3b80d8
* Not only is this a lot smaller, it actually works if there is already aChris Lattner2003-09-011-5/+1
| | | | | | | function with the right name in the module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8290 91177308-0d34-0410-b5e6-96231b3b80d8
* If "These should be used only by the auto-parallelization pass", we might asChris Lattner2003-09-011-1/+31
| | | | | | | well put them INTO the auto-par pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8288 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved all of the cilkifier stuff into lib/Transforms/IPO, as it really is notChris Lattner2003-09-011-1/+1
| | | | | | | support stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8287 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanupsChris Lattner2003-09-011-13/+8
| | | | | | | Do not #include Parallelize.h, it's just a subset of Cilkifier.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8285 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename TarjanSCCIterator -> scc_iteratorChris Lattner2003-08-311-5/+4
| | | | | | | | | * Increases consistency with other iterators (e.g. df_iterator, po_iterator...) * It's shorter * We don't name classes by the implementation, we name it for the interface! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8273 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead varChris Lattner2003-08-311-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8270 91177308-0d34-0410-b5e6-96231b3b80d8
* The SCC::HasLoop method is now in the main iteratorChris Lattner2003-08-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8269 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove explicit passing of SCC's around as objects.Chris Lattner2003-08-311-6/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8267 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the getAnalysisUsage method from the header fileChris Lattner2003-08-311-2/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8264 91177308-0d34-0410-b5e6-96231b3b80d8
* The tarjan iterator now returns a reference to the current SCC, not a ↵Chris Lattner2003-08-311-1/+1
| | | | | | possibly null pointer! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8262 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor cleanupsChris Lattner2003-08-311-14/+9
| | | | | | | Iterate from tarj_begin -> tarj_end, not from tarj_begin -> NULL git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8260 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary use of NonCopyableChris Lattner2003-08-062-9/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7641 91177308-0d34-0410-b5e6-96231b3b80d8
* Add more verbose commentChris Lattner2003-08-051-10/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7610 91177308-0d34-0410-b5e6-96231b3b80d8
* Added function mergeInGlobalsGraph which merges in the entire globals graph ↵Sumant Kowshik2003-08-051-0/+29
| | | | | | with the graph of a function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7606 91177308-0d34-0410-b5e6-96231b3b80d8
* DEBUG got moved to Support/Debug.hChris Lattner2003-08-015-3/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7492 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another minor bugChris Lattner2003-07-261-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7340 91177308-0d34-0410-b5e6-96231b3b80d8
* Dont' try to parse the colonChris Lattner2003-07-251-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7323 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a more general check-flags which can be used to ensure arbitrary flags ↵Chris Lattner2003-07-251-11/+35
| | | | | | are set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7322 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comment.Vikram S. Adve2003-07-221-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7227 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in call to isUnresolvableFunc, which was breaking the build.Brian Gaeke2003-07-171-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7194 91177308-0d34-0410-b5e6-96231b3b80d8
* Rematerialize nodes from the globals graph into the current graphVikram S. Adve2003-07-161-3/+9
| | | | | | | | | | | after all callees are inlined into the current graph. NOTE: There's also a major bug fix for the BU pass in DataStructure.cpp, which ensures that resolvable indirect calls are not moved out to the globals graph, so that they are eventually inlined (if possible). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7189 91177308-0d34-0410-b5e6-96231b3b80d8
* (1) Rematerialize nodes from the globals graph into the current graphVikram S. Adve2003-07-161-57/+84
| | | | | | | | | | | | | 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
* Implement 2 important changes: (1) rematerialization from the globals graph,Vikram S. Adve2003-07-161-65/+250
| | | | | | | | | | | | | | | | | | | | | | | | and (2) faster inlining by cloning only reachable nodes. In particular: (1) Added DSGraph::cloneReachableSubgraph and DSGraph::cloneReachableNodes to clone the subgraph reachable from a set of root nodes, into the current graph, merging the global nodes into thos in the current graph. The TD pass now uses this for faster inlining, and so does the next function. (2) Added DSGraph::updateFromGlobalGraph() to rematerialize nodes from the globals graph into the current graph in both BU and TD passes. (3) `I' flags are removed from all nodes in the globals graph, because they are difficult to maintain correctly and are not needed anyway. (4) Aux. function calls are only removed to the globals graph if they will never be resovled. (This is what fixed gap.) The immediate reason is that if we took these out of a function (and moved them to the globals graph) we would need to rematerialize these nodes into the function graph for every function in the BU pass. The longer term problem is that we would need to find a way to remove them from the globals graph iff they have been resolved on all paths through the call graph. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7187 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor out the test for unresolvable external functions intoVikram S. Adve2003-07-161-14/+19
| | | | | | | | isUnresolvableFunc() (I thought I needed this externally. I don't, but it's still nicer this way.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7186 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove globals more aggressively from graphs.Chris Lattner2003-07-031-11/+32
| | | | | | | Fix a bug where we removed nodes that were marked U. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7090 91177308-0d34-0410-b5e6-96231b3b80d8
* INCLUDE_PARENT_GRAPH is required!Chris Lattner2003-07-021-21/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7088 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable incorrect mustalias codeChris Lattner2003-07-021-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7087 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove space at end of lineChris Lattner2003-07-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7084 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix how we are handling unreachable functions. This DRAMATICALLY improves ↵Chris Lattner2003-07-022-36/+38
| | | | | | efficiency git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7082 91177308-0d34-0410-b5e6-96231b3b80d8
* Keep track of how many inlinings are performedChris Lattner2003-07-021-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7076 91177308-0d34-0410-b5e6-96231b3b80d8
* Try using trivially dead deletionChris Lattner2003-07-021-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7075 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead Nodes listChris Lattner2003-07-021-6/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7065 91177308-0d34-0410-b5e6-96231b3b80d8
* Complete rewrite of td passChris Lattner2003-07-021-103/+101
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7064 91177308-0d34-0410-b5e6-96231b3b80d8
* Print collapsed to match the paperChris Lattner2003-07-021-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7063 91177308-0d34-0410-b5e6-96231b3b80d8