summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Cache mapping information for a call site after computing it for a mod/refChris Lattner2005-03-261-27/+81
| | | | | | | | | query. If the next mod/ref query happens to be for the same call site (which is extremely likely), use the cache instead of recomputing the callee/caller mapping. This makes -aa-eval ***MUCH*** faster with ds-aa llvm-svn: 20871
* Remove more long dead code: dsa doesn't provide must alias infoChris Lattner2005-03-261-32/+0
| | | | llvm-svn: 20870
* remove some unsafe code that has long been deadChris Lattner2005-03-261-24/+0
| | | | llvm-svn: 20869
* slightly improve mod/ref for DSAA by checking the globals graph for fallbackChris Lattner2005-03-261-0/+12
| | | | llvm-svn: 20868
* Teach steens-aa two things about mod/ref information:Chris Lattner2005-03-261-3/+33
| | | | | | | | | 1. If memory never escapes the program, it cannot be mod/ref'd by external functions. 2. If memory is global never mod/ref'd in the program, it cannot be mod/ref'd by any call. llvm-svn: 20867
* Interchange this loop so that we test all pointers against one call siteChris Lattner2005-03-261-10/+11
| | | | | | | before moving on to the next call site. This will be a more efficient way to compute the mod/ref set for AA implementations like DSA. llvm-svn: 20866
* no really, don't double count these nodes either!Chris Lattner2005-03-251-14/+19
| | | | llvm-svn: 20837
* Don't count all of the nodes in the SCC once for each function in the SCC.Chris Lattner2005-03-251-4/+9
| | | | llvm-svn: 20836
* Grow the EQ classes for globals at the end of the BU pass. This shrinksChris Lattner2005-03-251-0/+93
| | | | | | memory usage in the TD pass for 254.gap from 31.3MB to 3.9MB. llvm-svn: 20834
* Treat free operations as volatile, since they cannot be moved. This fixesChris Lattner2005-03-251-0/+3
| | | | | | Transforms/LICM/2005-03-24-LICM-Aggregate-Crash.ll llvm-svn: 20830
* remove a debugging timer.Chris Lattner2005-03-251-4/+1
| | | | llvm-svn: 20827
* Two changes here:Chris Lattner2005-03-251-47/+41
| | | | | | | | | | | 1. Instead of copying Local graphs to the BU graphs to start with, use spliceFrom to do the job (which is constant time in this case). On 176.gcc, this chops off .17s from the bu pass. 2. When building SCC graphs, simplify the logic and use spliceFrom to do the heavy lifting, instead of cloneInto/delete. This slices another .14s off 176.gcc. llvm-svn: 20826
* Make the spliceFrom case where one graph is completely empty be constant time.Chris Lattner2005-03-251-2/+6
| | | | llvm-svn: 20825
* add a new DSGraph::spliceFrom method, which violently takes the content ofChris Lattner2005-03-241-0/+41
| | | | | | one graph and plops it into another, without breaking a sweat. llvm-svn: 20824
* This replaces the correct but slow code with a more aggressive scc-finderChris Lattner2005-03-241-54/+97
| | | | | | | | based approach to find globals and call sites that need to be copied. This speeds up the BU pass on 176.gcc from 22s back up to 2.3s. Not as good as 1.5s, but at least it's correct :) llvm-svn: 20820
* only look at successors of globals. This gets us down to "only" 22s in theChris Lattner2005-03-241-4/+9
| | | | | | bu pass for 176.gcc llvm-svn: 20818
* Unfortunately, a previous patch was not safe. Revert it, reimplementChris Lattner2005-03-241-40/+93
| | | | | | | something correct. Unfortunately this takes 176.gcc's BU phase back up to 29s from 1.5. This fixes DSGraph/2005-03-24-Global-Arg-Alias.ll llvm-svn: 20817
* don't bother |'ing in 0'sChris Lattner2005-03-243-4/+2
| | | | llvm-svn: 20815
* be more aggressive about incompleteness markingChris Lattner2005-03-241-3/+2
| | | | llvm-svn: 20814
* Fix a crash while promoting a value out of a loop from a global variableChris Lattner2005-03-242-2/+20
| | | | | | when using ds-aa llvm-svn: 20802
* teach ds-aa about mod/ref for external function calls.Chris Lattner2005-03-241-1/+25
| | | | llvm-svn: 20801
* Simplify dead code into a fixme :)Chris Lattner2005-03-241-13/+4
| | | | llvm-svn: 20800
* fix a compiler crash in runtime/libprofileChris Lattner2005-03-241-1/+1
| | | | llvm-svn: 20799
* wrap a long lineChris Lattner2005-03-231-1/+2
| | | | llvm-svn: 20797
* If we are calling an external function, chain to another AA to potentiallyChris Lattner2005-03-231-8/+20
| | | | | | | | decide, don't just immediately give up. This implements GlobalsModRef/chaining-analysis.ll llvm-svn: 20796
* Make this more efficient by only making one virtual method call.Chris Lattner2005-03-231-4/+6
| | | | llvm-svn: 20793
* Make this a bit more aggressiveChris Lattner2005-03-231-1/+1
| | | | llvm-svn: 20792
* a hack to allow count-aa to work with ds-aa :(Chris Lattner2005-03-231-1/+1
| | | | llvm-svn: 20791
* Add two options to allow -count-aa to print queries either (1) all queries,Chris Lattner2005-03-231-25/+59
| | | | | | or (2) only queries that are not successful (e.g. return may alias) llvm-svn: 20790
* turn a dead conditional into an assert.Chris Lattner2005-03-231-9/+5
| | | | llvm-svn: 20787
* Totally gut mergeInGraph. There is absolutely no reason to be mergingChris Lattner2005-03-231-73/+47
| | | | | | | | | | | global roots in from callees to callers. The BU graphs do not have accurate globals information and all of the clients know it. Instead, just make sure the GG is up-to-date, and they will be perfectly satiated. This speeds up the BU pass on 176.gcc from 5.5s to 1.5s, and Loc+BU+TD from 7s to 2.7s. llvm-svn: 20786
* wrap a long lineChris Lattner2005-03-231-1/+2
| | | | llvm-svn: 20785
* Make -steens-aa more conservative (aka correct) by making sure to obeyChris Lattner2005-03-231-8/+18
| | | | | | | | | incompleteness flags. Make it more aggressive by taking field sensitive information into account. llvm-svn: 20781
* implement Analysis/DSGraph/field-sensitive.llChris Lattner2005-03-231-3/+2
| | | | llvm-svn: 20779
* Several changes here:Chris Lattner2005-03-221-19/+42
| | | | | | | | | | | | 1. Increase max node size from 64->256 to avoid collapsing an important structure in 181.mcf 2. If we have multiple calls to an indirect call node with an indirect callee, fold these call nodes together, to avoid DSA turning apoc into a flaming fireball of death when analyzing 176.gcc. With this change, 176.gcc now takes ~7s to analyze for loc+bu+td, with 5.7s of that in the BU pass. llvm-svn: 20775
* Mark external globals incomplete in the BU Globals graph, fixingChris Lattner2005-03-221-0/+3
| | | | | | Analysis/DSGraph/2005-03-22-IncompleteGlobal.ll llvm-svn: 20773
* Directly count the number of memory instructions.Chris Lattner2005-03-221-4/+9
| | | | llvm-svn: 20766
* Remove an iteration pass over the entire scalarmap for each function createdChris Lattner2005-03-221-15/+8
| | | | | | | by not allowing integer constants to get into the scalar map in the first place. llvm-svn: 20764
* When making a clone of a DSGraph from the BU pass, make sure to remember thatChris Lattner2005-03-221-1/+8
| | | | | | | | | | this clone is supposed to be used for *ALL* of the functions in the SCC. This fixes the memory explosion problem the TD pass was having, reducing the memory growth from 24MB -> 3.5MB on povray and 270MB ->8.3MB on perlbmk! This obviously also speeds up the TD pass *a lot*. llvm-svn: 20763
* Don't use operator[], use the new method instead, which is faster. This speedsChris Lattner2005-03-221-1/+1
| | | | | | | up the TD pass about 30% for povray and perlbmk. It's still not clear why copying a 5MB set of graphs turns into a 25MB set of graphs though :( llvm-svn: 20762
* Now that the dead ctor is gone, nothing uses the old node mapping exported byChris Lattner2005-03-225-25/+12
| | | | | | cloneInto: make it an internally used mapping. llvm-svn: 20760
* remove a dead ctorChris Lattner2005-03-221-7/+0
| | | | llvm-svn: 20759
* now that the second argument is always this->ReturnNodes, don't bother ↵Chris Lattner2005-03-225-16/+18
| | | | | | passing it. llvm-svn: 20758
* instead of using a local RetValMap, just use the graph we are cloning intoChris Lattner2005-03-221-8/+5
| | | | | | for the return node map. llvm-svn: 20757
* now that the valuemapping is always the local scalar map, we can eliminateChris Lattner2005-03-221-4/+0
| | | | | | this identity merge. llvm-svn: 20755
* remove the second argument to cloneIntoChris Lattner2005-03-225-19/+14
| | | | llvm-svn: 20754
* add some timers, don't clone aux nodesChris Lattner2005-03-221-2/+29
| | | | llvm-svn: 20752
* move this out of lineChris Lattner2005-03-221-0/+28
| | | | llvm-svn: 20751
* don't generate temporary scalarmaps.Chris Lattner2005-03-221-17/+5
| | | | llvm-svn: 20749
* allow passing clone flags down to cloneIntoChris Lattner2005-03-211-2/+3
| | | | llvm-svn: 20748
OpenPOWER on IntegriCloud