aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/DataStructure/Local.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Don't apply type information to load instructions if it will cause collapsingChris Lattner2003-03-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5684 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't put integer pointers (longs) into the scalar map.Chris Lattner2003-02-141-0/+10
| | | | | | | This speeds stuff up by 10% on some tests, woot! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5564 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement a "union-findy" version of DS-Analysis, which eliminates theChris Lattner2003-02-111-2/+1
| | | | | | | Referrers list on DSNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5536 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't insert null entries into the scalar map for constexpr (cast null to Ty)Chris Lattner2003-02-091-5/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5523 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a flag which effectively disables field sensitivityChris Lattner2003-02-081-0/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5506 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement optimization for direct function call case. This dramaticallyChris Lattner2003-02-051-2/+14
| | | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5495 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a huge bug with handling non-pointer instructionsChris Lattner2003-02-041-1/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5491 91177308-0d34-0410-b5e6-96231b3b80d8
* Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner2003-02-011-4/+4
| | | | | | | This change provides a small (3%) but consistent speedup git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5460 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove using declarationsChris Lattner2003-02-011-9/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5456 91177308-0d34-0410-b5e6-96231b3b80d8
* free instructions mark their operands as being heap nodes.Chris Lattner2003-01-281-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5425 91177308-0d34-0410-b5e6-96231b3b80d8
* * Eliminate boolean arguments in favor of using enumsChris Lattner2003-01-231-2/+2
| | | | | | | * T-D pass now eliminates unreachable globals git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5419 91177308-0d34-0410-b5e6-96231b3b80d8
* Slight efficiency improvementChris Lattner2003-01-231-4/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5418 91177308-0d34-0410-b5e6-96231b3b80d8
* Two bug fixes:Vikram S. Adve2002-12-061-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4948 91177308-0d34-0410-b5e6-96231b3b80d8
* Add peak memory usage supportChris Lattner2002-11-181-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4748 91177308-0d34-0410-b5e6-96231b3b80d8
* Initialize PrintAuxCalls memberChris Lattner2002-11-101-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4677 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate the ability to remove global nodes from deadNodeElminate... for now.Chris Lattner2002-11-091-1/+1
| | | | | | | | This slows stuff down a bit, but it should get much better before it gets any worse. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4666 91177308-0d34-0410-b5e6-96231b3b80d8
* Add globals graphs to all three passesChris Lattner2002-11-091-10/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4663 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up DSGraph::removeDeadNodes interfaceChris Lattner2002-11-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4660 91177308-0d34-0410-b5e6-96231b3b80d8
* Make removeTriviallyDeadNodes a private interface of DSGraphChris Lattner2002-11-091-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4659 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't put constants into the scalar map!Chris Lattner2002-11-091-9/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4657 91177308-0d34-0410-b5e6-96231b3b80d8
* Add initial support for a globals graphChris Lattner2002-11-091-2/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4656 91177308-0d34-0410-b5e6-96231b3b80d8
* #include Datastructure.h firstChris Lattner2002-11-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4654 91177308-0d34-0410-b5e6-96231b3b80d8
* * actually handle constants (especially constantexprs) correctly.Chris Lattner2002-11-081-11/+28
| | | | | | | | - This seems to dramatically improve many benchmarks, only slowing down gzip significantly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4621 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename DataStructureAnalysis namespace to DSChris Lattner2002-11-071-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4596 91177308-0d34-0410-b5e6-96231b3b80d8
* Dramatically simplify internal DSNode representation, get implementationChris Lattner2002-11-061-13/+14
| | | | | | | | *FULLY OPERATIONAL* and safe. We are now capable of completely analyzing at LEAST the Olden benchmarks + 181.mcf git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4562 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename ValueMap to ScalarMapChris Lattner2002-11-031-9/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4516 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename NewNode flag to HeapNodeChris Lattner2002-11-031-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4515 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the "unknown flag" which mainly consists of aligning printing codeChris Lattner2002-11-021-5/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4490 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop representing scalars as explicit nodes in the graph. Now the onlyChris Lattner2002-11-021-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. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4488 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead codeChris Lattner2002-10-311-31/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4467 91177308-0d34-0410-b5e6-96231b3b80d8
* This fixes all kinds of problems with array handling. There are still bugs toChris Lattner2002-10-311-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4465 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't create a new node for every reference to a global. This caused a hugeChris Lattner2002-10-211-5/+2
| | | | | | | | node explosion that doesn't help anything at all. In previous versions of the representation this DID help, but not anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4249 91177308-0d34-0410-b5e6-96231b3b80d8
* - Make DSCallSite not inherit from std::vector. Renamed methods slightly.Chris Lattner2002-10-211-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4240 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid extra copyChris Lattner2002-10-201-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4239 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove spurious caller pointer in DSCallSite.Vikram S. Adve2002-10-201-1/+1
| | | | | | | Also add functions to access pointer argument nodes cleanly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4235 91177308-0d34-0410-b5e6-96231b3b80d8
* Added a first-class representation for each call site that can beVikram S. Adve2002-10-201-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4228 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert typerec to be a structure instead of a pairChris Lattner2002-10-181-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4226 91177308-0d34-0410-b5e6-96231b3b80d8
* Calculate mod/ref infoChris Lattner2002-10-171-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4223 91177308-0d34-0410-b5e6-96231b3b80d8
* DataStructure.h doesn't include DSGraph.hChris Lattner2002-10-021-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4029 91177308-0d34-0410-b5e6-96231b3b80d8
* * Implement fully general merging of array subscripts on demand! ThisChris Lattner2002-10-021-3/+27
| | | | | | | does not handle the initial pointer index case yet though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4012 91177308-0d34-0410-b5e6-96231b3b80d8
* Checkin some major reworks of data structure analysis. This is not done,Chris Lattner2002-10-011-142/+208
| | | | | | | | nor does it work very well, but I need to get it checked in before I break the tree unintentionally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3996 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminated the MemAccessInst class, folding contents into GEP class.Chris Lattner2002-08-221-9/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3488 91177308-0d34-0410-b5e6-96231b3b80d8
* Load & StoreInst no longer derive from MemAccessInst, so we don't haveChris Lattner2002-08-221-3/+3
| | | | | | | to handle indexing anymore git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3485 91177308-0d34-0410-b5e6-96231b3b80d8
* - Do not expose ::ID from any of the analyses anymore.Chris Lattner2002-08-211-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3416 91177308-0d34-0410-b5e6-96231b3b80d8
* Add GlobalDSGraph -- a common graph that holds externally visible nodes.Vikram S. Adve2002-07-301-4/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3173 91177308-0d34-0410-b5e6-96231b3b80d8
* * Standardize how analysis results/passes as printed with the print() virtualChris Lattner2002-07-271-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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3115 91177308-0d34-0410-b5e6-96231b3b80d8
* Always create a shadow node for a store instruction, even if it's storingChris Lattner2002-07-221-3/+3
| | | | | | | a scalar value. Likewise for load instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2990 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename removeDeadNodes to removeTriviallyDeadNodesChris Lattner2002-07-181-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2969 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement cast nodes correctly.Chris Lattner2002-07-181-12/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2964 91177308-0d34-0410-b5e6-96231b3b80d8
* Lots of bug fixes, add BottomUpClosure, which has bugs, but is a start.Chris Lattner2002-07-181-47/+55
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2945 91177308-0d34-0410-b5e6-96231b3b80d8