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

SCM Repository

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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 591 - (download) (as text) (annotate)
Mon Apr 3 01:19:20 2000 UTC (19 years, 8 months ago) by leunga
File size: 1701 byte(s)

   1. Renamed the constructor CALL in MLTREE by popular demand.
   2. Added a bunch of files from my repository.  These are currently
      used by other non-SMLNJ backends.
(*
 * How to represent an RTL
 *)
signature MLTREE_RTL =
sig
   structure Basis : MLTREE_BASIS
   structure Region : REGION
   structure RTLExt : sig
       datatype  ('s,'r,'f,'c) sx = 
          ASSIGN of 'r loc * 'r
       |  PAR of 's * 's  

       and ('s,'r,'f,'c) rx = 
          FORALL of 'r
       |  FETCH  of 'r loc
       |  ARG    of string * string
       |  OP     of Basis.misc_op ref * 'r list
       |  SLICE  of {from:'r, to:'r} list * Basis.ty * 'r 

       and  'r loc  = AGG of Basis.ty * endian * 'r cell

       and  'r cell = CELL of string * Basis.ty * 'r * 'r 

       and   endian = LITTLE_ENDIAN | BIG_ENDIAN

       and  ('s,'r,'f,'c) fx = FX
       and  ('s,'r,'f,'c) ccx = CCX
   end

   structure T : MLTREE
   structure Util : MLTREE_UTILS 
      sharing Util.T = T
      sharing RTLExt = T.Extension
      sharing Basis  = T.Basis
      sharing T.Region = Region

   datatype rtlOp     = datatype RTLExt.rx
   datatype rtlAction = datatype RTLExt.sx
   datatype rtlCell   = datatype RTLExt.cell
   datatype rtlLoc    = datatype RTLExt.loc
   datatype rtlEndian = datatype RTLExt.endian

   type action = T.stm
   type rtl    = action
   type exp    = T.rexp
   type cond   = T.ccexp
   type loc    = T.rexp rtlLoc
   type cell   = T.rexp rtlCell
   type ty     = T.ty

   val hashRTL : action -> word
   val eqRTL  : action * action -> bool
   val showRTL : (string list * string list) -> T.printer
   val new    : action -> rtl 
   val newOp  : {name:string, attribs:T.Basis.attribs} -> T.Basis.misc_op ref

   val COPY   : rtl
   val JMP    : rtl 

   val can'tMoveUp    : rtl -> bool
   val can'tMoveDown  : rtl -> bool
   val hasSideEffect  : rtl -> bool

end 

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