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

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

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

revision 118, Fri Jun 5 21:38:17 1998 UTC revision 184, Sun Nov 8 21:18:20 1998 UTC
# Line 22  Line 22 
22  type fflag = LD.fflag  type fflag = LD.fflag
23  type rflag = LD.rflag  type rflag = LD.rflag
24    
25    
26    (* what kind of inlining behavior is desired for the function *)
27    datatype ilhint
28      = IH_ALWAYS                           (* inline whenever possible *)
29      | IH_UNROLL                           (* only inline once within itself *)
30      | IH_SAFE                             (* only if trivially size-safe *)
31    
32    (* what kind of recursive function (aka loop) is this *)
33    datatype loopkind
34      = LK_UNKNOWN                          (* something else *)
35      | LK_LOOP                             (* loop wrapped in a preheader *)
36      | LK_WHILE                            (* properly tail-recursive *)
37    
38    (* calling convention *)
39    datatype cconv
40      = CC_FCT                              (* it's a functor *)
41      | CC_FUN of fflag                     (* it's a function *)
42    
43  (** classifying various kinds of functions *)  (** classifying various kinds of functions *)
44  datatype fkind  type fkind
45    = FK_FCT   = {inline: ilhint,                     (* when should it be inlined *)
46    | FK_FUN of      known : bool,                       (* are all the call sites known *)
47        {isrec : lty list option,  (* is this function recursive ? *)      cconv : cconv,                      (* calling convention *)
48         fixed : fflag,            (* is calling convention fixed ? *)      isrec : (lty list * loopkind) option} (* is it recursive *)
        known : bool,             (* is this function known, default: false *)  
        inline: bool}             (* should this be inlined, default: false *)  
49    
50  (** classifying various kinds of records *)  (** classifying various kinds of records *)
51  datatype rkind  datatype rkind

Legend:
Removed from v.118  
changed lines
  Added in v.184

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