422 Commits

Author SHA1 Message Date
Chris Lattner
facce8e131 Implement methods needed to print out call graph
llvm-svn: 4522
2002-11-04 02:53:39 +00:00
Chris Lattner
aaf17e11b1 Allow the call graph to be called from analyze naturally with print implemented
llvm-svn: 4517
2002-11-04 00:21:19 +00:00
Chris Lattner
8d63aab886 Rename ValueMap to ScalarMap
llvm-svn: 4516
2002-11-03 21:27:48 +00:00
Chris Lattner
0ee058644e Rename NewNode flag to HeapNode
llvm-svn: 4515
2002-11-03 21:24:04 +00:00
Misha Brukman
4e272d8fd9 Fixed comment on top of DSNode.h, added note to DSSupport.h as to why
functions were split out from DSNode class.

llvm-svn: 4509
2002-11-02 21:18:53 +00:00
Chris Lattner
702ac95902 Implement the "unknown flag" which mainly consists of aligning printing code
llvm-svn: 4490
2002-11-02 00:36:03 +00:00
Chris Lattner
f76aa218db * Eliminate Scalar node type (renumber other node types)
* Allow DSNodeHandle::mergeWith to work if a node handle isn't pointing to a node yet

llvm-svn: 4487
2002-11-02 00:11:12 +00:00
Chris Lattner
e0a3be0bb7 Eliminate some unneccesary #includes and forward decls
llvm-svn: 4475
2002-10-31 21:24:10 +00:00
Misha Brukman
cd6a3b2f2c Refactored DSGraph.h:
* DSGraph.h   contains DSGraph
* DSNode.h    contains DSNode (soon UDSNode and MDSNode)
* DSSupport.h contains DSCallsite, DSTypeRec, and DSNodeHandler

