Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | FINALLY be able to get symbolic type names in the globals graph! | Chris Lattner | 2004-03-02 | 1 | -1/+14 | |
| | | | | llvm-svn: 12082 | |||||
* | Really, only if reopen | Chris Lattner | 2004-03-02 | 1 | -1/+2 | |
| | | | | llvm-svn: 12080 | |||||
* | Correctly add an array marker on a node when appropriate! | Chris Lattner | 2004-03-01 | 1 | -0/+4 | |
| | | | | llvm-svn: 12055 | |||||
* | Only clone global nodes between graphs if both graphs have the global. | Chris Lattner | 2004-02-27 | 2 | -13/+9 | |
| | | | | llvm-svn: 11928 | |||||
* | ADD MORE FUNCTIONS! | Chris Lattner | 2004-02-27 | 1 | -14/+20 | |
| | | | | llvm-svn: 11927 | |||||
* | Be a good little compiler and handle direct calls efficiently, even if there | Chris Lattner | 2004-02-26 | 1 | -10/+13 | |
| | | | | | | are beastly ConstantPointerRefs in the way... llvm-svn: 11883 | |||||
* | Fix typo | Chris Lattner | 2004-02-26 | 1 | -1/+1 | |
| | | | | llvm-svn: 11864 | |||||
* | The node doesn't have to be _no_ node flags, it just has to be complete and | Chris Lattner | 2004-02-26 | 1 | -2/+3 | |
| | | | | | | not have any globals. llvm-svn: 11863 | |||||
* | Add _more_ functions | Chris Lattner | 2004-02-26 | 1 | -3/+20 | |
| | | | | llvm-svn: 11862 | |||||
* | Two changes: | Chris Lattner | 2004-02-25 | 1 | -1/+4 | |
| | | | | | | | | | | | | | 1. Functions do not make things incomplete, only variables 2. Constant global variables no longer need to be marked incomplete, because we are guaranteed that the initializer for the global will be in the graph we are hacking on now. This makes resolution of indirect calls happen a lot more in the bu pass, supports things like vtables and the C counterparts (giant constant arrays of function pointers), etc... Testcase here: test/Regression/Analysis/DSGraph/constant_globals.ll llvm-svn: 11852 | |||||
* | When building local graphs, clone the initializer for constant globals into each | Chris Lattner | 2004-02-25 | 1 | -7/+21 | |
| | | | | | | local graph that uses the global. llvm-svn: 11850 | |||||
* | Simplify the dead node elimination stuff | Chris Lattner | 2004-02-25 | 1 | -10/+12 | |
| | | | | | | | | | | Make the incompleteness marker faster by looping directly over the globals instead of over the scalars to find the globals Fix a bug where we didn't mark a global incomplete if it didn't have any outgoing edges. This wouldn't break any current clients but is still wrong. llvm-svn: 11848 | |||||
* | Add a bunch more functions | Chris Lattner | 2004-02-25 | 1 | -8/+55 | |
| | | | | llvm-svn: 11847 | |||||
* | Try harder to get symbol info | Chris Lattner | 2004-02-25 | 1 | -0/+3 | |
| | | | | llvm-svn: 11846 | |||||
* | Add a bunch more functions used by perlbmk | Chris Lattner | 2004-02-25 | 1 | -14/+50 | |
| | | | | llvm-svn: 11824 | |||||
* | Add support for 'rename' | Chris Lattner | 2004-02-24 | 1 | -4/+9 | |
| | | | | llvm-svn: 11813 | |||||
* | Add support for remove, fwrite, and fread | Chris Lattner | 2004-02-24 | 1 | -22/+53 | |
| | | | | | | | Also fix problem where we didn't check to see if a node pointer was null. Though fclose(null) doesn't make a lot of sense, 300.twolf does it. llvm-svn: 11810 | |||||
* | Use isNull instead of getNode() to test for existence of a node, this is ↵ | Chris Lattner | 2004-02-22 | 1 | -6/+11 | |
| | | | | | | | | | cheaper. FIX MAJOR BUG, whereby we didn't merge null edges correctly. Correcting this fixes poolallocation on 175.vpr, and possibly others. llvm-svn: 11695 | |||||
* | Fix an iterator invalidation problem which was causing some nodes to not be | Chris Lattner | 2004-02-21 | 1 | -20/+19 | |
| | | | | | | correctly merged over! llvm-svn: 11693 | |||||
* | Use handy method | Chris Lattner | 2004-02-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 11692 | |||||
* | 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 | 2 | -10/+3 | |
| | | | | | | | | 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 | |||||
* | Add two missing returns, which caused us to be very pessimistic about the | Chris Lattner | 2004-02-20 | 2 | -2/+3 | |
| | | | | | | printf and scanf families! llvm-svn: 11683 | |||||
* | Add support for some string functions, the scanf family, and sprintf | Chris Lattner | 2004-02-20 | 1 | -4/+66 | |
| | | | | llvm-svn: 11673 | |||||
* | 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 | |||||
* | Only spit out warning for functions that take pointers, not for sin and the like | Chris Lattner | 2004-02-16 | 1 | -5/+25 | |
| | | | | | | Add more special case handling for stdio functions. I feel dirty, how about you? llvm-svn: 11506 | |||||
* | memset and bcopy and now unified by the llvm.memset intrinsic | Chris Lattner | 2004-02-16 | 1 | -14/+5 | |
| | | | | llvm-svn: 11503 | |||||
* | No need to scan zero initializers. This should make DSA a bit faster. | Chris Lattner | 2004-02-15 | 1 | -0/+2 | |
| | | | | llvm-svn: 11471 | |||||
* | Add support for a bunch more functions | Chris Lattner | 2004-02-13 | 1 | -0/+56 | |
| | | | | llvm-svn: 11395 | |||||
* | Add support for fopen/fclose. Specifically with fopen, we were marking all ↵ | Chris Lattner | 2004-02-13 | 1 | -0/+27 | |
| | | | | | | | | | | of the operands as incomplete, though fopen is known to only read them. This just adds fclose for symmetry, though it doesn't gain anything. This makes the dsgraphs for 181.mcf much more precise. llvm-svn: 11390 | |||||
* | Restructure code to handle memcpy/memmove | Chris Lattner | 2004-02-13 | 1 | -28/+33 | |
| | | | | llvm-svn: 11374 | |||||
* | Adjust to the changed StructType interface. In particular, ↵ | Chris Lattner | 2004-02-09 | 1 | -6/+6 | |
| | | | | | | getElementTypes() is gone. llvm-svn: 11228 | |||||
* | Add one that I missed | Chris Lattner | 2004-02-08 | 1 | -0/+1 | |
| | | | | llvm-svn: 11179 | |||||
* | Instead of callign removeTriviallyDeadNodes on the global graph every time | Chris Lattner | 2004-02-08 | 4 | -8/+13 | |
| | | | | | | | | | 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 | |||||
* | Remove another unneeded call. | Chris Lattner | 2004-02-08 | 1 | -1/+0 | |
| | | | | llvm-svn: 11177 | |||||
* | This call is no longer needed now that merging does not produce garbage | Chris Lattner | 2004-02-08 | 1 | -1/+0 | |
| | | | | llvm-svn: 11176 | |||||
* | Substantially improve the DSA code by removing 'forwarding' nodes from | Chris Lattner | 2004-02-08 | 1 | -1/+5 | |
| | | | | | | | | | DSGraphs while they are forwarding. When the last reference to the forwarding node is dropped, the forwarding node is autodeleted. This should simplify removeTriviallyDead nodes, and is only (efficiently) possible because we are using an ilist of dsnodes now. llvm-svn: 11175 | |||||
* | Bugfix for ilist conversion. The ilist wants to make an 'end' node which has | Chris Lattner | 2004-02-08 | 1 | -1/+1 | |
| | | | | | | G == 0 llvm-svn: 11174 | |||||
* | Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode> | Chris Lattner | 2004-02-08 | 1 | -19/+17 | |
| | | | | llvm-svn: 11173 | |||||
* | Change to use node_iterators instead of direct access to Nodes | Chris Lattner | 2004-02-08 | 1 | -34/+43 | |
| | | | | llvm-svn: 11171 | |||||
* | getNodes() is gone, use node_begin/end instead | Chris Lattner | 2004-02-07 | 3 | -15/+18 | |
| | | | | | | | Rename stats from dsnode -> dsa Add a new stat llvm-svn: 11167 | |||||
* | There is no need to clone over nodes that are going to be dead anyway | Chris Lattner | 2004-02-07 | 1 | -3/+5 | |
| | | | | llvm-svn: 11157 | |||||
* | 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 | |||||
* | Forward method request to chained aa implementation | Chris Lattner | 2004-01-30 | 2 | -0/+8 | |
| | | | | llvm-svn: 11024 | |||||
* | Fix a bug aflicting 265.gap | Chris Lattner | 2004-01-29 | 1 | -4/+18 | |
| | | | | llvm-svn: 11006 | |||||
* | Minor bugfixes | Chris Lattner | 2004-01-29 | 1 | -8/+12 | |
| | | | | llvm-svn: 11005 | |||||
* | Rename DSGraph::ScalarMapTy -> DSScalarMap | Chris Lattner | 2004-01-28 | 2 | -9/+9 | |
| | | | | llvm-svn: 11001 | |||||
* | Fix a bug | Chris Lattner | 2004-01-28 | 1 | -1/+1 | |
| | | | | llvm-svn: 11000 | |||||
* | Eliminate the call to removeTriviallyDeadNodes from updateFromGlobals graph, | Chris Lattner | 2004-01-28 | 1 | -4/+1 | |
| | | | | | | | moving it to the start of removeDeadNodes. This speeds up DSA by 2s on perlbmk from 41s llvm-svn: 10999 | |||||
* | In the TD pass, iterate over globals directly instead of through the whole ↵ | Chris Lattner | 2004-01-28 | 1 | -9/+8 | |
| | | | | | | | | scalar map. This saves 5s in the TD pass, from 22->17s on perlbmk llvm-svn: 10998 |