Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ONLY merge in the aux call sites, this causes a HUGE speedup | Chris Lattner | 2002-11-08 | 1 | -1/+2 |
| | | | | llvm-svn: 4640 | ||||
* | 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 | ||||
* | Reenable 'quick exit' case | Chris Lattner | 2002-11-08 | 1 | -2/+1 |
| | | | | llvm-svn: 4638 | ||||
* | Reduce amount of work needed to compute ip/modref | Chris Lattner | 2002-11-08 | 1 | -1/+2 |
| | | | | llvm-svn: 4637 | ||||
* | Reimplement TD pass completely it now works | Chris Lattner | 2002-11-08 | 1 | -113/+119 |
| | | | | llvm-svn: 4635 | ||||
* | Cannot modify original call sites vector | Chris Lattner | 2002-11-08 | 1 | -1/+6 |
| | | | | llvm-svn: 4634 | ||||
* | - 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 | ||||
* | Remove gunk used by broken TD pass | Chris Lattner | 2002-11-08 | 1 | -12/+4 |
| | | | | llvm-svn: 4632 | ||||
* | Fix IPModRef to use new DS interface | Chris Lattner | 2002-11-08 | 1 | -8/+1 |
| | | | | llvm-svn: 4628 | ||||
* | Use DSNodeHandleMap instead to be safe | Chris Lattner | 2002-11-08 | 3 | -16/+22 |
| | | | | llvm-svn: 4622 | ||||
* | * actually handle constants (especially constantexprs) correctly. | Chris Lattner | 2002-11-08 | 1 | -11/+28 |
| | | | | | | | - This seems to dramatically improve many benchmarks, only slowing down gzip significantly. llvm-svn: 4621 | ||||
* | Add flush | Chris Lattner | 2002-11-08 | 3 | -29/+20 |
| | | | | llvm-svn: 4619 | ||||
* | Implement ResolveCallSiteModRefInfo for IPModRef. computeModRef is not yet ↵ | Chris Lattner | 2002-11-07 | 1 | -4/+56 |
| | | | | | | done though! llvm-svn: 4602 | ||||
* | Instead of using a bool that constant has to be explained, use a self | Chris Lattner | 2002-11-07 | 3 | -9/+8 |
| | | | | | | explanitory enum instead. llvm-svn: 4600 | ||||
* | Implement a new mergeInGraph method, which basically factors code out of | Chris Lattner | 2002-11-07 | 3 | -74/+86 |
| | | | | | | | | | | | | 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 | 4 | -18/+6 |
| | | | | llvm-svn: 4596 | ||||
* | Fix problem with dangling referrers | Chris Lattner | 2002-11-07 | 1 | -1/+4 |
| | | | | llvm-svn: 4595 | ||||
* | Minor bugfix to enable generation of methcall.llvm.lib, objinst.llvm.lib, and | Chris Lattner | 2002-11-07 | 1 | -2/+2 |
| | | | | | | | The problem was merging two unsized types like function's, ie int (int*) with int (uint *) llvm-svn: 4594 | ||||
* | Compute total number of nodes and # call nodes | Chris Lattner | 2002-11-07 | 1 | -0/+6 |
| | | | | llvm-svn: 4592 | ||||
* | Move printouts to be wrapped in DEBUG() macros | Chris Lattner | 2002-11-07 | 1 | -7/+7 |
| | | | | llvm-svn: 4588 | ||||
* | When the -only-print-main-ds option is specified, still print out graph size | Chris Lattner | 2002-11-07 | 1 | -2/+9 |
| | | | | | | statistics for skipped functions llvm-svn: 4587 | ||||
* | Allow the ResolveCallSiteModRefInfo method to return a mapping of nodes, | Chris Lattner | 2002-11-06 | 1 | -6/+18 |
| | | | | | | implement the mod/ref bit masking llvm-svn: 4578 | ||||
* | Add a stub to implement the context sensitive mod/ref info for call sites | Chris Lattner | 2002-11-06 | 1 | -12/+23 |
| | | | | llvm-svn: 4577 | ||||
* | Give a back pointer to the IPModRef object to the FunctionModRefInfo object | Chris Lattner | 2002-11-06 | 1 | -4/+6 |
| | | | | llvm-svn: 4576 | ||||
* | Remove a couple of #includes, move some code from .h file | Chris Lattner | 2002-11-06 | 1 | -8/+32 |
| | | | | llvm-svn: 4575 | ||||
* | Change Steens class to build with Vikram's changes | Chris Lattner | 2002-11-06 | 1 | -4/+4 |
| | | | | llvm-svn: 4572 | ||||
* | Make PointerSize & Shift be enums | Chris Lattner | 2002-11-06 | 1 | -6/+1 |
| | | | | | | Fix problem with recursive merging llvm-svn: 4570 | ||||
* | Make query operations non-const to allow demand-driven analyses. | Vikram S. Adve | 2002-11-06 | 1 | -5/+5 |
| | | | | llvm-svn: 4569 | ||||
* | An interprocedural analysis pass that computes flow-insensitive | Vikram S. Adve | 2002-11-06 | 1 | -0/+218 |
| | | | | | | IP Mod and Ref information for every function and every call site. llvm-svn: 4567 | ||||
* | Dramatically simplify internal DSNode representation, get implementation | Chris Lattner | 2002-11-06 | 3 | -304/+270 |
| | | | | | | | *FULLY OPERATIONAL* and safe. We are now capable of completely analyzing at LEAST the Olden benchmarks + 181.mcf llvm-svn: 4562 | ||||
* | Delete "StripScalars" argument to cloneInto method | Chris Lattner | 2002-11-06 | 2 | -2/+0 |
| | | | | llvm-svn: 4560 | ||||
* | Attempted fixes to the mergemap to make it work better. | Chris Lattner | 2002-11-05 | 1 | -15/+28 |
| | | | | | | Ended up disabling merge map merging completely. It shall be removed. llvm-svn: 4550 | ||||
* | Simple passes that print out SCCs in the CFGs or in the CallGraph of a module. | Vikram S. Adve | 2002-11-04 | 1 | -0/+93 |
| | | | | llvm-svn: 4532 | ||||
* | Change the "Cannot merge two portions of the same node yet" from an assertion | Chris Lattner | 2002-11-04 | 1 | -6/+13 |
| | | | | | | into a "oh crap, lets collapse" case llvm-svn: 4530 | ||||
* | Give a better error message in an unhandled case | Chris Lattner | 2002-11-04 | 1 | -1/+8 |
| | | | | llvm-svn: 4521 | ||||
* | Allow the call graph to be called from analyze naturally with print implemented | Chris Lattner | 2002-11-04 | 1 | -6/+5 |
| | | | | llvm-svn: 4517 | ||||
* | Rename ValueMap to ScalarMap | Chris Lattner | 2002-11-03 | 5 | -44/+45 |
| | | | | llvm-svn: 4516 | ||||
* | Rename NewNode flag to HeapNode | Chris Lattner | 2002-11-03 | 3 | -4/+5 |
| | | | | llvm-svn: 4515 | ||||
* | Change the letters used to represent stack and heap allocations to "S" and "H" | Chris Lattner | 2002-11-03 | 1 | -2/+2 |
| | | | | | | respectively. This is to make presentation easier in the paper. llvm-svn: 4514 | ||||
* | Implement the "unknown flag" which mainly consists of aligning printing code | Chris Lattner | 2002-11-02 | 2 | -11/+17 |
| | | | | llvm-svn: 4490 | ||||
* | Oops, this was not meant to be checked in | Chris Lattner | 2002-11-02 | 1 | -2/+1 |
| | | | | llvm-svn: 4489 | ||||
* | Stop representing scalars as explicit nodes in the graph. Now the only | Chris Lattner | 2002-11-02 | 4 | -170/+133 |
| | | | | | | | | | nodes in the graph are memory objects, which is very nice. This also greatly reduces the size and memory footprint for DSGraphs. For example, the local DSGraph for llu went from 65 to 13 nodes with this change. As a side bonus, dot seems to lay out the graphs slightly better too. :) llvm-svn: 4488 | ||||
* | Fix comments, steens is context sensitive, we just haven't implemented | Chris Lattner | 2002-11-01 | 1 | -3/+3 |
| | | | | | | mod/ref apis yet llvm-svn: 4485 | ||||
* | Add a fixme | Chris Lattner | 2002-10-31 | 1 | -0/+2 |
| | | | | llvm-svn: 4479 | ||||
* | * Minor optimization: when merging nodes, merge the smaller one into the | Chris Lattner | 2002-10-31 | 1 | -3/+13 |
| | | | | | | | larger one. * Handle the case where we are merging two nodes of different size better. llvm-svn: 4476 | ||||
* | Remove dead code | Chris Lattner | 2002-10-31 | 1 | -31/+12 |
| | | | | llvm-svn: 4467 | ||||
* | This fixes all kinds of problems with array handling. There are still bugs to | Chris Lattner | 2002-10-31 | 2 | -83/+244 |
| | | | | | | | | | | | | | | | | be fixed, but we are getting much closer now. * Make DSNode::TypeRec a full fledged DSTypeRec type. * Add methods used to update and access the typerecords elements * Add methods to query if and to cause a node to be completely folded * DSGraph construction doesn't use the allocation type for anything at all, now nodes get their type information based on how they are used. * Fixed a bug with global value handling introduced in the last checkin * GEP support is now much better, arrays are handled correctly. The array flag is now updated in type records. There are still cases that are not handled yet (we do not detect pessimizations), but getting much closer. llvm-svn: 4465 | ||||
* | Use new isCommutative interface, which gives us SetEQ and SetNE for free. | Chris Lattner | 2002-10-31 | 1 | -7/+3 |
| | | | | | | Thanks fly out to Casey Carter for this fix. llvm-svn: 4460 | ||||
* | Fix spelling of `propagate'. | Misha Brukman | 2002-10-29 | 3 | -5/+5 |
| | | | | llvm-svn: 4423 | ||||
* | Eliminate uses of MachineBasicBlock::get | Chris Lattner | 2002-10-28 | 3 | -33/+43 |
| | | | | llvm-svn: 4340 |