Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Only clone global nodes between graphs if both graphs have the global. | Chris Lattner | 2004-02-27 | 1 | -0/+3 | |
| | | | | llvm-svn: 11928 | |||||
* | Instead of cloning the globals for main into the globals graph at the end of | Chris Lattner | 2004-02-21 | 1 | -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 the | Chris Lattner | 2004-02-20 | 1 | -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 Lattner | 2004-02-17 | 1 | -0/+17 | |
| | | | | | | | | 'main' into the globals graph. llvm-svn: 11562 | |||||
* | Instead of callign removeTriviallyDeadNodes on the global graph every time | Chris Lattner | 2004-02-08 | 1 | -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. This | Chris Lattner | 2004-01-31 | 1 | -9/+11 | |
| | | | | | | fixes the crash in 176.gcc. llvm-svn: 11033 | |||||
* | Get clone flags right, so we don't build InlinedGlobals only to clear them | Chris Lattner | 2004-01-27 | 1 | -5/+3 | |
| | | | | llvm-svn: 10984 | |||||
* | Initial support for implementing clonePartiallyInto in terms of ↵ | Chris Lattner | 2004-01-23 | 1 | -1/+2 | |
| | | | | | | cloneReachableSubgraph, though this support is currently disabled. llvm-svn: 10970 | |||||
* | Minor code cleanup | Chris Lattner | 2003-11-13 | 1 | -2/+2 | |
| | | | | llvm-svn: 9962 | |||||
* | Fine-grainify namespaces for this library | Chris Lattner | 2003-11-12 | 1 | -4/+1 | |
| | | | | llvm-svn: 9948 | |||||
* | Put all LLVM code into the llvm namespace, as per bug 109. | Brian Gaeke | 2003-11-11 | 1 | -0/+3 | |
| | | | | llvm-svn: 9903 | |||||
* | Added LLVM project notice to the top of every C++ source file. | John Criswell | 2003-10-20 | 1 | -0/+7 | |
| | | | | | | Header files will be on the way. llvm-svn: 9298 | |||||
* | Functions reachable from the arguments of unresolvable call nodes should | Chris Lattner | 2003-09-20 | 1 | -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 Lattner | 2003-09-20 | 1 | -0/+5 | |
| | | | | llvm-svn: 8638 | |||||
* | Switch from using CallInst's to represent call sites to using the LLVM | Chris Lattner | 2003-09-20 | 1 | -1/+2 | |
| | | | | | | | CallSite class. Now we can represent function calls by invoke instructions too! llvm-svn: 8629 | |||||
* | DEBUG got moved to Support/Debug.h | Chris Lattner | 2003-08-01 | 1 | -0/+1 | |
| | | | | llvm-svn: 7492 | |||||
* | Rematerialize nodes from the globals graph into the current graph | Vikram S. Adve | 2003-07-16 | 1 | -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 Lattner | 2003-07-02 | 1 | -0/+3 | |
| | | | | | | efficiency llvm-svn: 7082 | |||||
* | Keep track of how many inlinings are performed | Chris Lattner | 2003-07-02 | 1 | -0/+2 | |
| | | | | llvm-svn: 7076 | |||||
* | Make the BU closure keep track of which actual calls happen | Chris Lattner | 2003-07-02 | 1 | -2/+6 | |
| | | | | | | Minor cleanups llvm-svn: 7059 | |||||
* | Minor cleanups | Chris Lattner | 2003-07-01 | 1 | -4/+5 | |
| | | | | llvm-svn: 7027 | |||||
* | Split CallSiteIterator out into DSCallSiteIterator.h, and generalize it a bit | Chris Lattner | 2003-06-30 | 1 | -101/+7 | |
| | | | | llvm-svn: 7006 | |||||
* | Reimplement the BU closure to collapse all SCC graphs into a single graph. | Chris Lattner | 2003-06-30 | 1 | -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 same | Chris Lattner | 2003-06-30 | 1 | -11/+11 | |
| | | | | | | DSGraph at one time llvm-svn: 6994 | |||||
* | Propagate globals graph from the local to bu to td globals graphs. This | Chris Lattner | 2003-06-28 | 1 | -2/+3 | |
| | | | | | | fixes bug: DSGraph/buglobals.ll llvm-svn: 6947 | |||||
* | * Changes to make NodeType be private to DSNode. | Chris Lattner | 2003-06-19 | 1 | -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 dramatically | Chris Lattner | 2003-02-05 | 1 | -16/+28 | |
| | | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495 | |||||
* | Add better debug output | Chris Lattner | 2003-02-03 | 1 | -12/+20 | |
| | | | | llvm-svn: 5476 | |||||
* | Change DSGraph stuff to use hash_(set|map) instead of std::(set|map) | Chris Lattner | 2003-02-01 | 1 | -8/+9 | |
| | | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460 | |||||
* | Remove using declarations | Chris Lattner | 2003-02-01 | 1 | -2/+1 | |
| | | | | llvm-svn: 5456 | |||||
* | Add functions to the ban list | Chris Lattner | 2003-01-31 | 1 | -1/+2 | |
| | | | | llvm-svn: 5450 | |||||
* | * Eliminate boolean arguments in favor of using enums | Chris Lattner | 2003-01-23 | 1 | -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 caller | Vikram S. Adve | 2002-11-27 | 1 | -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 statistics | Chris Lattner | 2002-11-17 | 1 | -6/+25 | |
| | | | | llvm-svn: 4722 | |||||
* | Inline graphs from outside the SCC into the SCC before SCC resolution starts | Chris Lattner | 2002-11-12 | 1 | -4/+104 | |
| | | | | llvm-svn: 4701 | |||||
* | Complete rewrite of BU code to use Tarjan's SCC finding algorithm to drive | Chris Lattner | 2002-11-11 | 1 | -265/+351 | |
| | | | | | | the algorithm instead of hand coded depth first iteration llvm-svn: 4694 | |||||
* | Fix infinite loop in the BU algorithm. Unfortunately this dies a serious | Chris Lattner | 2002-11-11 | 1 | -30/+177 | |
| | | | | | | death when handling moderately sized SCC's, but what can you do llvm-svn: 4689 | |||||
* | * Bottom-Up graphs print the Aux call vector | Chris Lattner | 2002-11-10 | 1 | -16/+42 | |
| | | | | | | | | | | * Significantly improve DEBUG output * Aggressively fold calls together if we inlined a graph that provides call nodes. * Add a bailout if the current graph has over 200 call nodes in it, this is a really whacky case that should never happen. llvm-svn: 4675 | |||||
* | eliminate the ability to remove global nodes from deadNodeElminate... for now. | Chris Lattner | 2002-11-09 | 1 | -1/+1 | |
| | | | | | | | This slows stuff down a bit, but it should get much better before it gets any worse. llvm-svn: 4666 | |||||
* | Add globals graphs to all three passes | Chris Lattner | 2002-11-09 | 1 | -11/+15 | |
| | | | | llvm-svn: 4663 | |||||
* | Clean up DSGraph::removeDeadNodes interface | Chris Lattner | 2002-11-09 | 1 | -7/+1 | |
| | | | | llvm-svn: 4660 | |||||
* | Make removeTriviallyDeadNodes a private interface of DSGraph | Chris Lattner | 2002-11-09 | 1 | -1/+2 | |
| | | | | llvm-svn: 4659 | |||||
* | ONLY merge in the aux call sites, this causes a HUGE speedup | Chris Lattner | 2002-11-08 | 1 | -1/+2 | |
| | | | | llvm-svn: 4640 | |||||
* | Remove gunk used by broken TD pass | Chris Lattner | 2002-11-08 | 1 | -12/+4 | |
| | | | | llvm-svn: 4632 | |||||
* | Instead of using a bool that constant has to be explained, use a self | Chris Lattner | 2002-11-07 | 1 | -2/+2 | |
| | | | | | | explanitory enum instead. llvm-svn: 4600 | |||||
* | Implement a new mergeInGraph method, which basically factors code out of | Chris Lattner | 2002-11-07 | 1 | -44/+4 | |
| | | | | | | | | | | | | the BU class. This will be used by the IPModRef class to do stuff, eventually perhaps the TD pass will use it also. Speaking of the TD pass, this also eliminates the self recursive case, which was broken, and couldn't occur anyway. llvm-svn: 4599 | |||||
* | Rename DataStructureAnalysis namespace to DS | Chris Lattner | 2002-11-07 | 1 | -7/+1 | |
| | | | | llvm-svn: 4596 | |||||
* | Delete "StripScalars" argument to cloneInto method | Chris Lattner | 2002-11-06 | 1 | -1/+0 | |
| | | | | llvm-svn: 4560 | |||||
* | Give a better error message in an unhandled case | Chris Lattner | 2002-11-04 | 1 | -1/+8 | |
| | | | | llvm-svn: 4521 | |||||
* | Rename ValueMap to ScalarMap | Chris Lattner | 2002-11-03 | 1 | -3/+3 | |
| | | | | llvm-svn: 4516 |