Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/src/MLRISC/flowgraph/cfg.sig
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/flowgraph/cfg.sig

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 983, Wed Nov 21 18:44:55 2001 UTC revision 984, Wed Nov 21 19:00:08 2001 UTC
# Line 24  Line 24 
24       | NORMAL         (* normal node *)       | NORMAL         (* normal node *)
25       | HYPERBLOCK     (* hyperblock *)       | HYPERBLOCK     (* hyperblock *)
26    
    and data = LABEL  of Label.label  
             | PSEUDO of P.pseudo_op  
   
27     (*     (*
28      * NOTE: the instructions are listed in reverse order.      * NOTE 1: the instructions are listed in reverse order.
29      * This choice is for a few reasons:      * This choice is for a few reasons:
30      *      *
31      * i)  Clusters represent instructions in reverse order, so keeping this      * i)  Clusters represent instructions in reverse order, so keeping this
# Line 39  Line 36 
36      *      *
37      * iii) This also makes it easier to manipulate the branch/jump instruction      * iii) This also makes it easier to manipulate the branch/jump instruction
38      *      at the end of the block.      *      at the end of the block.
39        *
40        * NOTE 2:
41        *  Alignment always appear before labels in a block.
42      *)      *)
43    
44     and block =     and block =
# Line 46  Line 46 
46        {  id          : int,                        (* block id *)        {  id          : int,                        (* block id *)
47           kind        : block_kind,                 (* block kind *)           kind        : block_kind,                 (* block kind *)
48           freq        : weight ref,                 (* execution frequency *)           freq        : weight ref,                 (* execution frequency *)
          data        : data list ref,              (* data preceeding block *)  
49           labels      : Label.label list ref,       (* labels on blocks *)           labels      : Label.label list ref,       (* labels on blocks *)
50           insns       : I.instruction list ref,     (* in rev order *)           insns       : I.instruction list ref,     (* in rev order *)
51             align       : P.pseudo_op option ref,     (* alignment only *)
52           annotations : Annotations.annotations ref (* annotations *)           annotations : Annotations.annotations ref (* annotations *)
53        }        }
54    
# Line 72  Line 72 
72     datatype info =     datatype info =
73         INFO of { annotations : Annotations.annotations ref,         INFO of { annotations : Annotations.annotations ref,
74                   firstBlock  : int ref, (* id of first block *)                   firstBlock  : int ref, (* id of first block *)
75                   reorder     : bool ref (* has the CFG been reordered? *)                   reorder     : bool ref, (* has the CFG been reordered? *)
76                     data        : P.pseudo_op list ref (* reverse order of generation *)
77                 }                 }
78    
79     type cfg = (block,edge_info,info) Graph.graph     type cfg = (block,edge_info,info) Graph.graph

Legend:
Removed from v.983  
changed lines
  Added in v.984

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0