summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* fix some VC compilation problems, thanks to Jeff C for pointing this out!Chris Lattner2005-04-021-4/+3
| | | | llvm-svn: 21044
* EquivClassGraphs is now in DataStructure.hChris Lattner2005-04-022-3/+1
| | | | llvm-svn: 21042
* use a callee_iterator typedef.Chris Lattner2005-04-023-9/+7
| | | | llvm-svn: 21038
* Change the ActualCallees callgraph from hash_multimap<Instruction,Function>Chris Lattner2005-04-025-78/+40
| | | | | | | | | to std::set<std::pair<Inst,Func>> to avoid duplicate entries. This speeds up the CompleteBU pass from 1.99s to .15s on povray and the eqgraph passes from 1.5s to .16s on the same. llvm-svn: 21031
* import all of the rest of the stubs that dsa uses for direct comparisonChris Lattner2005-03-291-11/+43
| | | | llvm-svn: 20932
* learn about some more functions.Chris Lattner2005-03-291-4/+7
| | | | llvm-svn: 20929
* Fix a problem where we not marking incoming arguments to functions withChris Lattner2005-03-292-5/+14
| | | | | | external linkage as incomplete. llvm-svn: 20927
* there is no point comparing against null pointer.Chris Lattner2005-03-291-2/+3
| | | | llvm-svn: 20925
* Fix a major problem with global variable initializers. This could causeChris Lattner2005-03-291-1/+2
| | | | | | | us to have stuff pointing to the null pointer, which makes no sense (the null ptr is an ssa value, not the null object) llvm-svn: 20922
* add some more functions, ignore setcc for constraints!Chris Lattner2005-03-291-4/+9
| | | | llvm-svn: 20917
* Handle "known" external calls context sensitively, add support for reallocChris Lattner2005-03-291-17/+29
| | | | | | | | and a couple of other functions that are important. Handle aggregate undef values for gv initializers llvm-svn: 20914
* Teach andersens that non-escaping memory cannot be mod/ref'd by external fn ↵Chris Lattner2005-03-281-2/+40
| | | | | | calls. llvm-svn: 20891
* Fix grammarMisha Brukman2005-03-281-1/+1
| | | | llvm-svn: 20890
* Make anders-aa much more precise by not being completely pessimistic aboutChris Lattner2005-03-281-1/+39
| | | | | | external functions. Teach it about a few important ones. llvm-svn: 20889
* wrap some long linesChris Lattner2005-03-271-5/+10
| | | | llvm-svn: 20884
* remove ...Chris Lattner2005-03-271-2/+2
| | | | llvm-svn: 20883
* speed up steens by using spliceFrom, improve its precision by realizing thatChris Lattner2005-03-271-5/+10
| | | | | | an incomplete node cannot alias a complete node. llvm-svn: 20882
* teach andersens about undefChris Lattner2005-03-271-1/+1
| | | | llvm-svn: 20881
* Don't give up completely, maybe other AA can say something about this.Chris Lattner2005-03-271-1/+2
| | | | llvm-svn: 20873
* Factor out percentage printing into its own function. Make two changes toChris Lattner2005-03-261-14/+19
| | | | | | | | the function: print more precision XX.X% instead of XX%, and cast to ULL before scaling by 100/1000 to avoid wrap around for large numbers of queries (such as occur for 253.perlbmk and 176.gcc) llvm-svn: 20872
* 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
OpenPOWER on IntegriCloud