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/opt/lift.sml
ViewVC logotype

Diff of /sml/trunk/src/compiler/FLINT/opt/lift.sml

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

revision 1333, Thu May 22 17:12:13 2003 UTC revision 1334, Thu May 22 22:46:30 2003 UTC
# Line 273  Line 273 
273                    | _ => bug "unexpected case in reslty"                    | _ => bug "unexpected case in reslty"
274              end              end
275    
276          fun loopc env (VAR v) =          fun loopcv env var v = let
             let  
277                  val (v', t, fv) = newVar(v, env, td) (* Not checking for poly *)                  val (v', t, fv) = newVar(v, env, td) (* Not checking for poly *)
   
278              in              in
279                  (VAR v', t, fv, nil)   (* Check whether this is t or t' *)              (var v', t, fv, nil)   (* Check whether this is t or t' *)
280              end              end
281            | loopc env v =  
282              let          fun loopc env v = let
283                  val t =              fun c t = (v, t, [], [])
                     case v of  
                         INT _ => LE.ltc_int  
                       | WORD _ => LE.ltc_int  
                       | (INT32 _ | WORD32 _) => LE.ltc_int32  
                       | REAL _  => LE.ltc_real  
                       | STRING _ => LE.ltc_string  
284              in              in
285                  (v, t, nil, nil)              case v of
286                    VAR v' => loopcv env VAR v'
287                  | INT _ => c LE.ltc_int
288                  | WORD _ => c LE.ltc_int
289                  | (INT32 _ | WORD32 _) => c LE.ltc_int32
290                  | REAL _  => c LE.ltc_real
291                  | STRING _ => c LE.ltc_string
292              end              end
293    
294          fun lpacc env (LVAR v) =          fun lpacc env (LVAR v) =
295              let val (VAR v', _, fv, _) = loopc env (VAR v)              let val (v', _, fv, _) = loopcv env (fn v => v) v
296              in  (LVAR v', fv)              in  (LVAR v', fv)
297              end              end
298            | lpacc env (PATH(a,i)) =            | lpacc env (PATH(a,i)) =

Legend:
Removed from v.1333  
changed lines
  Added in v.1334

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