Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Tracker SCM

SCM Repository

[smlnj] View of /sml/trunk/src/MLRISC/mltree/rtl-props.sig
ViewVC logotype

View of /sml/trunk/src/MLRISC/mltree/rtl-props.sig

Parent Directory Parent Directory | Revision Log Revision Log


Revision 641 - (download) (as text) (annotate)
Thu May 11 01:16:45 2000 UTC (22 years, 4 months ago) by leunga
File size: 1471 byte(s)

    Various bug fixes and new features for C--, Moby and MLRISC optimizations.
    See smlnj/HISTORY for details.  CVS tag: leunga-20000510-moby-c--ssa
(*
 * Extract properties from RTLs
 *)
signature RTL_PROPERTIES =
sig

   structure I   : INSTRUCTIONS
   structure C   : CELLS
   structure RTL : MLTREE_RTL
   structure T   : MLTREE
      sharing I.C   = C
      sharing RTL.T = T

   datatype opnkind = 
     IMM (* immed value *)
   | REG (* normal register *)
   | FIX (* fixed register *)
   | MEM (* memory *)
   | CTRL (* control dependence *)

   (* Return the RTL describing the semantics of an instruction *)
   val rtl : I.instruction -> RTL.rtl  

   (* Return the def/use of an instruction.  *) 
   val defUse : { immed   : int -> C.cell, 
                  operand : I.operand -> C.cell
                } -> 
                I.instruction -> C.cell list * C.cell list (* dst/src *)

   (* Return the def/use of an instruction with cellkind information 
    * This function works the same way as the above.  But with cellkind
    * information attached.
    *) 
   val defUseWithCellKind : 
                { immed   : int -> C.cell, 
                  operand : I.operand -> C.cell
                } -> 
                I.instruction -> 
                (C.cell * C.cellkind) list * (C.cell * C.cellkind) list 


   (* Return the operand kinds of an instruction. *)
   val opnKind : I.instruction -> opnkind list * opnkind list (* dst/src *)

   (* Initialize the cellkinds of variables *)
   val updateCellKind : {update:C.cell * C.cellkind -> unit} -> 
                        I.instruction -> unit

end


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