summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/Steensgaard.cpp
Commit message (Collapse)AuthorAgeFilesLines
* For PR387:Reid Spencer2006-08-281-1/+8
| | | | | | | Close out this long standing bug by removing the remaining overloaded virtual functions in LLVM. The -Woverloaded-virtual option is now turned on. llvm-svn: 29934
* simplify AnalysisGroup registration, eliminating one typeid call.Chris Lattner2006-08-281-1/+1
| | | | llvm-svn: 29932
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-2/+2
| | | | llvm-svn: 29925
* Add explicit #includes of <iostream>Chris Lattner2006-01-221-0/+1
| | | | llvm-svn: 25509
* Remove trailing whitespaceMisha Brukman2005-04-211-8/+8
| | | | llvm-svn: 21416
* Change the ActualCallees callgraph from hash_multimap<Instruction,Function>Chris Lattner2005-04-021-5/+3
| | | | | | | | | 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
* Fix a problem where we not marking incoming arguments to functions withChris Lattner2005-03-291-4/+12
| | | | | | external linkage as incomplete. llvm-svn: 20927
* 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 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
* be more aggressive about incompleteness markingChris Lattner2005-03-241-3/+2
| | | | llvm-svn: 20814
* 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
* Now that the dead ctor is gone, nothing uses the old node mapping exported byChris Lattner2005-03-221-4/+2
| | | | | | cloneInto: make it an internally used mapping. llvm-svn: 20760
* now that the second argument is always this->ReturnNodes, don't bother ↵Chris Lattner2005-03-221-2/+1
| | | | | | 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
* remove the second argument to cloneIntoChris Lattner2005-03-221-2/+1
| | | | llvm-svn: 20754
* don't generate temporary scalarmaps.Chris Lattner2005-03-221-17/+5
| | | | llvm-svn: 20749
* -steens doesn't use the inlined globals facility.Chris Lattner2005-03-201-2/+1
| | | | llvm-svn: 20712
* Make use of simpler DSNode methods.Chris Lattner2005-03-201-9/+5
| | | | llvm-svn: 20702
* Create an equivalence class of global variables that DSA will never be ableChris Lattner2005-03-191-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | to tell apart anyway, and only track the leader for of these equivalence classes in our graphs. This dramatically reduces the number of GlobalValue*'s that appear in scalar maps, which A) reduces memory usage, by eliminating many many scalarmap entries and B) reduces time for operations that need to execute an operation for each global in the scalar map. As an example, this reduces the memory used to analyze 176.gcc from 1GB to 511MB, which (while it's still way too much) is better because it doesn't hit swap anymore. On eon, this shrinks the local graphs from 14MB to 6.8MB, shrinks the bu+td graphs of povray from 50M to 40M, shrinks the TD graphs of 130.li from 8.8M to 3.6M, etc. This change also speeds up DSA on large programs where this makes a big difference. For example, 130.li goes from 1.17s -> 0.56s, 134.perl goes from 2.14 -> 0.93s, povray goes from 15.63s->7.99s (!!!). This also apparently either fixes the problem that caused DSA to crash on perlbmk and gcc, or it hides it, because DSA now works on these. These both take entirely too much time in the TD pass (147s for perl, 538s for gcc, vs 7.67/5.9s in the bu pass for either one), but this is a known problem that I'll deal with later. llvm-svn: 20696
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-1/+1
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* * Make some methods more const correct.Chris Lattner2005-01-301-9/+8
| | | | | | | | | | | | | | | | * 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
* Add last four createXxxPass functionsJeff Cohen2005-01-091-0/+3
| | | | llvm-svn: 19424
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-201-3/+3
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | 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
* These files don't need to include <iostream> since they include ↵Brian Gaeke2004-07-211-1/+0
| | | | | | "Support/Debug.h". llvm-svn: 15089
* Move all of the DSA headers into the Analysis/DataStructure subdir.Chris Lattner2004-07-071-2/+2
| | | | llvm-svn: 14663
* Add #include <iostream> since Value.h does not #include it any more.Reid Spencer2004-07-041-0/+1
| | | | llvm-svn: 14622
* Update to match the autochaining interface that the AA interface usesChris Lattner2004-05-231-6/+1
| | | | llvm-svn: 13680
* Forward method request to chained aa implementationChris Lattner2004-01-301-0/+4
| | | | llvm-svn: 11024
* Initial support for implementing clonePartiallyInto in terms of ↵Chris Lattner2004-01-231-1/+2
| | | | | | cloneReachableSubgraph, though this support is currently disabled. llvm-svn: 10970
* Fine-grainify namespaces for this libraryChris Lattner2003-11-121-4/+1
| | | | llvm-svn: 9948
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-1/+4
| | | | llvm-svn: 9903
* All DSGraphs keep a reference to the targetdata they are created with. This isChris Lattner2003-11-021-2/+2
| | | | | | | | used to eliminate the hard coded, hacked in, sparc specific, global TargetData. Changing the TargetData used to actually match the code fixes problems, and eliminates a crash. llvm-svn: 9659
* Added LLVM project notice to the top of every C++ source file.John Criswell2003-10-201-0/+7
| | | | | | Header files will be on the way. llvm-svn: 9298
* DEBUG got moved to Support/Debug.hChris Lattner2003-08-011-1/+1
| | | | llvm-svn: 7492
* Move usages of explicit hash_* datastructures to use typedefsChris Lattner2003-06-301-6/+6
| | | | llvm-svn: 6996
* Revamp DSGraphs so that they can support multiple functions in the sameChris Lattner2003-06-301-11/+5
| | | | | | DSGraph at one time llvm-svn: 6994
* Adjust to implement new AA interfaceChris Lattner2003-02-261-16/+9
| | | | llvm-svn: 5638
* Hax0r around a deficiency in the Pass infrastructureChris Lattner2003-02-131-2/+5
| | | | llvm-svn: 5555
* Implement a "union-findy" version of DS-Analysis, which eliminates theChris Lattner2003-02-111-0/+2
| | | | | | Referrers list on DSNodes. llvm-svn: 5536
* Fix problem breaking FhourstonesChris Lattner2003-02-101-1/+2
| | | | llvm-svn: 5526
* Make steensgaards performance not shamefulChris Lattner2003-02-101-6/+12
| | | | llvm-svn: 5524
* Switch to using the right call vectorChris Lattner2003-02-091-0/+2
| | | | llvm-svn: 5517
* Print out the steens graph if -debug is specifiedChris Lattner2003-02-091-1/+2
| | | | llvm-svn: 5514
* Remove explicit result countersChris Lattner2003-02-081-14/+4
| | | | llvm-svn: 5508
* Implement optimization for direct function call case. This dramaticallyChris Lattner2003-02-051-2/+6
| | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495
* Remove bogus assertionChris Lattner2003-02-041-2/+0
| | | | llvm-svn: 5492
* Fix steensgaard to work on a lot more cases...Chris Lattner2003-02-041-14/+9
| | | | llvm-svn: 5488
* Rename variableChris Lattner2003-02-031-6/+6
| | | | llvm-svn: 5486
* Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner2003-02-011-10/+10
| | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460
OpenPOWER on IntegriCloud