summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure
Commit message (Collapse)AuthorAgeFilesLines
...
* 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-273-8/+17
| | | | | | | 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
* Add peak memory usage supportChris Lattner2002-11-181-1/+4
| | | | llvm-svn: 4748
* Add statsChris Lattner2002-11-181-4/+15
| | | | llvm-svn: 4747
* Add hack to only consider indirect calls indirect if they do more than castChris Lattner2002-11-171-6/+14
| | | | | | their source function llvm-svn: 4723
* Add MaxSCC statisticsChris Lattner2002-11-171-6/+25
| | | | llvm-svn: 4722
* Pass to compute various statisics related to DSGraphs.Vikram S. Adve2002-11-131-0/+86
| | | | | | | | For now, this just computes the #indirect call sites and the avg. #callees per indirect call site (actually it prints both totals and the average is their ratio). llvm-svn: 4705
* Inline graphs from outside the SCC into the SCC before SCC resolution startsChris Lattner2002-11-121-4/+104
| | | | llvm-svn: 4701
* 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
* Handle a mismatch between # function args and call site argsChris Lattner2002-11-111-1/+2
| | | | llvm-svn: 4696
* Elimiante calls to a node with nothing in it.Chris Lattner2002-11-111-36/+45
| | | | llvm-svn: 4695
* Complete rewrite of BU code to use Tarjan's SCC finding algorithm to driveChris Lattner2002-11-111-265/+351
| | | | | | the algorithm instead of hand coded depth first iteration llvm-svn: 4694
* Mark stuff reachable by _AUX_ calls as incomplete in the BU graphChris Lattner2002-11-111-9/+15
| | | | llvm-svn: 4690
* Fix infinite loop in the BU algorithm. Unfortunately this dies a seriousChris Lattner2002-11-111-30/+177
| | | | | | death when handling moderately sized SCC's, but what can you do llvm-svn: 4689
* Print the right call set sizeChris Lattner2002-11-111-1/+3
| | | | llvm-svn: 4688
* 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
* Honor the shouldPrintAuxCalls flagChris Lattner2002-11-101-4/+9
| | | | llvm-svn: 4678
* Initialize PrintAuxCalls memberChris Lattner2002-11-101-0/+1
| | | | llvm-svn: 4677
* * Bottom-Up graphs print the Aux call vectorChris Lattner2002-11-101-16/+42
| | | | | | | | | | * Significantly improve DEBUG output * Aggressively fold calls together if we inlined a graph that provides call nodes. * Add a bailout if the current graph has over 200 call nodes in it, this is a really whacky case that should never happen. llvm-svn: 4675
* eliminate the ability to remove global nodes from deadNodeElminate... for now.Chris Lattner2002-11-095-32/+8
| | | | | | | This slows stuff down a bit, but it should get much better before it gets any worse. llvm-svn: 4666
* Remove obsolete codeChris Lattner2002-11-091-14/+0
| | | | llvm-svn: 4665
* Fix logicChris Lattner2002-11-091-1/+1
| | | | llvm-svn: 4664
* Add globals graphs to all three passesChris Lattner2002-11-094-34/+54
| | | | llvm-svn: 4663
* Move maskNodeTypes to header fileChris Lattner2002-11-091-11/+0
| | | | llvm-svn: 4661
* Clean up DSGraph::removeDeadNodes interfaceChris Lattner2002-11-095-30/+18
| | | | llvm-svn: 4660
* Make removeTriviallyDeadNodes a private interface of DSGraphChris Lattner2002-11-095-8/+7
| | | | llvm-svn: 4659
* Don't put constants into the scalar map!Chris Lattner2002-11-091-9/+13
| | | | llvm-svn: 4657
* Add initial support for a globals graphChris Lattner2002-11-092-26/+8
| | | | llvm-svn: 4656
* Tighten up array handlingChris Lattner2002-11-091-1/+5
| | | | llvm-svn: 4655
* #include Datastructure.h firstChris Lattner2002-11-091-1/+1
| | | | llvm-svn: 4654
* Fix warning & release buildChris Lattner2002-11-091-3/+1
| | | | llvm-svn: 4648
* Fold arrays down to a single element. This causes huge wins on some benchmarksChris Lattner2002-11-081-0/+10
| | | | | | | for example: 197.parser (64M->14M), 164.gzip (14M->2.7M). The actual graphs represented should not change at all. llvm-svn: 4643
* ONLY merge in the aux call sites, this causes a HUGE speedupChris Lattner2002-11-081-1/+2
| | | | llvm-svn: 4640
* Allow specification of whether the call sites should be copied, AND whetherChris Lattner2002-11-081-2/+11
| | | | | | the aux call sites should be copied llvm-svn: 4639
* Reenable 'quick exit' caseChris Lattner2002-11-081-2/+1
| | | | llvm-svn: 4638
* Reimplement TD pass completely it now worksChris Lattner2002-11-081-113/+119
| | | | llvm-svn: 4635
* Cannot modify original call sites vectorChris Lattner2002-11-081-1/+6
| | | | llvm-svn: 4634
* - Add a bunch of checking to make sure that dead nodes are not used after theyChris Lattner2002-11-081-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 passChris Lattner2002-11-081-12/+4
| | | | llvm-svn: 4632
* Use DSNodeHandleMap instead to be safeChris Lattner2002-11-083-16/+22
| | | | llvm-svn: 4622
* * actually handle constants (especially constantexprs) correctly.Chris Lattner2002-11-081-11/+28
| | | | | | | - This seems to dramatically improve many benchmarks, only slowing down gzip significantly. llvm-svn: 4621
* Add flushChris Lattner2002-11-083-29/+20
| | | | llvm-svn: 4619
* Instead of using a bool that constant has to be explained, use a selfChris Lattner2002-11-073-9/+8
| | | | | | explanitory enum instead. llvm-svn: 4600
* Implement a new mergeInGraph method, which basically factors code out ofChris Lattner2002-11-073-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 DSChris Lattner2002-11-074-18/+6
| | | | llvm-svn: 4596
* Minor bugfix to enable generation of methcall.llvm.lib, objinst.llvm.lib, andChris Lattner2002-11-071-2/+2
| | | | | | | The problem was merging two unsized types like function's, ie int (int*) with int (uint *) llvm-svn: 4594
OpenPOWER on IntegriCloud