Chris Lattner
e33b796851
Add more graph traits specializations for dominator tree nodes
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5751 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-20 21:21:05 +00:00
Chris Lattner
b75f9dda9e
Add a few new 'add' methods. Move the iterator around
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5690 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 23:27:52 +00:00
Chris Lattner
af68ccefeb
Don't apply type information to loads
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5683 91177308-0d34-0410-b5e6-96231b3b80d8
2003-03-03 17:13:22 +00:00
Chris Lattner
f972cbd98c
Add dump method for loops
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5670 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-28 16:54:37 +00:00
Chris Lattner
1db0a40037
Add graph traits specializations for loop nesting information...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5666 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-28 03:05:15 +00:00
Chris Lattner
6bc4281336
Add new Loop::hasExitBlock helper method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5663 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 22:48:28 +00:00
Chris Lattner
f2e2925f95
Change behavior of changeExitBlock function to replace all instances of exit block
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5661 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 22:37:44 +00:00
Chris Lattner
ef05100950
Make the interface to update a little more efficient
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5651 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 20:24:17 +00:00
Chris Lattner
fe3ae1ed66
* LoopInfo now keeps track of exit blocks from the loop
...
* New LoopInfo::isLoopHeader method
* Remove some #if 0 code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5649 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-27 00:37:22 +00:00
Chris Lattner
31a9d185bf
Make the aliassettracker much more precise by actually tracking size
...
information for various accesses. What a concept.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5647 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 22:11:00 +00:00
Chris Lattner
f8783fadb4
BasicAA doesn't need a public header
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5639 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:41:46 +00:00
Chris Lattner
13b6f22f04
Tweak to work with new AA implementation
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5632 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:25:04 +00:00
Chris Lattner
1c56b730a6
Checkin of new alias analysis interface:
...
* Takes into account the size of the memory reference to determine aliasing.
* Expose mod/ref information in a more consistent way
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5631 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-26 19:24:47 +00:00
Chris Lattner
9971ac4a36
This is a substantial rewrite of the AliasSetTracker class which now uses
...
a union-find based algorithm, is significantly faster, and is more general.
It will also scale to handle call instructions correctly, which is a nice
added bonus.
This includes a new pass -print-alias-sets which can be used to show how
alias sets are formed for a particular analysis.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5619 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-24 20:37:56 +00:00
Chris Lattner
731b2d7df5
Move node forwarding code from being inlined to being out-of-line.
...
This brings a 11.6% speedup to steens, and a 3.6 overall speedup to ds-aa
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5552 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-13 19:09:00 +00:00
Chris Lattner
72d29a4b00
Implement a "union-findy" version of DS-Analysis, which eliminates the
...
Referrers list on DSNodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5536 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-11 23:11:51 +00:00
Chris Lattner
d3c2e3237c
Fix uninitialized member problem
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5534 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-11 06:36:00 +00:00
Chris Lattner
1fcc101b1c
Bugfix for calling dump() after the links vector has been cleared
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5533 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10 22:46:47 +00:00
Chris Lattner
ed14f8283a
Move getNode() out of line
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5531 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10 18:19:41 +00:00
Chris Lattner
c40c905d63
Implement a new method "viewGraph" which can be used to instantly view a graph from GDB.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5529 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-10 18:17:38 +00:00
Chris Lattner
d4aabcb0d0
TD Pass now does not cause globals to mark nodes incomplete.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5512 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-09 18:40:25 +00:00
Chris Lattner
923fc05b3a
Implement optimization for direct function call case. This dramatically
...
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
2003-02-05 21:59:58 +00:00
Chris Lattner
f52ade928c
Add sanity check
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5489 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-04 00:03:57 +00:00
Chris Lattner
4923d1be91
Hack to work around deficiency in pass infrastructure
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5485 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 22:51:28 +00:00
Chris Lattner
5a939029d5
Eliminate unused resolving caller stuff
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5475 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 19:11:04 +00:00
Chris Lattner
f9962812d0
* Add a bunch of stuff for checking the integrity of the graph
...
* remove the isNodeDead method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5474 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-03 19:10:24 +00:00
Chris Lattner
41c04f730b
Change DSGraph stuff to use hash_(set|map) instead of std::(set|map)
...
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
2003-02-01 04:52:08 +00:00
Chris Lattner
cb98327142
Add new composition mask
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5454 91177308-0d34-0410-b5e6-96231b3b80d8
2003-02-01 03:28:26 +00:00
Chris Lattner
9e4b15b1a1
New API for traversing graph
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5430 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-29 21:09:59 +00:00
Chris Lattner
381977d191
* Eliminate boolean arguments in favor of using enums
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5420 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-23 22:06:33 +00:00
Chris Lattner
9f2b7ffe05
Move to include/llvm/CodeGen
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5285 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 23:05:31 +00:00
Chris Lattner
8143d8f91a
Move llvm/Analysis/LiveVar/ValueSet.h to CodeGen/ValueSet.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5282 91177308-0d34-0410-b5e6-96231b3b80d8
2003-01-14 22:56:37 +00:00
Chris Lattner
c2799163e2
Make a release build compile. This field is not really an enum, it's really a bitfield
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4971 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-12 05:31:26 +00:00
Misha Brukman
95c3d0e0fa
No need to specify the class if the method is within the class declaration.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4969 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-12 05:28:39 +00:00
Vikram S. Adve
0d4f76637d
Iterator that enumerates the ProgramDependenceGraph (PDG) for a function,
...
i.e., enumerates all data and control dependences for the function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4958 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 14:13:19 +00:00
Vikram S. Adve
96b21c1054
An explicit representation of dependence graphs, and a pass that
...
computes a dependence graph for data dependences on memory locations
using interprocedural Mod/Ref information.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4957 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-08 13:26:29 +00:00
Vikram S. Adve
44974dcdeb
Stronger assertion in getNodeId(): node id must exist in the map.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4949 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 21:19:07 +00:00
Vikram S. Adve
10afe022c5
Added static helper method MergeNodes(). See DataStructure.cpp for more.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4946 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 21:10:17 +00:00
Chris Lattner
196cee2dba
Make sure to print indirect node again
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4943 91177308-0d34-0410-b5e6-96231b3b80d8
2002-12-06 06:40:00 +00:00
Vikram S. Adve
e127a14991
Added flags to CloneFlags to strip/keep Mod/Ref bits when cloning a graph.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4835 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-27 17:39:37 +00:00
Vikram S. Adve
f443e6698f
No longer need local graph to find call sites.
...
Also some major fixes within IPModRef.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4834 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-27 17:38:56 +00:00
Chris Lattner
a1cf699b50
Inline DSTypeRec stuff into DSNode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4751 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-18 21:45:30 +00:00
Chris Lattner
686a6f5c13
Inline DSTypeRec into DSNode
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4750 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-18 21:45:07 +00:00
Chris Lattner
c59a1ba33b
Templatize graph traits and iterator to work with const and non-const clients
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4746 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-18 21:42:19 +00:00
Chris Lattner
e9c04aedca
Omit the indirect node when printing call graphs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4733 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-17 23:10:27 +00:00
Chris Lattner
21f3663c06
Remove dead method, add new method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4700 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-12 15:57:28 +00:00
Chris Lattner
cf69bb494a
Almost complete rewrite of BU closure code
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4693 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-11 21:34:34 +00:00
Chris Lattner
947b10c167
add method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4686 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 23:47:02 +00:00
Chris Lattner
b0dfcbf584
Add code to be able to merge two call sites
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4685 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 23:46:51 +00:00
Chris Lattner
8013f9eb65
Add hasGraph() methods to all of the passes for the printer
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4676 91177308-0d34-0410-b5e6-96231b3b80d8
2002-11-10 06:53:19 +00:00