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

SCM Repository

[diderot] Diff of /branches/vis12/src/compiler/simplify/simplify.sml
ViewVC logotype

Diff of /branches/vis12/src/compiler/simplify/simplify.sml

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

revision 1993, Fri Sep 28 14:51:23 2012 UTC revision 1996, Thu Oct 4 10:42:57 2012 UTC
# Line 36  Line 36 
36                  (* end case *))                  (* end case *))
37            fun simplifyDecl dcl = (case dcl            fun simplifyDecl dcl = (case dcl
38                   of AST.D_Input(x, desc, NONE) => let                   of AST.D_Input(x, desc, NONE) => let
39                        val e' = S.E_Input(Var.monoTypeOf x, Var.nameOf x, desc, NONE)                        val rhs = (case Var.monoTypeOf x
40                                 of ty as Ty.T_DynSequence _ => S.E_InputNrrd(ty, Var.nameOf x, desc, NONE)
41                                  | ty as Ty.T_Image _ => S.E_InputNrrd(ty, Var.nameOf x, desc, NONE)
42                                  | ty => S.E_Input(ty, Var.nameOf x, desc, NONE)
43                                (* end case *))
44                        in                        in
45                          globals := x :: !globals;                          globals := x :: !globals;
46                          globalInit := S.S_Assign(x, e') :: !globalInit                          globalInit := S.S_Assign(x, rhs) :: !globalInit
47                        end                        end
48                    | AST.D_Input(x, desc, SOME(AST.E_LoadNrrd(tvs, nrrd, ty))) => let                    | AST.D_Input(x, desc, SOME(AST.E_LoadNrrd(tvs, nrrd, ty))) => let
49                      (* load the nrrd prox here *)                      (* load the nrrd proxy here *)
50                        val info = NrrdInfo.getInfo nrrd                        val info = NrrdInfo.getInfo nrrd
51                        val stm = (case TypeUtil.pruneHead ty  (* FIXME: what do we do with the proxy info? *)
52                               of Ty.T_DynSequence _ => (* FIXME *) raise Fail "unimplemented"                        val rhs = (case TypeUtil.pruneHead ty
53                                | Ty.T_Image _ => (* FIXME *) raise Fail "unimplemented"                               of ty as Ty.T_DynSequence _ =>
54                                      S.E_InputNrrd(ty, Var.nameOf x, desc, SOME nrrd)
55                                  | Ty.T_Image _ =>
56                                      S.E_InputNrrd(ty, Var.nameOf x, desc, SOME nrrd)
57                                | _ => raise Fail "impossible"                                | _ => raise Fail "impossible"
58                              (* end case *))                              (* end case *))
59                          val stm = S.S_Assign(x, rhs)
60                        in                        in
61                          globals := x :: !globals;                          globals := x :: !globals;
62                          globalInit := stm :: !globalInit                          globalInit := stm :: !globalInit
# Line 228  Line 236 
236                  in                  in
237                    (S.S_IfThenElse(x, s1, s2) :: stms, S.E_Var result)                    (S.S_IfThenElse(x, s1, s2) :: stms, S.E_Var result)
238                  end                  end
239                | AST.E_LoadNrrd _ => raise Fail "unexpected E_LoadNrrd" (* should be handled by simplifyDecl *)
240              | AST.E_Coerce{srcTy, dstTy, e} => let              | AST.E_Coerce{srcTy, dstTy, e} => let
241                  val (stms, x) = simplifyExpToVar (e, stms)                  val (stms, x) = simplifyExpToVar (e, stms)
242                  val result = newTemp dstTy                  val result = newTemp dstTy

Legend:
Removed from v.1993  
changed lines
  Added in v.1996

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