Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | add some possibly bogus assertions. | Chris Lattner | 2005-03-17 | 1 | -0/+10 | |
| | | | | llvm-svn: 20665 | |||||
* | simplify this function a bit, allow DS-AA to build on/improve the mod/ref | Chris Lattner | 2005-03-17 | 1 | -8/+11 | |
| | | | | | | results returned by AA, not just use one or the other. llvm-svn: 20662 | |||||
* | Clean up some code, handle null pointer specially to avoid an assertion | Chris Lattner | 2005-03-17 | 1 | -6/+10 | |
| | | | | llvm-svn: 20660 | |||||
* | Two changes: | Chris Lattner | 2005-03-17 | 1 | -3/+3 | |
| | | | | | | | | | 1. Chain to the parent implementation of M/R analysis if we can't find any information. It has some heuristics that often do well. 2. Do not clear all flags, this can make invalid nodes by turning nodes that used to be collapsed into non-collapsed nodes (fixing crashes) llvm-svn: 20659 | |||||
* | Fix the missing symbols problem Bill was hitting. Patch contributed by | Chris Lattner | 2005-03-17 | 1 | -0/+1 | |
| | | | | | | Bill Wendling!! llvm-svn: 20649 | |||||
* | Do not create ridiculously huge DSNodes, as described in the comments. | Chris Lattner | 2005-03-17 | 1 | -1/+21 | |
| | | | | | | This speeds up the BU pass on 172.mgrid from 62.3 -> 0.1242s. llvm-svn: 20648 | |||||
* | remove use of compat_iterator. | Chris Lattner | 2005-03-16 | 3 | -14/+15 | |
| | | | | llvm-svn: 20643 | |||||
* | make sure to mark nodes in the globals graph incomplete after computing it | Chris Lattner | 2005-03-15 | 1 | -0/+1 | |
| | | | | | | so that external globals (and whatever they point to) are marked incomplete. llvm-svn: 20628 | |||||
* | fix crashes when we only have a prototype for main. | Chris Lattner | 2005-03-15 | 3 | -3/+3 | |
| | | | | llvm-svn: 20627 | |||||
* | Fix a crash that happens when mapping something like this: | Chris Lattner | 2005-03-15 | 1 | -6/+12 | |
| | | | | | | | | | | | | | { short, short } to short where the second short maps onto the second field of the first struct. In this case, the struct index is not aligned, so we should avoid calling getLink(2), which asserts out. llvm-svn: 20626 | |||||
* | Make computeGGToGMapping compute an invnodemap | Chris Lattner | 2005-03-15 | 1 | -9/+11 | |
| | | | | llvm-svn: 20622 | |||||
* | Finally fix (the right way) the problem where functions like this: | Chris Lattner | 2005-03-15 | 1 | -0/+24 | |
| | | | | | | | | | | | void foo() { G = 1; } would have an empty DSGraph even though G (a global) is directly used in the function. llvm-svn: 20619 | |||||
* | Start using retnodes_* for iteration. | Chris Lattner | 2005-03-15 | 6 | -39/+34 | |
| | | | | llvm-svn: 20618 | |||||
* | avoid varialbe name collisions | Chris Lattner | 2005-03-15 | 1 | -2/+3 | |
| | | | | llvm-svn: 20606 | |||||
* | This mega patch converts us from using Function::a{iterator|begin|end} to | Chris Lattner | 2005-03-15 | 5 | -10/+10 | |
| | | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597 | |||||
* | Don't crash if computing a mapping to a node with zero size | Chris Lattner | 2005-03-15 | 1 | -0/+2 | |
| | | | | llvm-svn: 20595 | |||||
* | rename method, add counterpart | Chris Lattner | 2005-03-15 | 2 | -4/+16 | |
| | | | | llvm-svn: 20593 | |||||
* | add a method to compute a commonly used mapping. | Chris Lattner | 2005-03-14 | 2 | -5/+16 | |
| | | | | llvm-svn: 20588 | |||||
* | regardless of whether or not the client things we should mark globals ↵ | Chris Lattner | 2005-03-13 | 1 | -7/+7 | |
| | | | | | | | | incomplete, ALWAYS mark them incomplete if they are external! llvm-svn: 20586 | |||||
* | Make sure to remove incomplete markers before we add to them! :) | Chris Lattner | 2005-03-13 | 3 | -0/+3 | |
| | | | | llvm-svn: 20585 | |||||
* | The incoming arguments to main (the argv list) are not complete! | Chris Lattner | 2005-03-13 | 1 | -4/+3 | |
| | | | | llvm-svn: 20584 | |||||
* | After finishing BU analysis, move all global variables from the globals | Chris Lattner | 2005-03-13 | 3 | -6/+71 | |
| | | | | | | graph into main and mark them complete. llvm-svn: 20583 | |||||
* | ADd support for printing eqgraphs. | Chris Lattner | 2005-03-13 | 2 | -2/+8 | |
| | | | | llvm-svn: 20582 | |||||
* | Replace linear search with logrithmic one. | Chris Lattner | 2005-03-13 | 1 | -4/+1 | |
| | | | | llvm-svn: 20580 | |||||
* | make sure to mark nodes returned from functions as incomplete | Chris Lattner | 2005-03-12 | 1 | -0/+1 | |
| | | | | llvm-svn: 20576 | |||||
* | remove this from the PA namespace, leaving it in the llvm ns | Chris Lattner | 2005-03-12 | 1 | -8/+7 | |
| | | | | llvm-svn: 20574 | |||||
* | Move this from the pool allocator project to here, where it logically belongs. | Chris Lattner | 2005-03-12 | 1 | -0/+442 | |
| | | | | llvm-svn: 20570 | |||||
* | Make sure the two arguments of a setcc instruction point to the same node. | Chris Lattner | 2005-03-05 | 1 | -1/+8 | |
| | | | | llvm-svn: 20462 | |||||
* | Trivial cleanup patch | Chris Lattner | 2005-03-04 | 1 | -2/+2 | |
| | | | | llvm-svn: 20436 | |||||
* | Fix spelling, patch contributed by Gabor Greif | Chris Lattner | 2005-02-27 | 1 | -1/+1 | |
| | | | | llvm-svn: 20342 | |||||
* | Handle null a bit more carefully. | Chris Lattner | 2005-02-25 | 1 | -1/+11 | |
| | | | | | | | | Actually teach dsa about select instructions. This doesn't affect the graph in any way other than not setting a spurious U marker on pointer nodes that are selected. llvm-svn: 20324 | |||||
* | This instruction: | Chris Lattner | 2005-02-24 | 1 | -1/+2 | |
| | | | | | | | | | X = gep null, ... Used to not create a scalar map entry for X, which caused clients to barf. This is bad. llvm-svn: 20316 | |||||
* | Fix a bug introduced by revision 1.187 of this file. | Chris Lattner | 2005-02-24 | 1 | -1/+2 | |
| | | | | llvm-svn: 20308 | |||||
* | Add a sanity check. | Chris Lattner | 2005-02-15 | 1 | -0/+1 | |
| | | | | llvm-svn: 20195 | |||||
* | Add a new method to make it easy to update graphs. | Chris Lattner | 2005-02-15 | 1 | -1/+23 | |
| | | | | llvm-svn: 20194 | |||||
* | Use new edge iterators to simplify some code. | Chris Lattner | 2005-02-09 | 1 | -7/+7 | |
| | | | | llvm-svn: 20086 | |||||
* | IndCallGraphMap is now a pointer to a new'd map. | Chris Lattner | 2005-02-07 | 1 | -3/+6 | |
| | | | | llvm-svn: 20065 | |||||
* | If we have an indirect call site that calls N functions, inline the N functions | Chris Lattner | 2005-02-04 | 1 | -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 | |||||
* | Split mergeInGraph into two methods. | Chris Lattner | 2005-02-04 | 1 | -29/+28 | |
| | | | | llvm-svn: 20035 | |||||
* | Fix the Regression/Transforms/DSAnalysis/recursion.ll regression. | Chris Lattner | 2005-02-04 | 1 | -4/+3 | |
| | | | | llvm-svn: 20031 | |||||
* | Refactor getFunctionArgumentsForCall out of mergeInGraph. | Chris Lattner | 2005-02-03 | 1 | -29/+41 | |
| | | | | llvm-svn: 20018 | |||||
* | Eliminate some duplicated debug code | Chris Lattner | 2005-02-01 | 1 | -21/+0 | |
| | | | | llvm-svn: 19980 | |||||
* | Eliminate self-recursion as a special case. | Chris Lattner | 2005-02-01 | 1 | -58/+39 | |
| | | | | llvm-svn: 19979 | |||||
* | Eliminate use of DSCallSiteIterator in key loop. This is a half step to | Chris Lattner | 2005-02-01 | 1 | -62/+120 | |
| | | | | | | a tasty speedup. llvm-svn: 19978 | |||||
* | Signficantly speed up printing by not emitting the same file twice with | Chris Lattner | 2005-02-01 | 1 | -3/+9 | |
| | | | | | | different names. Large SCC's tend to be big, so this saves a lot of time. llvm-svn: 19970 | |||||
* | Do not revisit nodes in the SCC traversal. This speeds up the BU pass a bit. | Chris Lattner | 2005-02-01 | 1 | -7/+29 | |
| | | | | llvm-svn: 19968 | |||||
* | Rename variables to work with VC++'s hokey scoping rules. | Chris Lattner | 2005-01-31 | 2 | -9/+10 | |
| | | | | llvm-svn: 19942 | |||||
* | Fix some scary bugs that VC++ detected. | Chris Lattner | 2005-01-31 | 2 | -2/+2 | |
| | | | | llvm-svn: 19941 | |||||
* | * Make some methods more const correct. | Chris Lattner | 2005-01-30 | 9 | -219/+244 | |
| | | | | | | | | | | | | | | | | * 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 | |||||
* | Remove this code as it is currently completely broken and unmaintained. | Chris Lattner | 2005-01-28 | 9 | -2681/+0 | |
| | | | | | | | | | | If needed, this can be resurrected from CVS. Note that several of the interfaces (e.g. the IPModRef ones) are supersumed by generic AliasAnalysis interfaces that have been written since this code was developed (and they are not DSA specific). llvm-svn: 19864 |