Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Don't apply type information to load instructions if it will cause collapsing | Chris Lattner | 2003-03-03 | 1 | -5/+6 | |
| | | | | llvm-svn: 5684 | |||||
* | Fix resolution of indirect function calls... whoops | Chris Lattner | 2003-02-14 | 1 | -1/+1 | |
| | | | | llvm-svn: 5576 | |||||
* | - Eliminate provably non-pointer nodes from graphs. | Chris Lattner | 2003-02-14 | 1 | -5/+22 | |
| | | | | | | | | | | | | | | This helps a lot of testcases, for example: New Time New #Nodes Old Time Old #Nodes 254.gap: 91.1024 21605 91.1397 22657 povray31: 2.7807 8613 3.0152 10338 255.vortex: 1.2034 8153 1.2172 8822 moria: .6756 3150 .7054 3877 300.twolf: .1652 2010 .1851 3270 Typically, testcases which use long and ulong integers a lot get better, f.e. povray above. llvm-svn: 5566 | |||||
* | Move node forwarding code from being inlined to being out-of-line. | Chris Lattner | 2003-02-13 | 1 | -0/+21 | |
| | | | | | | This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa llvm-svn: 5552 | |||||
* | Implement a "union-findy" version of DS-Analysis, which eliminates the | Chris Lattner | 2003-02-11 | 1 | -227/+120 | |
| | | | | | | Referrers list on DSNodes. llvm-svn: 5536 | |||||
* | Modest speedup which seems to help steens quite a bit on large graphs | Chris Lattner | 2003-02-10 | 1 | -1/+2 | |
| | | | | llvm-svn: 5532 | |||||
* | Fix problem breaking GAP, use hasNoReferrers more | Chris Lattner | 2003-02-10 | 1 | -4/+4 | |
| | | | | llvm-svn: 5530 | |||||
* | * Fix a bug where global incompleteness marking would not mark the global | Chris Lattner | 2003-02-09 | 1 | -8/+5 | |
| | | | | | | | | itself incomplete! * Allow incompleteness callers to specify they don't want globals to be considered sources of incompleteness. llvm-svn: 5513 | |||||
* | Add a special case for main because we know it's incoming arguments don't alias | Chris Lattner | 2003-02-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 5511 | |||||
* | Fix an assertion failure | Chris Lattner | 2003-02-06 | 1 | -2/+2 | |
| | | | | llvm-svn: 5496 | |||||
* | Implement optimization for direct function call case. This dramatically | Chris Lattner | 2003-02-05 | 1 | -11/+25 | |
| | | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495 | |||||
* | Add sanity check | Chris Lattner | 2003-02-04 | 1 | -0/+1 | |
| | | | | llvm-svn: 5489 | |||||
* | * Fix a bug introduced in the last checkin wrt Stack markers | Chris Lattner | 2003-02-03 | 1 | -8/+6 | |
| | | | | | | * Make cloning more efficient in the process... llvm-svn: 5479 | |||||
* | Implement the globals graph! | Chris Lattner | 2003-02-03 | 1 | -128/+163 | |
| | | | | llvm-svn: 5477 | |||||
* | Fix a bug where we would delete neccesary calls in bu pass | Chris Lattner | 2003-02-01 | 1 | -1/+2 | |
| | | | | llvm-svn: 5465 | |||||
* | Fix a bug where we would incorrectly delete globals which had edges to alive ↵ | Chris Lattner | 2003-02-01 | 1 | -3/+0 | |
| | | | | | | | | | nodes in a graph in the t-d pass. This slows down the TD pass by quite a bit (1/3), but is needed for correctness. llvm-svn: 5464 | |||||
* | Delete nodes more efficiently | Chris Lattner | 2003-02-01 | 1 | -6/+4 | |
| | | | | llvm-svn: 5463 | |||||
* | Remove dead nodes more efficiently | Chris Lattner | 2003-02-01 | 1 | -1/+2 | |
| | | | | llvm-svn: 5462 | |||||
* | Improve efficiency of aliveness traversal code | Chris Lattner | 2003-02-01 | 1 | -21/+19 | |
| | | | | llvm-svn: 5461 | |||||
* | Change DSGraph stuff to use hash_(set|map) instead of std::(set|map) | Chris Lattner | 2003-02-01 | 1 | -29/+26 | |
| | | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460 | |||||
* | Remove using declarations | Chris Lattner | 2003-02-01 | 1 | -14/+12 | |
| | | | | llvm-svn: 5456 | |||||
* | Remove globals on the bottom up pass which do not contain any information | Chris Lattner | 2003-01-31 | 1 | -3/+22 | |
| | | | | llvm-svn: 5451 | |||||
* | Use and implement API for graph traversals | Chris Lattner | 2003-01-29 | 1 | -24/+25 | |
| | | | | llvm-svn: 5431 | |||||
* | * Eliminate boolean arguments in favor of using enums | Chris Lattner | 2003-01-23 | 1 | -6/+7 | |
| | | | | | | * T-D pass now eliminates unreachable globals llvm-svn: 5419 | |||||
* | Fix analysis of the Burg program | Chris Lattner | 2003-01-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 5401 | |||||
* | Fix several related bugs in DSNode::mergeWith() caused by the | Vikram S. Adve | 2002-12-06 | 1 | -90/+102 | |
| | | | | | | | | | fact that the incoming nodes may be merged away at intermediate steps. Use an extra level of indirection via DSNodeHandles to track the nodes being merged. All this now happens in a static helper function MergeNodes(). llvm-svn: 4947 | |||||
* | Cute bug fix: when moving links from N to this, some links could have | Vikram S. Adve | 2002-12-05 | 1 | -14/+23 | |
| | | | | | | | been missed if node *this got merged away due to recursive merging! Also, links were not moved correctly if a node is collapsed. llvm-svn: 4933 | |||||
* | Fix logical error in TD pass: we should clear Mod/Ref bits of each caller | Vikram S. Adve | 2002-11-27 | 1 | -2/+7 | |
| | | | | | | | before inlining their graphs into a function. To support this, added flags to CloneFlags to strip/keep Mod/Ref bits. llvm-svn: 4836 | |||||
* | Keep global nodes in each DS Graph (by forcing them to be marked live). | Vikram S. Adve | 2002-11-25 | 1 | -3/+3 | |
| | | | | llvm-svn: 4831 | |||||
* | Add peak memory usage measurement stuff | Chris Lattner | 2002-11-18 | 1 | -40/+64 | |
| | | | | | | Add structure padding optimizations llvm-svn: 4749 | |||||
* | Fix two bugs: | Chris Lattner | 2002-11-12 | 1 | -27/+27 | |
| | | | | | | | | | | * The globals vector was getting broken and unsorted, this caused vortex to get badly pessimized * Node offset handling was being handled really poorly, and in particular we were not merging types with offsets right. This causes several graphs to be non-merged. llvm-svn: 4699 | |||||
* | Elimiante calls to a node with nothing in it. | Chris Lattner | 2002-11-11 | 1 | -36/+45 | |
| | | | | llvm-svn: 4695 | |||||
* | Mark stuff reachable by _AUX_ calls as incomplete in the BU graph | Chris Lattner | 2002-11-11 | 1 | -9/+15 | |
| | | | | llvm-svn: 4690 | |||||
* | Use call site mergeWith method to simplify code | Chris Lattner | 2002-11-11 | 1 | -5/+1 | |
| | | | | llvm-svn: 4687 | |||||
* | Fix a bug that could trigger when varargs call sites had non-matching number ↵ | Chris Lattner | 2002-11-10 | 1 | -2/+9 | |
| | | | | | | of arguments llvm-svn: 4683 | |||||
* | * Dramatically rework liveness evaluation. | Chris Lattner | 2002-11-10 | 1 | -172/+167 | |
| | | | | | | | | | * Implement the first step of the Globals graph: Deleting nodes from function graphs. In practice, these nodes need to be moved to the globals graph, but this will be taken care of later. Note that the graphs computed right now are not strictly correct! llvm-svn: 4681 | |||||
* | eliminate the ability to remove global nodes from deadNodeElminate... for now. | Chris Lattner | 2002-11-09 | 1 | -28/+4 | |
| | | | | | | | This slows stuff down a bit, but it should get much better before it gets any worse. llvm-svn: 4666 | |||||
* | Move maskNodeTypes to header file | Chris Lattner | 2002-11-09 | 1 | -11/+0 | |
| | | | | llvm-svn: 4661 | |||||
* | Clean up DSGraph::removeDeadNodes interface | Chris Lattner | 2002-11-09 | 1 | -19/+14 | |
| | | | | llvm-svn: 4660 | |||||
* | Make removeTriviallyDeadNodes a private interface of DSGraph | Chris Lattner | 2002-11-09 | 1 | -2/+1 | |
| | | | | llvm-svn: 4659 | |||||
* | Add initial support for a globals graph | Chris Lattner | 2002-11-09 | 1 | -24/+2 | |
| | | | | llvm-svn: 4656 | |||||
* | Tighten up array handling | Chris Lattner | 2002-11-09 | 1 | -1/+5 | |
| | | | | llvm-svn: 4655 | |||||
* | Fix warning & release build | Chris Lattner | 2002-11-09 | 1 | -3/+1 | |
| | | | | llvm-svn: 4648 | |||||
* | Fold arrays down to a single element. This causes huge wins on some benchmarks | Chris Lattner | 2002-11-08 | 1 | -0/+10 | |
| | | | | | | | for example: 197.parser (64M->14M), 164.gzip (14M->2.7M). The actual graphs represented should not change at all. llvm-svn: 4643 | |||||
* | Allow specification of whether the call sites should be copied, AND whether | Chris Lattner | 2002-11-08 | 1 | -2/+11 | |
| | | | | | | the aux call sites should be copied llvm-svn: 4639 | |||||
* | - Add a bunch of checking to make sure that dead nodes are not used after they | Chris Lattner | 2002-11-08 | 1 | -12/+40 | |
| | | | | | | | | | are marked DEAD. This helped track down some bugs - Fix a bunch of bugs where we were doing work on nodes after they became dead - Add support for aux function call sites - Add support for not cloning call sites llvm-svn: 4633 | |||||
* | Use DSNodeHandleMap instead to be safe | Chris Lattner | 2002-11-08 | 1 | -11/+17 | |
| | | | | llvm-svn: 4622 | |||||
* | Add flush | Chris Lattner | 2002-11-08 | 1 | -27/+17 | |
| | | | | llvm-svn: 4619 | |||||
* | Instead of using a bool that constant has to be explained, use a self | Chris Lattner | 2002-11-07 | 1 | -6/+5 | |
| | | | | | | explanitory enum instead. llvm-svn: 4600 | |||||
* | Implement a new mergeInGraph method, which basically factors code out of | Chris Lattner | 2002-11-07 | 1 | -0/+52 | |
| | | | | | | | | | | | | 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 |