llvm-svn: 4466
2002-10-31 06:34:18 +00:00
Chris Lattner
317daff9bf This fixes all kinds of problems with array handling. There are still bugs to
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
2002-10-31 05:45:02 +00:00
Chris Lattner
2e98413a27 Add interface to update domfrontier info, thanks to Casey Carter for impl
llvm-svn: 4456
2002-10-31 02:39:48 +00:00
Misha Brukman
453ccb15f5 Fixed spelling of `propagation'.
llvm-svn: 4422
2002-10-29 22:55:11 +00:00
Chris Lattner
a7e9d3e90f Don't #include <Support/*>, #include "Support/*"
llvm-svn: 4325
2002-10-28 02:11:53 +00:00
Chris Lattner
8f38efd9dd Add #include
llvm-svn: 4291
2002-10-27 19:08:03 +00:00
Chris Lattner
58781838b7 We need to know the call sites each function hosts
llvm-svn: 4258
2002-10-22 15:58:23 +00:00
Chris Lattner
535d54ef22 Allow modification of callee
llvm-svn: 4257
2002-10-22 15:57:58 +00:00
Chris Lattner
1157e5dafb Delete unused arguments to DSGraph::cloneInto method
llvm-svn: 4253
2002-10-21 19:50:29 +00:00
Chris Lattner
4410178282 - Add "ResolvingCaller" to the CallSite record. This keeps track of which
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
2002-10-21 19:47:18 +00:00
Chris Lattner
7588e35aa8 Add another copy ctor form
llvm-svn: 4251
2002-10-21 15:32:34 +00:00
Chris Lattner
1276c50e7b As it turns out, we don't need a fully generic mapping copy ctor, we just need
something that maps through a std::map.  Since this simplified the client and
implementation code, do so now.

llvm-svn: 4250
2002-10-21 15:04:18 +00:00
Chris Lattner
f8b59c1c75 Make sure to initialize isArray member
llvm-svn: 4247
2002-10-21 13:38:07 +00:00
Chris Lattner
ca982e6b42 Two callsites are equivalent even if they are from two completely different
call instructions

llvm-svn: 4241
2002-10-21 02:09:03 +00:00
Chris Lattner
2914391ab6 - Make DSCallSite not inherit from std::vector. Renamed methods slightly.
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
2002-10-21 02:08:03 +00:00
Vikram S. Adve
85a358583f Remove spurious caller pointer in DSCallSite.
Also add functions to access pointer argument nodes cleanly.

llvm-svn: 4235
2002-10-20 21:41:02 +00:00
Chris Lattner
9c264543b5 Add isArray flag
llvm-svn: 4230
2002-10-20 20:28:35 +00:00
Vikram S. Adve
32689f8214 Added a first-class representation for each call site that can be
used in the DS graphs in DSGraph.h.  With that, the special-purpose
class BUDataStructure::CallSite is no longer needed here.

llvm-svn: 4229
2002-10-20 18:08:55 +00:00
Vikram S. Adve
2a6ec82970 Added a first-class representation for each call site that can be used
in the DS graphs.

llvm-svn: 4227
2002-10-20 18:04:43 +00:00
Chris Lattner
efc251af3d Convert typerec to be a structure instead of a pair
llvm-svn: 4226
2002-10-18 18:22:46 +00:00
Chris Lattner
d9b76794a0 Add interface for mod/ref info to be captures by dsgraphs
llvm-svn: 4222
2002-10-17 21:03:49 +00:00
Chris Lattner
68ac171c62 * Add data structures to BU pass to keep track of call sites for functions
* Reenable the TD analysis

llvm-svn: 4212
2002-10-17 04:23:05 +00:00
Chris Lattner
bb28060fb4 * Remove a lot of obsolete #if 0'd code
* Add a simple getNodeForValue method to access the ValueMap.

llvm-svn: 4211
2002-10-17 04:22:16 +00:00
Chris Lattner
80332e579c Use the forward declaration for GraphTraits instead of #including
the header

llvm-svn: 4210
2002-10-17 01:36:08 +00:00
Chris Lattner
df9733a0a1 Be const correct. Handle both DSGraph* and const DSGraph*'s
llvm-svn: 4208
2002-10-17 01:01:06 +00:00
Joel Stanley
128e78631f Added partial specialization of GraphTraits for the DominatorTree class.
llvm-svn: 4205
2002-10-16 23:26:00 +00:00
Chris Lattner
3702063ff3 The second element of the iterator is really an offset, not a link
llvm-svn: 4196
2002-10-16 01:43:11 +00:00
Chris Lattner
d135a2b550 Allow direct access to mergemap for printing
llvm-svn: 4191
2002-10-16 01:17:16 +00:00
Chris Lattner
54905ed38c First crack at reimplementing graph traits for DSGraphs
llvm-svn: 4145
2002-10-13 19:31:34 +00:00
Misha Brukman
b4940744de Added capability to get execution count of a loop if it is a predictable
number of iterations.

llvm-svn: 4113
2002-10-11 05:34:32 +00:00
Misha Brukman
d55cfa6b94 Added helper functions in LoopInfo: isLoopExit and numBackEdges.
llvm-svn: 4112
2002-10-11 05:31:10 +00:00
Chris Lattner
cbfb5d1eca Change reference
llvm-svn: 4110
2002-10-10 22:31:02 +00:00
Chris Lattner
2fd0924282 Rename DataStructureGraph.h to DSGraphTraits.h
llvm-svn: 4107
2002-10-10 20:36:37 +00:00
Chris Lattner
b9f59f1533 Expose new "recalculate" method from dominatorset
llvm-svn: 4074
2002-10-08 19:12:08 +00:00
Chris Lattner
bcb0197fe3 Remove commented out stuff
DataStructure.h doesn't include DSGraph.h now

llvm-svn: 4028
2002-10-02 22:14:17 +00:00
Chris Lattner
668457ea05 Move GlobalDSGraph class defn to the end of the file
llvm-svn: 4027
2002-10-02 21:55:52 +00:00
Chris Lattner
801fcdd060 This file doesn't need Pass.h
llvm-svn: 4026
2002-10-02 21:55:24 +00:00
Chris Lattner
858642be4c * Implement fully general merging of array subscripts on demand! This
does not handle the initial pointer index case yet though.

llvm-svn: 4011
2002-10-02 06:24:29 +00:00
Chris Lattner
0851fb32b7 Checkin the "meat" of the Data structure graph itself. I forgot to check
this in before.  :(

llvm-svn: 4009
2002-10-02 04:58:12 +00:00
Chris Lattner
7f0db9917a Check in DataStructure rewrite so far.
llvm-svn: 3998
2002-10-01 22:34:45 +00:00
Chris Lattner
5c3fdd02af Simplify code a bit, add an assertion
llvm-svn: 3974
2002-09-29 21:37:08 +00:00
Chris Lattner
a9bc408104 First try at implementing the AliasSetTracker class. I'm sure it will need
revision as I start to use it though.

llvm-svn: 3954
2002-09-26 21:49:07 +00:00