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

SCM Repository

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

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

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

revision 4045, Sun Jun 26 14:54:01 2016 UTC revision 4083, Tue Jun 28 20:55:46 2016 UTC
# Line 85  Line 85 
85    (* make a block out of a list of statements that are in reverse order *)    (* make a block out of a list of statements that are in reverse order *)
86      fun mkBlock stms = S.Block{props = PropList.newHolder(), code = List.rev stms}      fun mkBlock stms = S.Block{props = PropList.newHolder(), code = List.rev stms}
87    
     fun inputImage (errStrm, nrrd, dim, shape) = (  
           case ImageInfo.fromNrrd(NrrdInfo.getInfo(errStrm, nrrd), dim, shape)  
            of NONE => raise Fail(concat["nrrd file \"", nrrd, "\" does not have expected type"])  
             | SOME info => S.Proxy(nrrd, info)  
           (* end case *))  
   
88      datatype 'a ctl_flow_info      datatype 'a ctl_flow_info
89        = EXIT                    (* stm sequence always exits; no pruning so far *)        = EXIT                    (* stm sequence always exits; no pruning so far *)
90        | PRUNE of 'a             (* stm sequence always exits at last stm in argument, which        | PRUNE of 'a             (* stm sequence always exits at last stm in argument, which
# Line 373  Line 367 
367                | AST.E_LoadNrrd(_, nrrd, ty) => (case cvtTy ty                | AST.E_LoadNrrd(_, nrrd, ty) => (case cvtTy ty
368                     of ty as SimpleTypes.T_Sequence(_, NONE) => (stms, S.E_LoadSeq(ty, nrrd))                     of ty as SimpleTypes.T_Sequence(_, NONE) => (stms, S.E_LoadSeq(ty, nrrd))
369                      | ty as SimpleTypes.T_Image{dim, shape} => (                      | ty as SimpleTypes.T_Image{dim, shape} => (
370                          case ImageInfo.fromNrrd(NrrdInfo.getInfo(errStrm, nrrd), dim, shape)                          case NrrdInfo.getInfo (errStrm, nrrd)
371                           of NONE => raise Fail(concat[                           of SOME info => (case ImageInfo.fromNrrd(info, dim, shape)
372                                   of NONE => (
373                                        Error.error (errStrm, [
374                                  "nrrd file \"", nrrd, "\" does not have expected type"                                  "nrrd file \"", nrrd, "\" does not have expected type"
375                                ])                                        ]);
376                                        (stms, S.E_LoadImage(ty, nrrd, ImageInfo.mkInfo(dim, shape))))
377                            | SOME info => (stms, S.E_LoadImage(ty, nrrd, info))                            | SOME info => (stms, S.E_LoadImage(ty, nrrd, info))
378                          (* end case *))                          (* end case *))
379                              | NONE => (
380                                  Error.warning (errStrm, [
381                                      "nrrd file \"", nrrd, "\" does not exist"
382                                    ]);
383                                  (stms, S.E_LoadImage(ty, nrrd, ImageInfo.mkInfo(dim, shape))))
384                            (* end case *))
385                      | _ => raise Fail "bogus type for E_LoadNrrd"                      | _ => raise Fail "bogus type for E_LoadNrrd"
386                    (* end case *))                    (* end case *))
387                | AST.E_Coerce{dstTy, e=AST.E_Lit(Literal.Int n), ...} => (case cvtTy dstTy                | AST.E_Coerce{dstTy, e=AST.E_Lit(Literal.Int n), ...} => (case cvtTy dstTy
# Line 488  Line 491 
491                  end                  end
492              | simplifyInputDcl ((x, SOME(AST.E_LoadNrrd(tvs, nrrd, ty))), desc) = let              | simplifyInputDcl ((x, SOME(AST.E_LoadNrrd(tvs, nrrd, ty))), desc) = let
493                  val x' = cvtVar x                  val x' = cvtVar x
               (* load the nrrd proxy here *)  
                 val info = NrrdInfo.getInfo (errStrm, nrrd)  
494                  val init = (case SimpleVar.typeOf x'                  val init = (case SimpleVar.typeOf x'
495                         of SimpleTypes.T_Sequence(_, NONE) => S.LoadSeq nrrd                         of SimpleTypes.T_Sequence(_, NONE) => S.LoadSeq nrrd
496                          | SimpleTypes.T_Image{dim, shape} => inputImage(errStrm, nrrd, dim, shape)                          | SimpleTypes.T_Image{dim, shape} => (
497                                case NrrdInfo.getInfo (errStrm, nrrd)
498                                 of SOME info => (case ImageInfo.fromNrrd(info, dim, shape)
499                                       of NONE => (
500                                            Error.error (errStrm, [
501                                                "proxy nrrd file \"", nrrd,
502                                                "\" does not have expected type"
503                                              ]);
504                                            S.Image(ImageInfo.mkInfo(dim, shape)))
505                                        | SOME info => S.Proxy(nrrd, info)
506                                      (* end case *))
507                                  | NONE => (
508                                      Error.warning (errStrm, [
509                                          "proxy nrrd file \"", nrrd, "\" does not exist"
510                                        ]);
511                                      S.Image(ImageInfo.mkInfo(dim, shape)))
512                                (* end case *))
513                          | _ => raise Fail "impossible"                          | _ => raise Fail "impossible"
514                        (* end case *))                        (* end case *))
515                  val inp = S.INP{                  val inp = S.INP{

Legend:
Removed from v.4045  
changed lines
  Added in v.4083

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