Chris Lattner
74911ffd6b
Add a new analysis
...
llvm-svn: 12619
2004-04-02 20:23:17 +00:00
Chris Lattner
c0fede30c5
Make the verifier API more complete and useful
...
llvm-svn: 12608
2004-04-02 15:44:33 +00:00
Chris Lattner
6a3efa7a38
Tweak argument
...
llvm-svn: 12412
2004-03-15 04:08:18 +00:00
Chris Lattner
a546ebb664
Deinline a couple of methods. Improve comment.
...
llvm-svn: 12411
2004-03-15 04:07:59 +00:00
Chris Lattner
275dd432ab
Add two new methods which can be used to enable a bunch of transformations
...
in common cases.
llvm-svn: 12407
2004-03-15 01:58:54 +00:00
Misha Brukman
6ed546e3d2
Doxygenified and cleand up comments.
...
llvm-svn: 12294
2004-03-11 23:08:20 +00:00
Chris Lattner
2fef10e580
new method
...
llvm-svn: 12263
2004-03-09 19:36:59 +00:00
Chris Lattner
bf888377d5
Switch over to using edge profile information as the basic profiling representation,
...
from basic block counts.
llvm-svn: 12241
2004-03-08 22:03:45 +00:00
Chris Lattner
3b0551752b
We don't want to make this a pure interface, as it makes all implementors
...
bear the burden of implementing what will be all exactly the same methods.
They just want to provide the information in differing ways.
llvm-svn: 12239
2004-03-08 21:30:18 +00:00
Chris Lattner
09255cd709
Rearrange some methods, implement the dominates method
...
llvm-svn: 12237
2004-03-08 21:07:12 +00:00
Chris Lattner
91ea0d3176
Import the trace class from the reoptimizer
...
llvm-svn: 12236
2004-03-08 20:57:27 +00:00
Chris Lattner
525635b764
Add support for representing edge counts
...
llvm-svn: 12228
2004-03-08 18:19:37 +00:00
Chris Lattner
fb8eb94027
Rename method, add new method
...
llvm-svn: 12103
2004-03-03 22:00:20 +00:00
Chris Lattner
43d5238d45
De-inline methods
...
llvm-svn: 12101
2004-03-03 20:55:15 +00:00
Chris Lattner
ed70152b7d
Add new method
...
llvm-svn: 12056
2004-03-01 19:36:50 +00:00
Chris Lattner
176413cedb
Fix the "partial pool allocator" on em3d and others. The problem is that
...
DSNodes, unlike other GraphTraits nodes, can have null outgoing edges, and
df_iterator doesn't take this into consideration. As a workaround, the
successor iterator now handles null nodes and 'indicates' that null has
no successors.
llvm-svn: 12025
2004-03-01 01:42:26 +00:00
Misha Brukman
13230a9e07
Doxygenify comments.
...
llvm-svn: 12015
2004-02-29 23:55:11 +00:00
Chris Lattner
7906b0bc03
Update comments and add warning
...
llvm-svn: 11691
2004-02-21 22:27:20 +00:00
Chris Lattner
1316ee07fa
Add a method useful for updating DSA
...
llvm-svn: 11636
2004-02-19 21:27:50 +00:00
Chris Lattner
19d997875e
Add an important prototype
...
llvm-svn: 11320
2004-02-11 06:11:06 +00:00
Chris Lattner
427c8ee657
Factor this code out of llvm-prof
...
llvm-svn: 11314
2004-02-11 05:54:25 +00:00
Chris Lattner
a81258a786
An initial implementation of an LLVM ProfileInfo class which is designed to
...
eventually allow Passes to use profiling information to direct them.
llvm-svn: 11294
2004-02-10 22:11:42 +00:00
Chris Lattner
b38552cf42
Remove some unneeded stuff
...
llvm-svn: 11286
2004-02-10 21:19:49 +00:00
Chris Lattner
32a3eb0b88
Substantially improve the DSA code by removing 'forwarding' nodes from
...
DSGraphs while they are forwarding. When the last reference to the forwarding
node is dropped, the forwarding node is autodeleted. This should simplify
removeTriviallyDead nodes, and is only (efficiently) possible because we are
using an ilist of dsnodes now.
llvm-svn: 11175
2004-02-08 01:27:18 +00:00
Chris Lattner
29067016a4
Switch the Nodes list from being an std::vector<DSNode*> to an ilist<DSNode>
...
llvm-svn: 11173
2004-02-08 00:53:26 +00:00
Chris Lattner
e78429de24
Change to use iterators instead of direct access
...
llvm-svn: 11170
2004-02-08 00:22:41 +00:00
Chris Lattner
48a0d7e1c0
Abstract out the Nodes collection. Instead of providing a getNodes() method,
...
provide node_begin/end iterators, which are only guaranteed to be
bidirectional, not random access.
llvm-svn: 11165
2004-02-07 23:57:09 +00:00
Chris Lattner
2199bb0c7a
Actually USE isForwarding method
...
llvm-svn: 11160
2004-02-07 23:02:32 +00:00
Chris Lattner
6337300b83
As Alkis pointed out to me, I forgot to commit this... :(
...
llvm-svn: 11159
2004-02-07 22:54:19 +00:00
Chris Lattner
bb4d6f00f9
Add a new pointsToConstantMemory method to the AliasAnalysis interface
...
which can be implemented to improve the quality of mod-ref information.
llvm-svn: 11020
2004-01-30 22:15:41 +00:00
Misha Brukman
64f7595915
Doxygenify comments.
...
llvm-svn: 11014
2004-01-30 17:22:50 +00:00
Chris Lattner
fc239578ad
Keep track of all of the globals inserted into the scalar map
...
llvm-svn: 10995
2004-01-28 03:01:22 +00:00
Chris Lattner
268db40292
Pull the ScalarMap out into something that is more structured than what we had
...
before. This allows us to have a place to implement optimizations in a
structured way.
llvm-svn: 10994
2004-01-28 02:42:12 +00:00
Chris Lattner
2ead39d5c8
Minor tweaks
...
llvm-svn: 10983
2004-01-27 21:49:42 +00:00
Chris Lattner
16a5e6bf33
Add comments, allow DSNode "copy ctor" to ignore outgoing links, add more
...
structured access to the globals list, add a couple helper methods.
llvm-svn: 10982
2004-01-27 21:49:25 +00:00
Chris Lattner
95d03595ae
* cloneReachable* and clonePartiallyInto are not obsolete
...
* Make AssertNodeInGraph not be HORRIBLY time consuming
* Eliminate the dead mergeInGlobalsGraph method
*** Add the definition for the new ReachabilityCloner class
llvm-svn: 10981
2004-01-27 21:48:35 +00:00
Chris Lattner
de6ca7bf30
Add new flag, other minor modifications
...
llvm-svn: 10969
2004-01-23 01:42:32 +00:00
Chris Lattner
99f9b84640
Fix grammar
...
llvm-svn: 10968
2004-01-23 01:42:16 +00:00
Chris Lattner
a72f3a387a
Eliminated the CompletedNodes argument to the cloneReachable* methods. This
...
map was only used to implement a marginal GlobalsGraph optimization, and it
actually slows the analysis down (due to the overhead of keeping it), so just
eliminate it entirely.
llvm-svn: 10955
2004-01-22 16:56:13 +00:00
Chris Lattner
7348bd20b1
It doesn't make sense for one side to be const, but not the other.
...
llvm-svn: 10952
2004-01-22 16:08:51 +00:00
Chris Lattner
5f0e00c8b2
Remove const qualifier (all Value*'s are nonconst in DSA, so it's not clear
...
why this one was)
Add new method proto
llvm-svn: 10950
2004-01-22 15:26:52 +00:00
Chris Lattner
f2a7d96dde
Specialize std::swap correctly
...
llvm-svn: 10949
2004-01-22 15:26:15 +00:00
Chris Lattner
3910d21d01
Move SlotCalculator.h from include/llvm to include/llvm/Analysis
...
llvm-svn: 10930
2004-01-20 19:50:12 +00:00
Chris Lattner
1736f44b1d
Improve encapsulation in the Loop and LoopInfo classes by eliminating the
...
getSubLoops/getTopLevelLoops methods, replacing them with iterator-based
accessors.
llvm-svn: 10714
2004-01-08 00:09:44 +00:00
Chris Lattner
6ecac445aa
Rename ClassifyExpression -> ClassifyExpr
...
llvm-svn: 10591
2003-12-23 08:03:40 +00:00
Chris Lattner
ddc02fd15d
fix grammao
...
llvm-svn: 10576
2003-12-22 04:08:12 +00:00
Chris Lattner
457dd0b6c7
Add a new AliassetTracker::remove method. Because we need to be able to remove
...
a pointer from an AliasSet, maintain the pointer values on a doubly linked
list instead of a singly linked list, to permit efficient removal from the
middle of the list.
llvm-svn: 10506
2003-12-18 08:11:56 +00:00
Chris Lattner
69a2e9985d
Add capability to represent volatile AliasSet's
...
llvm-svn: 10456
2003-12-14 04:51:34 +00:00
Brian Gaeke
9b3f9806a2
IncludeFile hack to pull in BasicValueNumbering whenever ValueNumbering.h
...
is included.
llvm-svn: 10397
2003-12-11 05:05:56 +00:00
Brian Gaeke
045d32a78d
IncludeFile hack to pull in BasicAliasAnalysis whenever AliasAnalysis.h
...
is included.
llvm-svn: 10396
2003-12-11 05:05:02 +00:00