Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/pure-cfg/src/compiler/codegen/target-sig.sml
ViewVC logotype

Diff of /branches/pure-cfg/src/compiler/codegen/target-sig.sml

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

revision 517, Thu Feb 10 11:45:00 2011 UTC revision 518, Thu Feb 10 17:38:35 2011 UTC
# Line 13  Line 13 
13      type strand      type strand
14      type var      type var
15      type exp      type exp
     type cond  
16      type stm      type stm
17      type method      type method
18        type ty
19    
20      (* the maximum width of a vector of reals on the target.  This value takes into
21       * account the actual size of reals (i.e., 32 or 64 bits).
22       *)
23        val vectorWidth : unit -> int
24    
25      (* target types *)
26        val boolTy : ty
27        val intTy : ty
28        val realTy : ty
29        val vecTy : int -> ty
30        val ivecTy : int -> ty
31    
32      val defineStrand : program * string -> strand      val defineStrand : program * string -> strand
     val tmpVar : unit -> var  
33    
34      structure Var : sig      structure Var : sig
35          val global : program * string -> var          val global : program * ty * string -> var
36          val state : strand * string -> var          val state : strand * ty * string -> var
37          val tmpVar : unit -> var          val tmp : ty -> var
38        end        end
39    
40    (* expression construction *)    (* expression construction *)
# Line 54  Line 65 
65          val length : exp -> exp                 (* vector length *)          val length : exp -> exp                 (* vector length *)
66          val normalize : exp -> exp              (* normalize vector *)          val normalize : exp -> exp              (* normalize vector *)
67        (* comparisons *)        (* comparisons *)
68            val lt : exp * exp -> exp
69            val lte : exp * exp -> exp
70            val equ : exp * exp -> exp
71            val neq : exp * exp -> exp
72            val gte : exp * exp -> exp
73            val gt : exp * exp -> exp
74          (* logical connectives *)
75            val not : exp -> exp
76            val && : exp * exp -> exp
77            val || : exp * exp -> exp
78          (* misc functions *)
79          val min : exp * exp -> exp          val min : exp * exp -> exp
80          val max : exp * exp -> exp          val max : exp * exp -> exp
81        (* math functions *)        (* math functions *)
# Line 71  Line 93 
93          val truncToInt : exp -> exp             (* truncate real to inte *)          val truncToInt : exp -> exp             (* truncate real to inte *)
94          val ceilToInt : exp -> exp              (* ceiling of real to int *)          val ceilToInt : exp -> exp              (* ceiling of real to int *)
95          val floorToInt : exp -> exp             (* floor of real to int *)          val floorToInt : exp -> exp             (* floor of real to int *)
96        end        (* runtime system hooks *)
97            val imageAddr : exp -> exp              (* based address of image data *)
   (* conditionals *)  
     structure Cond : sig  
         val var : var -> cond  
       (* comparisons *)  
         val lt : exp * exp -> cond  
         val lte : exp * exp -> cond  
         val equ : exp * exp -> cond  
         val neq : exp * exp -> cond  
         val gte : exp * exp -> cond  
         val gt : exp * exp -> cond  
       (* logical connectives *)  
         val not : cond -> cond  
         val && : cond * cond -> cond  
         val || : cond * cond -> cond  
98        end        end
99    
100    (* statement construction *)    (* statement construction *)
# Line 94  Line 102 
102          val comment : string list -> stm          val comment : string list -> stm
103          val assignState : var * exp -> stm          val assignState : var * exp -> stm
104          val assign : var * exp -> stm          val assign : var * exp -> stm
105          val assignb : var * cond -> stm          val assignb : var * exp -> stm
106          val block : stm list -> stm          val block : stm list -> stm
107          val ifthenelse : cond * stm * stm -> stm          val ifthenelse : exp * stm * stm -> stm
108          val die : unit -> stm          val die : unit -> stm
109          val stabilize : unit -> stm          val stabilize : unit -> stm
110        end        end

Legend:
Removed from v.517  
changed lines
  Added in v.518

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