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 1162, Fri Mar 22 15:16:46 2002 UTC revision 1174, Sat Mar 23 21:14:40 2002 UTC
# Line 121  Line 121 
121     *  Methods for manipulating basic blocks     *  Methods for manipulating basic blocks
122     *     *
123     *========================================================================*)     *========================================================================*)
124     val newBlock          : int * weight ref -> block    (* empty *)     val newBlock          : int * weight ref -> block    (* new empty block *)
125       val newNode           : cfg -> weight -> node        (* new empty block hooked *)
126                                                            (* into the cfg *)
127     val newStart          : int * weight ref -> block    (* start node *)     val newStart          : int * weight ref -> block    (* start node *)
128     val newStop           : int * weight ref -> block    (* stop node *)     val newStop           : int * weight ref -> block    (* stop node *)
129     val copyBlock         : int * block -> block         (* copy a block *)     val copyBlock         : int * block -> block         (* copy a block *)
# Line 224  Line 226 
226         *     i_n2 -> k_n         *     i_n2 -> k_n
227         *        ...         *        ...
228         *         *
229         *  and k_1 -> k_2         *  and the chain
230           *      k_1 -> k_2
231         *      k_2 -> k_3         *      k_2 -> k_3
232         *        ...         *        ...
233         *      k_n -> j         *      k_n -> j
234         *         *
235           *  where k_1, ..., k_n are new basic blocks.
236           *
237         *  Return the new edges         *  Return the new edges
238         *       k_1->j,...,k_n -> j         *       k_1-> k_2, ..., k_n -> j
239         *         *
240         *  and the new blocks         *  and the new blocks
241         *       k_1, ..., k_n.         *       k_1, ..., k_n.
# Line 243  Line 248 
248     val splitEdges : cfg ->     val splitEdges : cfg ->
249                      { groups : (edge list *                      { groups : (edge list *
250                                  I.instruction list (* reverse order *)                                  I.instruction list (* reverse order *)
251                                 ) list,  (* i_11 -> j, ..., i_n1 -> j *)                                 ) list,
252                        jump : bool                        jump : bool
253                      } -> (node * edge) list  (* k_i and k_i -> j *)                      } -> (node * edge) list  (* k_i and k_i -> k_{i+1} *)
254    
255         (*         (*
256          *  Test if an edge is critical.  An edge i->j is critical iff          *  Test if an edge is critical.  An edge i->j is critical iff

Legend:
Removed from v.1162  
changed lines
  Added in v.1174

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