summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Hide this optionChris Lattner2004-08-021-1/+1
| | | | llvm-svn: 15415
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-291-1/+1
| | | | llvm-svn: 15334
* Fix #includes of i*.h => Instructions.h as per PR403.Misha Brukman2004-07-293-8/+4
| | | | llvm-svn: 15328
* These files don't need to include <iostream> since they include ↵Brian Gaeke2004-07-212-2/+0
| | | | | | "Support/Debug.h". llvm-svn: 15089
* bug 122:Reid Spencer2004-07-183-15/+10
| | | | | | | | - Replace ConstantPointerRef usage with GlobalValue usage - Minimize redundant isa<GlobalValue> usage - Correct isa<Constant> for GlobalValue subclass llvm-svn: 14942
* Be compatible with IA64Chris Lattner2004-07-161-1/+2
| | | | llvm-svn: 14864
OpenPOWER on IntegriCloud