summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure
Commit message (Collapse)AuthorAgeFilesLines
* Handle null a bit more carefully.Chris Lattner2005-02-251-1/+11
| | | | | | | | Actually teach dsa about select instructions. This doesn't affect the graph in any way other than not setting a spurious U marker on pointer nodes that are selected. llvm-svn: 20324
* This instruction:Chris Lattner2005-02-241-1/+2
| | | | | | | | | X = gep null, ... Used to not create a scalar map entry for X, which caused clients to barf. This is bad. llvm-svn: 20316
* Fix a bug introduced by revision 1.187 of this file.Chris Lattner2005-02-241-1/+2
| | | | llvm-svn: 20308
* 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
* 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
* 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
* 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
* 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
* 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
* Work correctly with ICC, Patch contributed by Bjørn WennbergChris Lattner2004-12-081-8/+16
| | | | llvm-svn: 18630
* For PR387:\Reid Spencer2004-12-071-0/+3
| | | | | | Add getModRefInfo method to avoid overloaded virtuals llvm-svn: 18601
* For PR387:\Reid Spencer2004-12-077-7/+7
| | | | | | | Make only one print method to avoid overloaded virtual warnings when \ compiled with -Woverloaded-virtual llvm-svn: 18589
* Fix a bug that was preventing povray and namd from pool allocating correctly.Chris Lattner2004-11-081-1/+1
| | | | llvm-svn: 17632
* Handle assert_fail specialChris Lattner2004-11-081-0/+7
| | | | llvm-svn: 17631
* Don't call Constant::getNullValue when the argument could be VoidTyChris Lattner2004-11-031-2/+3
| | | | llvm-svn: 17457
* Fix commentChris Lattner2004-10-311-1/+1
| | | | llvm-svn: 17377
* Improve commentChris Lattner2004-10-311-2/+4
| | | | llvm-svn: 17375
* Add more paranoid assertions :)Chris Lattner2004-10-311-0/+12
| | | | llvm-svn: 17367
* Fix some more problems where we called getOffset before getNode()Chris Lattner2004-10-301-2/+4
| | | | llvm-svn: 17358
* Fix three bugs:Chris Lattner2004-10-301-9/+12
| | | | | | | | | | | | | | | | 1. Calls to external global VARIABLES should not be treated as a call to an external function 2. Efficiently deleting an element from a vector by using std::swap with the back, then pop_back is NOT a good way to keep the vector sorted. 3. Our hope of having stuff get deleted by making them redundant just won't work. In particular, if we have three calls in sequence that should be merged: A, B, C first we unify B into A. To be sure that they appeared identical (so B would be erased) we set B = A. On the next step, we unified C into A and set C = A. Unfortunately, this is no guarantee that C = B, so we would fail to delete the dead call. Switch to a more explicit scheme. llvm-svn: 17357
* Fix more undefined behaviorChris Lattner2004-10-301-10/+13
| | | | llvm-svn: 17356
* * Add a methodChris Lattner2004-10-301-16/+28
| | | | | | | | | * change some uses of NH.getNode() in a bool context to use !NH.isNull() * Fix a bunch of places where we depended on the (undefined) order of evaluation of arguments to function calls to ensure that getNode() was called before getOffset(). In practice, this was NOT happening. llvm-svn: 17354
* Fix library name.Alkis Evlogimenos2004-10-281-1/+1
| | | | llvm-svn: 17306
* add support for UndefValueChris Lattner2004-10-261-1/+1
| | | | llvm-svn: 17260
* We won't use automakeReid Spencer2004-10-222-731/+0
| | | | llvm-svn: 17155
* Initial automake generated Makefile templateReid Spencer2004-10-181-0/+698
| | | | llvm-svn: 17136
* Add support for undefChris Lattner2004-10-161-0/+3
| | | | llvm-svn: 17055
* Update to reflect changes in Makefile rules.Reid Spencer2004-10-131-4/+2
| | | | llvm-svn: 16950
* Build both archive and relinked objectsReid Spencer2004-10-101-1/+6
| | | | llvm-svn: 16892
* Initial version of automake Makefile.am file.Reid Spencer2004-10-101-0/+30
| | | | llvm-svn: 16885
* 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. llvm-svn: 16813
* Dont' let null nodes sneak past cast instructionsChris Lattner2004-10-061-1/+4
| | | | llvm-svn: 16779
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-2013-22/+22
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Changes For Bug 352Reid Spencer2004-09-0117-41/+41
| | | | | | | | 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/. llvm-svn: 16137
OpenPOWER on IntegriCloud