summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure/DataStructure.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Move usages of explicit hash_* datastructures to use typedefsChris Lattner2003-06-301-7/+6
| | | | llvm-svn: 6996
* Revamp DSGraphs so that they can support multiple functions in the sameChris Lattner2003-06-301-40/+50
| | | | | | DSGraph at one time llvm-svn: 6994
* Fix minor bug in previous checkinChris Lattner2003-06-291-3/+1
| | | | llvm-svn: 6986
* Add support for "physical subtyping", which fixes:Chris Lattner2003-06-291-5/+140
| | | | | | DSGraph/2003-06-29-NodeCollapsing2.ll & DSGraph/PhysicalSubtyping.ll llvm-svn: 6982
* Avoid double negativesChris Lattner2003-06-281-2/+2
| | | | llvm-svn: 6945
* Remove support for the MultiObject flag, which was fundamentally brokenChris Lattner2003-06-221-11/+0
| | | | llvm-svn: 6840
* * Changes to make NodeType be private to DSNode.Chris Lattner2003-06-191-32/+41
| | | | | | | | * Add new MultiObject flag to DSNode which keeps track of whether or not multiple objects have been merged into the node, allowing must-alias info to be tracked. llvm-svn: 6794
* Remove bogus assertion: a node with no referrers could be collapsed if ↵Chris Lattner2003-06-161-2/+0
| | | | | | field-sensitivity was disabled llvm-svn: 6695
* s/convertable/convertible/gMisha Brukman2003-05-201-2/+2
| | | | llvm-svn: 6248
* Don't apply type information to load instructions if it will cause collapsingChris Lattner2003-03-031-5/+6
| | | | llvm-svn: 5684
* Fix resolution of indirect function calls... whoopsChris Lattner2003-02-141-1/+1
| | | | llvm-svn: 5576
* - Eliminate provably non-pointer nodes from graphs.Chris Lattner2003-02-141-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 Lattner2003-02-131-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 theChris Lattner2003-02-111-227/+120
| | | | | | Referrers list on DSNodes. llvm-svn: 5536
* Modest speedup which seems to help steens quite a bit on large graphsChris Lattner2003-02-101-1/+2
| | | | llvm-svn: 5532
* Fix problem breaking GAP, use hasNoReferrers moreChris Lattner2003-02-101-4/+4
| | | | llvm-svn: 5530
* * Fix a bug where global incompleteness marking would not mark the globalChris Lattner2003-02-091-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 aliasChris Lattner2003-02-081-1/+1
| | | | llvm-svn: 5511
* Fix an assertion failureChris Lattner2003-02-061-2/+2
| | | | llvm-svn: 5496
* Implement optimization for direct function call case. This dramaticallyChris Lattner2003-02-051-11/+25
| | | | | | | reduces the number of function nodes created and speeds up analysis by about 10% overall. llvm-svn: 5495
* Add sanity checkChris Lattner2003-02-041-0/+1
| | | | llvm-svn: 5489
* * Fix a bug introduced in the last checkin wrt Stack markersChris Lattner2003-02-031-8/+6
| | | | | | * Make cloning more efficient in the process... llvm-svn: 5479
* Implement the globals graph!Chris Lattner2003-02-031-128/+163
| | | | llvm-svn: 5477
* Fix a bug where we would delete neccesary calls in bu passChris Lattner2003-02-011-1/+2
| | | | llvm-svn: 5465
* Fix a bug where we would incorrectly delete globals which had edges to alive ↵Chris Lattner2003-02-011-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 efficientlyChris Lattner2003-02-011-6/+4
| | | | llvm-svn: 5463
* Remove dead nodes more efficientlyChris Lattner2003-02-011-1/+2
| | | | llvm-svn: 5462
* Improve efficiency of aliveness traversal codeChris Lattner2003-02-011-21/+19
| | | | llvm-svn: 5461
* Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)Chris Lattner2003-02-011-29/+26
| | | | | | This change provides a small (3%) but consistent speedup llvm-svn: 5460
* Remove using declarationsChris Lattner2003-02-011-14/+12
| | | | llvm-svn: 5456
* Remove globals on the bottom up pass which do not contain any informationChris Lattner2003-01-311-3/+22
| | | | llvm-svn: 5451
* Use and implement API for graph traversalsChris Lattner2003-01-291-24/+25
| | | | llvm-svn: 5431
* * Eliminate boolean arguments in favor of using enumsChris Lattner2003-01-231-6/+7
| | | | | | * T-D pass now eliminates unreachable globals llvm-svn: 5419
* Fix analysis of the Burg programChris Lattner2003-01-221-1/+1
| | | | llvm-svn: 5401
* Fix several related bugs in DSNode::mergeWith() caused by theVikram S. Adve2002-12-061-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 haveVikram S. Adve2002-12-051-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 callerVikram S. Adve2002-11-271-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. Adve2002-11-251-3/+3
| | | | llvm-svn: 4831
* Add peak memory usage measurement stuffChris Lattner2002-11-181-40/+64
| | | | | | Add structure padding optimizations llvm-svn: 4749
* Fix two bugs:Chris Lattner2002-11-121-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 Lattner2002-11-111-36/+45
| | | | llvm-svn: 4695
* Mark stuff reachable by _AUX_ calls as incomplete in the BU graphChris Lattner2002-11-111-9/+15
| | | | llvm-svn: 4690
* Use call site mergeWith method to simplify codeChris Lattner2002-11-111-5/+1
| | | | llvm-svn: 4687
* Fix a bug that could trigger when varargs call sites had non-matching number ↵Chris Lattner2002-11-101-2/+9
| | | | | | of arguments llvm-svn: 4683
* * Dramatically rework liveness evaluation.Chris Lattner2002-11-101-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 Lattner2002-11-091-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 fileChris Lattner2002-11-091-11/+0
| | | | llvm-svn: 4661
* Clean up DSGraph::removeDeadNodes interfaceChris Lattner2002-11-091-19/+14
| | | | llvm-svn: 4660
* Make removeTriviallyDeadNodes a private interface of DSGraphChris Lattner2002-11-091-2/+1
| | | | llvm-svn: 4659
* Add initial support for a globals graphChris Lattner2002-11-091-24/+2
| | | | llvm-svn: 4656
OpenPOWER on IntegriCloud