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/compiler/FLINT/flint/flint.sml
ViewVC logotype

Diff of /sml/trunk/compiler/FLINT/flint/flint.sml

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

revision 4539, Sat Apr 21 17:13:52 2018 UTC revision 4540, Wed Apr 25 17:06:35 2018 UTC
# Line 7  Line 7 
7  structure FLINT : FLINT =  structure FLINT : FLINT =
8  struct  struct
9    
10  local structure A  = Access   (* should go away soon *)      structure A  = Access   (* should go away soon *)
11        structure LD = LtyDef        structure LD = LtyDef
12        structure LB = LtyBasic        structure LB = LtyBasic
13        structure LV = LambdaVar        structure LV = LambdaVar
14        structure PO = Primop        structure PO = Primop
15        structure S  = Symbol        structure S  = Symbol
 in  
16    
17  type tkind = LD.tkind  type tkind = LD.tkind
18  type tyc = LD.tyc  type tyc = LD.tyc
# Line 25  Line 24 
24  type fflag = LD.fflag  type fflag = LD.fflag
25  type rflag = LD.rflag  type rflag = LD.rflag
26    
   
27  (* what kind of inlining behavior is desired for the function *)  (* what kind of inlining behavior is desired for the function *)
28  datatype ilhint  datatype ilhint
29    = IH_SAFE                             (* only if trivially size-safe *)    = IH_SAFE                             (* only if trivially size-safe *)
30    | IH_ALWAYS                           (* inline whenever possible *)    | IH_ALWAYS                           (* inline whenever possible *)
31    | IH_UNROLL                           (* only inline once within itself *)    | IH_UNROLL                           (* only inline once within itself *)
32    (* call-site dependent inlining:    (* call-site dependent inlining:
33     *     #1 < sum (map2 (fn (a,w) => (known a) * w) (actuals, #2) *)       *     #1 < sum (map2 (fn (a,w) => (known a) * w) (actuals, #2)
34         *)
35    | IH_MAYBE of int * int list    | IH_MAYBE of int * int list
36    
37  (* what kind of recursive function (aka loop) is this *)  (* what kind of recursive function (aka loop) is this *)
# Line 78  Line 77 
77   *)   *)
78  datatype con  datatype con
79    = DATAcon of dcon * tyc list * lvar    = DATAcon of dcon * tyc list * lvar
80    (* 64BIT: replace INTcon, INT32con, WORDcon, and WORD32con with
81          | INTcon of int IntConst.t        (* sz = 0 for IntInf.int *)
82          | WORDcon of int IntConst.t
83    *)
84    | INTcon of int                          (* should use InfInf.int *)    | INTcon of int                          (* should use InfInf.int *)
85    | INT32con of Int32.int    | INT32con of Int32.int
86    | WORDcon of word    | WORDcon of word
# Line 88  Line 91 
91  (** simple values, including variables and static constants. *)  (** simple values, including variables and static constants. *)
92  datatype value  datatype value
93    = VAR of lvar    = VAR of lvar
94  (* BIT64: REAL32: replace INT, INT32, and REAL with  (* 64BIT: replace INT, INT32, WORD, and WORD32 with
95    | INT of {v : IntInf.int, sz : int}        | INT of int IntConst.t   (* sz = 0 for IntInf.int *)
96    | REAL of {v : RealLit.t, sz : int}        | WORD of int IntConst.t
97  *)  *)
98    | INT of int                            (* should use InfInf.int *)    | INT of int                            (* should use InfInf.int *)
99    | INT32 of Int32.int    | INT32 of Int32.int
100    | WORD of word    | WORD of word
101    | WORD32 of Word32.word    | WORD32 of Word32.word
102    | REAL of RealLit.t        | REAL of int RealConst.t
103    | STRING of string    | STRING of string
104    
105  (** the definitions of the lambda expressions *)  (** the definitions of the lambda expressions *)
# Line 130  Line 133 
133    
134  type prog = fundec  (* was "lvar * lty * lexp" *)  type prog = fundec  (* was "lvar * lty * lexp" *)
135    
 end (* local *)  
136  end (* structure FLINT *)  end (* structure FLINT *)

Legend:
Removed from v.4539  
changed lines
  Added in v.4540

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