summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Enhance the TD pass to build composite graphs when we have indirect callChris Lattner2005-03-211-17/+108
| | | | | | | | | | sites that target multiple callees. If we have a function table, for example, with N callees, and M callers call through it, we used to have to perform O(M*N) graph inlinings. Now we perform O(M+N) inlinings. This speeds up the td pass on perlbmk from 36.26s to 25.75s. llvm-svn: 20743
* make this const correctChris Lattner2005-03-211-2/+2
| | | | llvm-svn: 20741
* Fix a major problem where we didn't add call graph edges for call sites withChris Lattner2005-03-211-6/+10
| | | | | | more than 1 callee. This fixes Analysis/DSGraph/FunctionPointerTable-const.ll llvm-svn: 20740
* Ugh, for some reason, I can't call this unless the reference is const!?!?!?Chris Lattner2005-03-211-2/+2
| | | | llvm-svn: 20732
* The reachability cloner should add arguments to merged calls when the RHS ofChris Lattner2005-03-211-1/+4
| | | | | | the merge has more operands than the LHS. llvm-svn: 20731
* 'note to self'Chris Lattner2005-03-211-2/+5
| | | | llvm-svn: 20727
* Change the way that the TD pass inlines graphs. Instead of inlining eachChris Lattner2005-03-211-72/+87
| | | | | | | | | | | | | | | | | | | | graph into all of the functions it calls when we visit a graph, change it so that the graph visitor inlines all of the callers of a graph into the current graph when it visits it. While we're at it, inline global information from the GG instead of from each of the callers. The GG contains a superset of the info that the callers do anyway, and this way we only need to do it one time (not one for each caller). This speeds up the TD pass substantially on several programs, and there is still room for improvement. For example, the TD pass used to take 147s on perlbmk, it now takes 36s. On povray, we went from about 5s to 1.97s. 134.perl is down from ~1s for Loc+BU+TD to .6s. The TD pass needs a lot of improvement though, which will occur with later patches. llvm-svn: 20723
* Don't strip modref bits when inlining down the call graph. This fixesChris Lattner2005-03-201-1/+1
| | | | | | the DSGraph/2003-06-30-TopDownResolve.ll regression from last night. llvm-svn: 20717
* Remove the ability to keep track of inlined globals, which is always dead.Chris Lattner2005-03-201-36/+1
| | | | llvm-svn: 20716
* This call is always a noop, remove it.Chris Lattner2005-03-201-9/+0
| | | | llvm-svn: 20714
* remove some pointless assertsChris Lattner2005-03-203-3/+0
| | | | llvm-svn: 20713
* -steens doesn't use the inlined globals facility.Chris Lattner2005-03-201-2/+1
| | | | llvm-svn: 20712
* Build EC's for globals twice. The first is after constructing the initialChris Lattner2005-03-201-23/+99
| | | | | | | | | Globals Graph for the local pass, the second is after all of the locals graphs have been constructed. This allows for many additional global EC's to be recognized that weren't before. This speeds up analysis of programs like 177.mesa, where it changes DSA from taking 0.712s to 0.4018s. llvm-svn: 20711
* Add a new DSNode::removeGlobal method.Chris Lattner2005-03-201-0/+9
| | | | llvm-svn: 20710
* Transform BU pass to not use the horrible DSCallSiteIterator class.Chris Lattner2005-03-202-176/+54
| | | | llvm-svn: 20708
* Implement new methods for dealing with DSNode global lists, rename uses ofChris Lattner2005-03-201-16/+56
| | | | | | old methods. llvm-svn: 20707
* use simpler methods.Chris Lattner2005-03-201-4/+3
| | | | llvm-svn: 20706
* method was renamed.Chris Lattner2005-03-201-2/+3
| | | | llvm-svn: 20705
* print out equiv class info.Chris Lattner2005-03-201-2/+16
| | | | llvm-svn: 20704
* some methods got renamedChris Lattner2005-03-201-2/+2
| | | | llvm-svn: 20703
* Make use of simpler DSNode methods.Chris Lattner2005-03-202-14/+8
| | | | llvm-svn: 20702
OpenPOWER on IntegriCloud