summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp
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
* 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
* 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 some scary bugs that VC++ detected.Chris Lattner2005-01-311-1/+1
| | | | llvm-svn: 19941
* * Make some methods more const correct.Chris Lattner2005-01-301-15/+27
| | | | | | | | | | | | | | | | * 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
* Make -ds-aa more useful, allowing it to be updated as xforms hack on the ↵Chris Lattner2005-01-241-0/+55
| | | | | | program. llvm-svn: 19818
* Fix a bug that was preventing povray and namd from pool allocating correctly.Chris Lattner2004-11-081-1/+1
| | | | llvm-svn: 17632
* Fix commentChris Lattner2004-10-311-1/+1
| | | | llvm-svn: 17377
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-201-1/+1
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Changes For Bug 352Reid Spencer2004-09-011-2/+2
| | | | | | | | 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
* Headers movedChris Lattner2004-07-071-1/+1
| | | | llvm-svn: 14665
* Minor changes, remove some debugging code that got checked in somehow.Chris Lattner2004-03-041-7/+10
| | | | | | | Make sure to scope the NodeMap passed into cloneInto so that it doesn't point to nodes that are deleted. Add some FIXME's for future performance enhancements. llvm-svn: 12115
* Only clone global nodes between graphs if both graphs have the global.Chris Lattner2004-02-271-0/+3
| | | | llvm-svn: 11928
* Instead of cloning the globals for main into the globals graph at the end ofChris Lattner2004-02-211-17/+11
| | | | | | | | | BU propagation, clone the globals into the GG of EACH FUNCTION that finishes processing! The GlobalsGraph *must* include all globals and effects from all functions in the program. Fixing this makes pool allocation work better on 175.vpr, but it still ultimately crashes. llvm-svn: 11686
* There is no need to merge the globals graph into the function graphs at theChris Lattner2004-02-201-5/+1
| | | | | | | | end of the BU and CBU passes. The globals will be marked incomplete, so it doesn't matter if they are missing some info, and merging isn't guaranteed to bring everything in anyway! llvm-svn: 11684
* When we complete the bottom-up pass, make sure to merge the globals in ↵Chris Lattner2004-02-171-0/+17
| | | | | | | | 'main' into the globals graph. llvm-svn: 11562
* Instead of callign removeTriviallyDeadNodes on the global graph every timeChris Lattner2004-02-081-0/+1
| | | | | | | | | removeDeadNodes is called, only call it at the end of the pass being run. This saves 1.3 seconds running DSA on 177.mesa (5.3->4.0s), which is pretty big. This is only possible because of the automatic garbage collection done on forwarding nodes. llvm-svn: 11178
* Avoid referencing deleted DSgraphs when merging an SCC into a larger SCC. ThisChris Lattner2004-01-311-9/+11
| | | | | | fixes the crash in 176.gcc. llvm-svn: 11033
* Get clone flags right, so we don't build InlinedGlobals only to clear themChris Lattner2004-01-271-5/+3
| | | | llvm-svn: 10984
* Initial support for implementing clonePartiallyInto in terms of ↵Chris Lattner2004-01-231-1/+2
| | | | | | cloneReachableSubgraph, though this support is currently disabled. llvm-svn: 10970
* Minor code cleanupChris Lattner2003-11-131-2/+2
| | | | llvm-svn: 9962
* 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-0/+3
| | | | llvm-svn: 9903
* 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
* Functions reachable from the arguments of unresolvable call nodes shouldChris Lattner2003-09-201-1/+4
| | | | | | not have their arguments marked complete llvm-svn: 8639
* The Globals graph must become complete at the end of the BU phase!Chris Lattner2003-09-201-0/+5
| | | | llvm-svn: 8638
* Switch from using CallInst's to represent call sites to using the LLVMChris Lattner2003-09-201-1/+2
| | | | | | | CallSite class. Now we can represent function calls by invoke instructions too! llvm-svn: 8629
* DEBUG got moved to Support/Debug.hChris Lattner2003-08-011-0/+1
| | | | llvm-svn: 7492
* Rematerialize nodes from the globals graph into the current graphVikram S. Adve2003-07-161-3/+9
| | | | | | | | | | after all callees are inlined into the current graph. NOTE: There's also a major bug fix for the BU pass in DataStructure.cpp, which ensures that resolvable indirect calls are not moved out to the globals graph, so that they are eventually inlined (if possible). llvm-svn: 7189
* Fix how we are handling unreachable functions. This DRAMATICALLY improves ↵Chris Lattner2003-07-021-0/+3
| | | | | | efficiency llvm-svn: 7082
* Keep track of how many inlinings are performedChris Lattner2003-07-021-0/+2
| | | | llvm-svn: 7076
* Make the BU closure keep track of which actual calls happenChris Lattner2003-07-021-2/+6
| | | | | | Minor cleanups llvm-svn: 7059
* Minor cleanupsChris Lattner2003-07-011-4/+5
| | | | llvm-svn: 7027
* Split CallSiteIterator out into DSCallSiteIterator.h, and generalize it a bitChris Lattner2003-06-301-101/+7
| | | | llvm-svn: 7006
* Reimplement the BU closure to collapse all SCC graphs into a single graph.Chris Lattner2003-06-301-242/+52
| | | | | | Look at all of the code that gets deleted! llvm-svn: 7001
* Revamp DSGraphs so that they can support multiple functions in the sameChris Lattner2003-06-301-11/+11
| | | | | | DSGraph at one time llvm-svn: 6994
* Propagate globals graph from the local to bu to td globals graphs. ThisChris Lattner2003-06-281-2/+3
| | | | | | fixes bug: DSGraph/buglobals.ll llvm-svn: 6947
* * Changes to make NodeType be private to DSNode.Chris Lattner2003-06-191-1/+1
| | | | | | | | * Add new MultiObject flag to DSNode which keeps track of whether or not multiple objects have been merged into the node, allowing must-alias info to be tracked. llvm-svn: 6794
* Implement optimization for direct function call case. This dramaticallyChris Lattner2003-02-051-16/+28
| | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495
* Add better debug outputChris Lattner2003-02-031-12/+20
| | | | llvm-svn: 5476
* Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner2003-02-011-8/+9
| | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460
* Remove using declarationsChris Lattner2003-02-011-2/+1
| | | | llvm-svn: 5456
* Add functions to the ban listChris Lattner2003-01-311-1/+2
| | | | llvm-svn: 5450
* * Eliminate boolean arguments in favor of using enumsChris Lattner2003-01-231-6/+6
| | | | | | * T-D pass now eliminates unreachable globals llvm-svn: 5419
* Fix logical error in TD pass: we should clear Mod/Ref bits of each callerVikram S. Adve2002-11-271-4/+7
| | | | | | | before inlining their graphs into a function. To support this, added flags to CloneFlags to strip/keep Mod/Ref bits. llvm-svn: 4836
* Add MaxSCC statisticsChris Lattner2002-11-171-6/+25
| | | | llvm-svn: 4722
* Inline graphs from outside the SCC into the SCC before SCC resolution startsChris Lattner2002-11-121-4/+104
| | | | llvm-svn: 4701
OpenPOWER on IntegriCloud