summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DataStructure
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Compute total number of nodes and # call nodesChris Lattner2002-11-071-0/+6
| | | | llvm-svn: 4592
* Move printouts to be wrapped in DEBUG() macrosChris Lattner2002-11-071-7/+7
| | | | llvm-svn: 4588
* When the -only-print-main-ds option is specified, still print out graph sizeChris Lattner2002-11-071-2/+9
| | | | | | statistics for skipped functions llvm-svn: 4587
* Change Steens class to build with Vikram's changesChris Lattner2002-11-061-4/+4
| | | | llvm-svn: 4572
* Make PointerSize & Shift be enumsChris Lattner2002-11-061-6/+1
| | | | | | Fix problem with recursive merging llvm-svn: 4570
* Dramatically simplify internal DSNode representation, get implementationChris Lattner2002-11-063-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 methodChris Lattner2002-11-062-2/+0
| | | | llvm-svn: 4560
* Attempted fixes to the mergemap to make it work better.Chris Lattner2002-11-051-15/+28
| | | | | | Ended up disabling merge map merging completely. It shall be removed. llvm-svn: 4550
* Change the "Cannot merge two portions of the same node yet" from an assertionChris Lattner2002-11-041-6/+13
| | | | | | into a "oh crap, lets collapse" case llvm-svn: 4530
* Give a better error message in an unhandled caseChris Lattner2002-11-041-1/+8
| | | | llvm-svn: 4521
* Rename ValueMap to ScalarMapChris Lattner2002-11-035-44/+45
| | | | llvm-svn: 4516
* Rename NewNode flag to HeapNodeChris Lattner2002-11-033-4/+5
| | | | llvm-svn: 4515
* Change the letters used to represent stack and heap allocations to "S" and "H"Chris Lattner2002-11-031-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 codeChris Lattner2002-11-022-11/+17
| | | | llvm-svn: 4490
* Oops, this was not meant to be checked inChris Lattner2002-11-021-2/+1
| | | | llvm-svn: 4489
* Stop representing scalars as explicit nodes in the graph. Now the onlyChris Lattner2002-11-024-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 implementedChris Lattner2002-11-011-3/+3
| | | | | | mod/ref apis yet llvm-svn: 4485
* Add a fixmeChris Lattner2002-10-311-0/+2
| | | | llvm-svn: 4479
* * Minor optimization: when merging nodes, merge the smaller one into theChris Lattner2002-10-311-3/+13
| | | | | | | larger one. * Handle the case where we are merging two nodes of different size better. llvm-svn: 4476
* Remove dead codeChris Lattner2002-10-311-31/+12
| | | | llvm-svn: 4467
* This fixes all kinds of problems with array handling. There are still bugs toChris Lattner2002-10-312-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
* - Make sure to only keep track of mappings that the TD pass may need in theChris Lattner2002-10-221-4/+46
| | | | | | | | future. This prevents having spurious map entries to nodes that we really don't care about. This allows us to reenable the DeadNodeElim, which was disabled. llvm-svn: 4260
* The callee is not correct, and confuses the TD pass. Null it out.Chris Lattner2002-10-221-0/+1
| | | | llvm-svn: 4259
* Delete unused arguments to DSGraph::cloneInto methodChris Lattner2002-10-213-8/+3
| | | | llvm-svn: 4253
* - Add "ResolvingCaller" to the CallSite record. This keeps track of whichChris Lattner2002-10-212-12/+27
| | | | | | | | function was finally able to resolve the function call. Adding this allows the TD pass to actually work right! - Temporarily disable dead node pruning. This will be reenabled soon. llvm-svn: 4252
* Add another copy ctor formChris Lattner2002-10-211-0/+5
| | | | llvm-svn: 4251
* As it turns out, we don't need a fully generic mapping copy ctor, we just needChris Lattner2002-10-212-36/+8
| | | | | | | something that maps through a std::map. Since this simplified the client and implementation code, do so now. llvm-svn: 4250
* 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. llvm-svn: 4249
* Fix a confusing bug that caused return value and callee pointers to notChris Lattner2002-10-211-0/+10
| | | | | | be printed! llvm-svn: 4248
* Remove some unneccesary 'using' directivesChris Lattner2002-10-212-6/+4
| | | | llvm-svn: 4246
* Fix bug with prior checkinChris Lattner2002-10-211-2/+2
| | | | llvm-svn: 4242
* - Make DSCallSite not inherit from std::vector. Renamed methods slightly.Chris Lattner2002-10-216-64/+95
| | | | | | | | 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 copyChris Lattner2002-10-201-2/+1
| | | | llvm-svn: 4239
* Simplify code a bit, add comment flyerChris Lattner2002-10-201-10/+11
| | | | llvm-svn: 4238
* Split some long linesChris Lattner2002-10-201-3/+4
| | | | llvm-svn: 4237
* Remove spurious caller pointer in DSCallSite.Vikram S. Adve2002-10-205-23/+32
| | | | | | Also add functions to access pointer argument nodes cleanly. llvm-svn: 4235
OpenPOWER on IntegriCloud