Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Don't insert null entries into the scalar map for constexpr (cast null to Ty) | Chris Lattner | 2003-02-09 | 1 | -5/+11 |
| | | | | llvm-svn: 5523 | ||||
* | Add a flag which effectively disables field sensitivity | Chris Lattner | 2003-02-08 | 1 | -0/+5 |
| | | | | llvm-svn: 5506 | ||||
* | Implement optimization for direct function call case. This dramatically | Chris Lattner | 2003-02-05 | 1 | -2/+14 |
| | | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495 | ||||
* | Fix a huge bug with handling non-pointer instructions | Chris Lattner | 2003-02-04 | 1 | -1/+16 |
| | | | | llvm-svn: 5491 | ||||
* | Change DSGraph stuff to use hash_(set|map) instead of std::(set|map) | Chris Lattner | 2003-02-01 | 1 | -4/+4 |
| | | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460 | ||||
* | Remove using declarations | Chris Lattner | 2003-02-01 | 1 | -9/+6 |
| | | | | llvm-svn: 5456 | ||||
* | free instructions mark their operands as being heap nodes. | Chris Lattner | 2003-01-28 | 1 | -1/+2 |
| | | | | llvm-svn: 5425 | ||||
* | * Eliminate boolean arguments in favor of using enums | Chris Lattner | 2003-01-23 | 1 | -2/+2 |
| | | | | | | * T-D pass now eliminates unreachable globals llvm-svn: 5419 | ||||
* | Slight efficiency improvement | Chris Lattner | 2003-01-23 | 1 | -4/+1 |
| | | | | llvm-svn: 5418 | ||||
* | Two bug fixes: | Vikram S. Adve | 2002-12-06 | 1 | -13/+22 |
| | | | | | | | | (1) Make entries for Constant values in the ScalarMap. (2) Set MOD bit for the node pointed to by the argument of a free instruction. llvm-svn: 4948 | ||||
* | Add peak memory usage support | Chris Lattner | 2002-11-18 | 1 | -1/+4 |
| | | | | llvm-svn: 4748 | ||||
* | Initialize PrintAuxCalls member | Chris Lattner | 2002-11-10 | 1 | -0/+1 |
| | | | | llvm-svn: 4677 | ||||
* | 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 | -10/+10 |
| | | | | llvm-svn: 4663 | ||||
* | Clean up DSGraph::removeDeadNodes interface | Chris Lattner | 2002-11-09 | 1 | -1/+1 |
| | | | | llvm-svn: 4660 | ||||
* | Make removeTriviallyDeadNodes a private interface of DSGraph | Chris Lattner | 2002-11-09 | 1 | -3/+3 |
| | | | | llvm-svn: 4659 | ||||
* | Don't put constants into the scalar map! | Chris Lattner | 2002-11-09 | 1 | -9/+13 |
| | | | | llvm-svn: 4657 | ||||
* | Add initial support for a globals graph | Chris Lattner | 2002-11-09 | 1 | -2/+6 |
| | | | | llvm-svn: 4656 | ||||
* | #include Datastructure.h first | Chris Lattner | 2002-11-09 | 1 | -1/+1 |
| | | | | llvm-svn: 4654 | ||||
* | * 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 | ||||
* | Rename DataStructureAnalysis namespace to DS | Chris Lattner | 2002-11-07 | 1 | -4/+2 |
| | | | | llvm-svn: 4596 | ||||
* | Dramatically simplify internal DSNode representation, get implementation | Chris Lattner | 2002-11-06 | 1 | -13/+14 |
| | | | | | | | *FULLY OPERATIONAL* and safe. We are now capable of completely analyzing at LEAST the Olden benchmarks + 181.mcf llvm-svn: 4562 | ||||
* | Rename ValueMap to ScalarMap | Chris Lattner | 2002-11-03 | 1 | -9/+9 |
| | | | | llvm-svn: 4516 | ||||
* | Rename NewNode flag to HeapNode | Chris Lattner | 2002-11-03 | 1 | -1/+1 |
| | | | | llvm-svn: 4515 | ||||
* | Implement the "unknown flag" which mainly consists of aligning printing code | Chris Lattner | 2002-11-02 | 1 | -5/+10 |
| | | | | llvm-svn: 4490 | ||||
* | Stop representing scalars as explicit nodes in the graph. Now the only | Chris Lattner | 2002-11-02 | 1 | -113/+75 |
| | | | | | | | | | 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 | ||||
* | 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 | 1 | -31/+80 |
| | | | | | | | | | | | | | | | | 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 | ||||
* | Don't create a new node for every reference to a global. This caused a huge | Chris Lattner | 2002-10-21 | 1 | -5/+2 |
| | | | | | | | node explosion that doesn't help anything at all. In previous versions of the representation this DID help, but not anymore. llvm-svn: 4249 | ||||
* | - Make DSCallSite not inherit from std::vector. Renamed methods slightly. | Chris Lattner | 2002-10-21 | 1 | -14/+17 |
| | | | | | | | | Make copy ctor have two versions to avoid dealing with conditional template argument. DSCallSite ctor now takes all arguments instead of taking one and being populated later. llvm-svn: 4240 | ||||
* | Avoid extra copy | Chris Lattner | 2002-10-20 | 1 | -2/+1 |
| | | | | llvm-svn: 4239 | ||||
* | Remove spurious caller pointer in DSCallSite. | Vikram S. Adve | 2002-10-20 | 1 | -1/+1 |
| | | | | | | Also add functions to access pointer argument nodes cleanly. llvm-svn: 4235 | ||||
* | Added a first-class representation for each call site that can be | Vikram S. Adve | 2002-10-20 | 1 | -4/+4 |
| | | | | | | | | | used in the DS graphs. Essentially, what was vector<DSNodeHandle> before is now a DSCallSite with the same vector, plus pointers to the CallInst and the caller Function. The special-purpose class BUDataStructure::CallSite is no longer needed. llvm-svn: 4228 | ||||
* | Convert typerec to be a structure instead of a pair | Chris Lattner | 2002-10-18 | 1 | -1/+0 |
| | | | | llvm-svn: 4226 | ||||
* | Calculate mod/ref info | Chris Lattner | 2002-10-17 | 1 | -0/+3 |
| | | | | llvm-svn: 4223 | ||||
* | DataStructure.h doesn't include DSGraph.h | Chris Lattner | 2002-10-02 | 1 | -0/+1 |
| | | | | llvm-svn: 4029 | ||||
* | * Implement fully general merging of array subscripts on demand! This | Chris Lattner | 2002-10-02 | 1 | -3/+27 |
| | | | | | | does not handle the initial pointer index case yet though. llvm-svn: 4012 | ||||
* | Checkin some major reworks of data structure analysis. This is not done, | Chris Lattner | 2002-10-01 | 1 | -142/+208 |
| | | | | | | | nor does it work very well, but I need to get it checked in before I break the tree unintentionally. llvm-svn: 3996 | ||||
* | Eliminated the MemAccessInst class, folding contents into GEP class. | Chris Lattner | 2002-08-22 | 1 | -9/+8 |
| | | | | llvm-svn: 3488 | ||||
* | Load & StoreInst no longer derive from MemAccessInst, so we don't have | Chris Lattner | 2002-08-22 | 1 | -3/+3 |
| | | | | | | to handle indexing anymore llvm-svn: 3485 | ||||
* | - Do not expose ::ID from any of the analyses anymore. | Chris Lattner | 2002-08-21 | 1 | -1/+0 |
| | | | | llvm-svn: 3416 | ||||
* | Add GlobalDSGraph -- a common graph that holds externally visible nodes. | Vikram S. Adve | 2002-07-30 | 1 | -4/+8 |
| | | | | llvm-svn: 3173 | ||||
* | * Standardize how analysis results/passes as printed with the print() virtual | Chris Lattner | 2002-07-27 | 1 | -0/+4 |
| | | | | | | | | | | methods * Eliminate AnalysisID: Now it is just a typedef for const PassInfo* * Simplify how AnalysisID's are initialized * Eliminate Analysis/Writer.cpp/.h: incorporate printing functionality into the analyses themselves. llvm-svn: 3115 | ||||
* | Always create a shadow node for a store instruction, even if it's storing | Chris Lattner | 2002-07-22 | 1 | -3/+3 |
| | | | | | | a scalar value. Likewise for load instructions. llvm-svn: 2990 | ||||
* | Rename removeDeadNodes to removeTriviallyDeadNodes | Chris Lattner | 2002-07-18 | 1 | -1/+3 |
| | | | | llvm-svn: 2969 | ||||
* | Implement cast nodes correctly. | Chris Lattner | 2002-07-18 | 1 | -12/+17 |
| | | | | llvm-svn: 2964 | ||||
* | Lots of bug fixes, add BottomUpClosure, which has bugs, but is a start. | Chris Lattner | 2002-07-18 | 1 | -47/+55 |
| | | | | llvm-svn: 2945 | ||||
* | * Nodes now keep track of any global variables in them | Chris Lattner | 2002-07-11 | 1 | -17/+35 |
| | | | | | | | * Only dead-node-eliminate nodes with no flags * Don't merge scalars, only merge what they point to. llvm-svn: 2878 | ||||
* | New implementation of data structure analysis. Only local analysis has been | Chris Lattner | 2002-07-10 | 1 | -0/+283 |
implemented so far. llvm-svn: 2871 |