aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/DataStructure/CompleteBottomUp.cpp
Commit message (Collapse)AuthorAgeFilesLines
* don't bother |'ing in 0'sChris Lattner2005-03-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20815 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that the dead ctor is gone, nothing uses the old node mapping exported byChris Lattner2005-03-221-4/+1
| | | | | | | cloneInto: make it an internally used mapping. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20760 91177308-0d34-0410-b5e6-96231b3b80d8
* now that the second argument is always this->ReturnNodes, don't bother ↵Chris Lattner2005-03-221-2/+4
| | | | | | passing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20758 91177308-0d34-0410-b5e6-96231b3b80d8
* remove the second argument to cloneIntoChris Lattner2005-03-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20754 91177308-0d34-0410-b5e6-96231b3b80d8
* remove some pointless assertsChris Lattner2005-03-201-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20713 91177308-0d34-0410-b5e6-96231b3b80d8
* use simpler methods.Chris Lattner2005-03-201-4/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20706 91177308-0d34-0410-b5e6-96231b3b80d8
* Create an equivalence class of global variables that DSA will never be ableChris Lattner2005-03-191-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | to tell apart anyway, and only track the leader for of these equivalence classes in our graphs. This dramatically reduces the number of GlobalValue*'s that appear in scalar maps, which A) reduces memory usage, by eliminating many many scalarmap entries and B) reduces time for operations that need to execute an operation for each global in the scalar map. As an example, this reduces the memory used to analyze 176.gcc from 1GB to 511MB, which (while it's still way too much) is better because it doesn't hit swap anymore. On eon, this shrinks the local graphs from 14MB to 6.8MB, shrinks the bu+td graphs of povray from 50M to 40M, shrinks the TD graphs of 130.li from 8.8M to 3.6M, etc. This change also speeds up DSA on large programs where this makes a big difference. For example, 130.li goes from 1.17s -> 0.56s, 134.perl goes from 2.14 -> 0.93s, povray goes from 15.63s->7.99s (!!!). This also apparently either fixes the problem that caused DSA to crash on perlbmk and gcc, or it hides it, because DSA now works on these. These both take entirely too much time in the TD pass (147s for perl, 538s for gcc, vs 7.67/5.9s in the bu pass for either one), but this is a known problem that I'll deal with later. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20696 91177308-0d34-0410-b5e6-96231b3b80d8
* do not bother inlining nullary functions without return values. The onlyChris Lattner2005-03-181-1/+5
| | | | | | | | | | effect these calls can have is due to global variables, and these passes all use the globals graph to capture their effect anyway. This speeds up the BU pass very slightly on perlbmk, reducing the number of dsnodes allocated from 98913 to 96423. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20676 91177308-0d34-0410-b5e6-96231b3b80d8
* fix crashes when we only have a prototype for main.Chris Lattner2005-03-151-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20627 91177308-0d34-0410-b5e6-96231b3b80d8
* Start using retnodes_* for iteration.Chris Lattner2005-03-151-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20618 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to remove incomplete markers before we add to them! :)Chris Lattner2005-03-131-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20585 91177308-0d34-0410-b5e6-96231b3b80d8
* After finishing BU analysis, move all global variables from the globalsChris Lattner2005-03-131-3/+26
| | | | | | | graph into main and mark them complete. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20583 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename variables to work with VC++'s hokey scoping rules.Chris Lattner2005-01-311-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19942 91177308-0d34-0410-b5e6-96231b3b80d8
* * Make some methods more const correct.Chris Lattner2005-01-301-11/+15
| | | | | | | | | | | | | | | | | * Change the FunctionCalls and AuxFunctionCalls vectors into std::lists. This makes many operations on these lists much more natural, and avoids *exteremely* expensive copying of DSCallSites (e.g. moving nodes around between lists, erasing a node from not the end of the vector, etc). With a profile build of analyze, this speeds up BU DS from 25.14s to 12.59s on 176.gcc. I expect that it would help TD even more, but I don't have data for it. This effectively eliminates removeIdenticalCalls and children from the profile, going from 6.53 to 0.27s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19939 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a nasty dangling pointer problem, due to a free'd pointer being left inChris Lattner2004-10-071-0/+3
| | | | | | | | a map. This caused problems if a later object happened to be allocated at the free'd object's address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16813 91177308-0d34-0410-b5e6-96231b3b80d8
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-201-1/+1
| | | | | | | | 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
* Changes For Bug 352Reid Spencer2004-09-011-4/+4
| | | | | | | | | 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
* Move all of the DSA headers into the Analysis/DataStructure subdir.Chris Lattner2004-07-071-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14663 91177308-0d34-0410-b5e6-96231b3b80d8
* Inline both direct and indirect callees in the CBU phase becauseVikram S. Adve2004-05-231-34/+34
| | | | | | | a direct callee may have indirect callees and so may have changed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13649 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a minor bugChris Lattner2004-03-051-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12169 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in a previous checkin that broke 175.vprChris Lattner2004-03-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12128 91177308-0d34-0410-b5e6-96231b3b80d8
* Speed up the cbu pass from taking somewhere near the age of the universe to ↵Chris Lattner2004-03-041-6/+28
| | | | | | about 90s on povray git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12123 91177308-0d34-0410-b5e6-96231b3b80d8
* There is no need to merge the globals graph into the function graphs at theChris Lattner2004-02-201-5/+2
| | | | | | | | | end of the BU and CBU passes. The globals will be marked incomplete, so it doesn't matter if they are missing some info, and merging isn't guaranteed to bring everything in anyway! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11684 91177308-0d34-0410-b5e6-96231b3b80d8
* Add one that I missedChris Lattner2004-02-081-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11179 91177308-0d34-0410-b5e6-96231b3b80d8
* Get clone flags right, so we don't build InlinedGlobals only to clear themChris Lattner2004-01-271-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10984 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for implementing clonePartiallyInto in terms of ↵Chris Lattner2004-01-231-1/+2
| | | | | | cloneReachableSubgraph, though this support is currently disabled. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10970 91177308-0d34-0410-b5e6-96231b3b80d8
* Trying to get the dsgraph for an external function is bad for DSA's healthChris Lattner2003-11-131-11/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9979 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the CompleteBU passChris Lattner2003-11-131-7/+137
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9964 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an initial version of the CompleteBUDataStructures class, which is currentlyChris Lattner2003-11-131-0/+75
identical to the BU pass, but has an accurate call graph git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9956 91177308-0d34-0410-b5e6-96231b3b80d8