summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Remove use of bind_obj, deleter, and finegrainify namespacification.Chris Lattner2005-02-221-18/+15
| | | | llvm-svn: 20277
* Scary typo that fixes ↵Chris Lattner2005-02-171-1/+1
| | | | | | | | Regression/Transforms/IndVarsSimplify/2005-02-17-TruncateExprCrash.ll and PR515. llvm-svn: 20224
* Add a sanity check.Chris Lattner2005-02-151-0/+1
| | | | llvm-svn: 20195
* Add a new method to make it easy to update graphs.Chris Lattner2005-02-151-1/+23
| | | | llvm-svn: 20194
* Correct the recursive PHI node handling routines in a way that CANNOT induceChris Lattner2005-02-131-27/+83
| | | | | | | | | | | | | | | infinite loops (using the new replaceSymbolicValuesWithConcrete method). This patch reverts this patch: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050131/023830.html ... which was an attempted fix for this problem. Unfortunately, that patch caused test/Regression/Transforms/IndVarsSimplify/exit_value_tests.llx to fail and slightly castrated the entire analysis. This patch fixes it right. This patch is dedicated to jeffc, for making me deal with this. :) llvm-svn: 20146
* Use new edge iterators to simplify some code.Chris Lattner2005-02-091-7/+7
| | | | llvm-svn: 20086
* IndCallGraphMap is now a pointer to a new'd map.Chris Lattner2005-02-071-3/+6
| | | | llvm-svn: 20065
* If we have an indirect call site that calls N functions, inline the N functionsChris Lattner2005-02-041-57/+98
| | | | | | | | | | | | into a temporary graph, remember it for later, then inline the tmp graph into the call site. In the case where there are other call sites to the same set of functions, this permits us to just inline the temporary graph instead of all of the callees. This turns N*M inlining situations into an N+M inlining situation. llvm-svn: 20036
* Split mergeInGraph into two methods.Chris Lattner2005-02-041-29/+28
| | | | llvm-svn: 20035
* Fix the Regression/Transforms/DSAnalysis/recursion.ll regression.Chris Lattner2005-02-041-4/+3
| | | | llvm-svn: 20031
* Refactor getFunctionArgumentsForCall out of mergeInGraph.Chris Lattner2005-02-031-29/+41
| | | | llvm-svn: 20018
* Eliminate some duplicated debug codeChris Lattner2005-02-011-21/+0
| | | | llvm-svn: 19980
* Eliminate self-recursion as a special case.Chris Lattner2005-02-011-58/+39
| | | | llvm-svn: 19979
* Eliminate use of DSCallSiteIterator in key loop. This is a half step toChris Lattner2005-02-011-62/+120
| | | | | | a tasty speedup. llvm-svn: 19978
* Signficantly speed up printing by not emitting the same file twice withChris Lattner2005-02-011-3/+9
| | | | | | different names. Large SCC's tend to be big, so this saves a lot of time. llvm-svn: 19970
* Do not revisit nodes in the SCC traversal. This speeds up the BU pass a bit.Chris Lattner2005-02-011-7/+29
| | | | llvm-svn: 19968
* Fix a problem where we could infinitely recurse on phi nodes.Chris Lattner2005-02-011-1/+1
| | | | llvm-svn: 19955
* Rename variables to work with VC++'s hokey scoping rules.Chris Lattner2005-01-312-9/+10
| | | | llvm-svn: 19942
* Fix some scary bugs that VC++ detected.Chris Lattner2005-01-312-2/+2
| | | | llvm-svn: 19941
* * Make some methods more const correct.Chris Lattner2005-01-309-219/+244
| | | | | | | | | | | | | | | | * 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. llvm-svn: 19939
* Due to previous simplifications, we can simplify the data structures beingChris Lattner2005-01-291-35/+36
| | | | | | used here. llvm-svn: 19913
* Properly handle volatile.Chris Lattner2005-01-291-9/+11
| | | | llvm-svn: 19912
* Remove some useless map operations. Loads/stores that are in the sameChris Lattner2005-01-291-10/+0
| | | | | | BB as the load are not included in the Cand* sets at all. llvm-svn: 19911
* Before doing expensive global analysis, check to make sure the pointer isChris Lattner2005-01-291-46/+50
| | | | | | | not invalidated on entry and on exit of the block. This fixes some N^2 behavior in common cases, and speeds up gcc another 5% to 22.35s. llvm-svn: 19910
* Minor simplification/speedup. Replaces a set lookup with a pointer comparison.Chris Lattner2005-01-291-4/+3
| | | | | | This speeds up 176.gcc from 25.73s to 23.48s, which is 9.5% llvm-svn: 19907
* Eliminate generality that is not buying us anything. In particular, thisChris Lattner2005-01-291-32/+13
| | | | | | | | | | | | | | | | | | | will cause us to miss cases where the input pointer to a load could be value numbered to another load. Something like this: %X = load int* %P1 %Y = load int* %P2 Those are obviously the same if P1/P2 are the same. The code this patch removes attempts to handle that. However, since GCSE iterates, this doesn't actually buy us anything: GCSE will first replace P1 or P2 with the other one, then the load can be value numbered as equal. Removing this code speeds up gcse a lot. On 176.gcc in debug mode, this speeds up gcse from 29.08s -> 25.73s, a 13% savings. llvm-svn: 19906
* If we see:Chris Lattner2005-01-291-4/+3
| | | | | | | | | %A = alloca int %V = load int* %A value number %V to undef, not 0. llvm-svn: 19905
* Remove this code as it is currently completely broken and unmaintained.Chris Lattner2005-01-289-2681/+0
| | | | | | | | | | If needed, this can be resurrected from CVS. Note that several of the interfaces (e.g. the IPModRef ones) are supersumed by generic AliasAnalysis interfaces that have been written since this code was developed (and they are not DSA specific). llvm-svn: 19864
* Make -ds-aa more useful, allowing it to be updated as xforms hack on the ↵Chris Lattner2005-01-243-0/+119
| | | | | | program. llvm-svn: 19818
* Silence VC++ warnings.Chris Lattner2005-01-124-17/+22
| | | | llvm-svn: 19506
* Apply feed back from Chris:Jeff Cohen2005-01-101-1/+1
| | | | | | | 1. Rename createLoaderPass to CreateProfileLoaderPass 2. Opt shouldn't use the pass registered in CodeGen. llvm-svn: 19431
* Add last four createXxxPass functionsJeff Cohen2005-01-094-0/+12
| | | | llvm-svn: 19424
* Get lib/Analysis/DataStructure to compile with VC++Jeff Cohen2005-01-091-1/+2
| | | | llvm-svn: 19412
* Add even more missing createXxxPass functions.Jeff Cohen2005-01-087-0/+25
| | | | llvm-svn: 19402
* Wrap at 80 colsMisha Brukman2004-12-231-1/+2
| | | | llvm-svn: 19121
* Try to speed up gccld hot spot in BasicVN::getEqualNumberNodes by makingReid Spencer2004-12-231-3/+2
| | | | | | | | | a function call at the core of the loop inline and removing unused stack variables from an often called function. This doesn't improve things much, the real saving will be by reducing the number of calls to this function (100K+ when linking kimwitu++). llvm-svn: 19119
* Actually overload the virtual method. This fixesChris Lattner2004-12-171-1/+2
| | | | | | | Regression/Analysis/GlobalsModRef/purecse.ll. Isn't this what the -Woverload-whatever flag would warn about :) llvm-svn: 19018
* Eliminate a virtual method callChris Lattner2004-12-151-2/+5
| | | | llvm-svn: 18964
* Fix a bug in -no-aa that caused two DSGraph tests to XPASS.Chris Lattner2004-12-151-1/+2
| | | | llvm-svn: 18962
* Adjust to new alias analysis interfacesChris Lattner2004-12-154-57/+48
| | | | llvm-svn: 18957
* Add testcase and fix for yet another case where we query the size anAlkis Evlogimenos2004-12-081-9/+11
| | | | | | abstract type. llvm-svn: 18678
* Add testcase and fix for another case where we query the size anAlkis Evlogimenos2004-12-081-7/+12
| | | | | | abstract type. llvm-svn: 18676
* Move method out of line for better ICC supportChris Lattner2004-12-081-0/+11
| | | | | | Add some ifdefs for some stuff I like to be able to toggle easily llvm-svn: 18665
* Properly extern this.Chris Lattner2004-12-081-1/+3
| | | | llvm-svn: 18664
* Work correctly with ICC, Patch contributed by Bjørn WennbergChris Lattner2004-12-081-8/+16
| | | | llvm-svn: 18630
* For PR387:\Reid Spencer2004-12-074-0/+12
| | | | | | Add getModRefInfo method to avoid overloaded virtuals llvm-svn: 18601
* For PR387:\Reid Spencer2004-12-0713-15/+15
| | | | | | | Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual llvm-svn: 18589
* This patch prevents an infinite recursion while compiling 103.su2cor.Chris Lattner2004-12-041-3/+3
| | | | | | | All SPEC CFP 95 programs now work, though the JIT isn't loading -lf2c right so they aren't testing correctly. llvm-svn: 18499
* Fix DeadStoreElimination/2004-11-28-LiveStoreDeleted.llChris Lattner2004-11-281-3/+3
| | | | llvm-svn: 18308
* When merging to alias sets, if they are both must alias, the result is notChris Lattner2004-11-271-8/+22
| | | | | | | a must alias set unless all of the pointers in the resultant set are must aliased together. llvm-svn: 18275
OpenPOWER on IntegriCloud