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

SCM Repository

[diderot] Diff of /trunk/src/compiler/c-util/tree-to-c-fn.sml
ViewVC logotype

Diff of /trunk/src/compiler/c-util/tree-to-c-fn.sml

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

revision 2356, Sun Apr 7 14:45:25 2013 UTC revision 2636, Tue May 27 16:18:36 2014 UTC
# Line 67  Line 67 
67              | Ty.TensorTy[n, m] => CL.T_Named(N.matTy(n,m))              | Ty.TensorTy[n, m] => CL.T_Named(N.matTy(n,m))
68              | Ty.SeqTy(Ty.IntTy, n) => CL.T_Named(N.ivecTy n)              | Ty.SeqTy(Ty.IntTy, n) => CL.T_Named(N.ivecTy n)
69              | Ty.SeqTy(ty, n) => CL.T_Array(trType ty, SOME n)              | Ty.SeqTy(ty, n) => CL.T_Array(trType ty, SOME n)
70    (*
71              | Ty.AddrTy(ImageInfo.ImgInfo{ty=(_, rTy), ...}) => CL.T_Ptr(CL.T_Num rTy)              | Ty.AddrTy(ImageInfo.ImgInfo{ty=(_, rTy), ...}) => CL.T_Ptr(CL.T_Num rTy)
72              | Ty.ImageTy(ImageInfo.ImgInfo{dim, ...}) => CL.T_Ptr(CL.T_Named(N.imageTy dim))              | Ty.ImageTy(ImageInfo.ImgInfo{dim, ...}) => CL.T_Ptr(CL.T_Named(N.imageTy dim))
73    *)
74                | Ty.AddrTy info => CL.T_Ptr(CL.T_Num(ImageInfo.sampleTy info))
75                | Ty.ImageTy info => CL.T_Ptr(CL.T_Named(N.imageTy(ImageInfo.dim info)))
76              | _ => raise Fail(concat["TreeToC.trType(", Ty.toString ty, ")"])              | _ => raise Fail(concat["TreeToC.trType(", Ty.toString ty, ")"])
77            (* end case *))            (* end case *))
78    
# Line 199  Line 203 
203              | (Op.IntToReal, [a]) => CL.mkCast(!N.gRealTy, a)              | (Op.IntToReal, [a]) => CL.mkCast(!N.gRealTy, a)
204              | (Op.RealToInt 1, [a]) => CL.mkCast(!N.gIntTy, a)              | (Op.RealToInt 1, [a]) => CL.mkCast(!N.gIntTy, a)
205              | (Op.RealToInt d, args) => CL.mkApply(N.vecftoi d, args)              | (Op.RealToInt d, args) => CL.mkApply(N.vecftoi d, args)
206  (* FIXME: need type info *)              | (Op.ImageAddress info, [a]) => let
207              | (Op.ImageAddress(ImageInfo.ImgInfo{ty=(_,rTy), ...}), [a]) => let                  val cTy = CL.T_Ptr(CL.T_Num(ImageInfo.sampleTy info))
                 val cTy = CL.T_Ptr(CL.T_Num rTy)  
208                  in                  in
209                    CL.mkCast(cTy, CL.mkIndirect(a, "data"))                    CL.mkCast(cTy, CL.mkIndirect(a, "data"))
210                  end                  end
# Line 215  Line 218 
218                  end                  end
219              | (Op.LoadVoxels _, [a]) =>              | (Op.LoadVoxels _, [a]) =>
220                  raise Fail("impossible " ^ Op.toString rator)                  raise Fail("impossible " ^ Op.toString rator)
221              | (Op.PosToImgSpace(ImageInfo.ImgInfo{dim, ...}), [img, pos]) =>              | (Op.PosToImgSpace info, [img, pos]) =>
222                  CL.mkApply(N.toImageSpace dim, [img, pos])                  CL.mkApply(N.toImageSpace(ImageInfo.dim info), [img, pos])
223              | (Op.TensorToWorldSpace(info, ty), [v, x]) =>              | (Op.TensorToWorldSpace(info, ty), [v, x]) =>
224                  CL.mkApply(N.toWorldSpace ty, [v, x])                  CL.mkApply(N.toWorldSpace ty, [v, x])
225              | (Op.LoadImage info, [a]) =>              | (Op.LoadImage info, [a]) =>
226                  raise Fail("impossible " ^ Op.toString rator)                  raise Fail("impossible " ^ Op.toString rator)
227              | (Op.Inside(ImageInfo.ImgInfo{dim, ...}, s), [pos, img]) =>              | (Op.Inside(info, s), [pos, img]) =>
228                  CL.mkApply(N.inside dim, [pos, img, intExp s])                  CL.mkApply(N.inside(ImageInfo.dim info), [pos, img, intExp s])
229              | (Op.Input(ty, desc, name), []) =>              | (Op.LoadImage(ty, nrrd, info), []) =>
                 raise Fail("impossible " ^ Op.toString rator)  
             | (Op.InputWithDefault(ty, desc, name), [a]) =>  
230                  raise Fail("impossible " ^ Op.toString rator)                  raise Fail("impossible " ^ Op.toString rator)
231                | (Op.Input _, []) => raise Fail("impossible " ^ Op.toString rator)
232              | _ => raise Fail(concat[              | _ => raise Fail(concat[
233                    "unknown or incorrect operator ", Op.toString rator                    "unknown or incorrect operator ", Op.toString rator
234                  ])                  ])
# Line 468  Line 470 
470                    | IL.S_Save([x], exp) => trAssign (env, VarToC.lvalueStateVar x, exp)                    | IL.S_Save([x], exp) => trAssign (env, VarToC.lvalueStateVar x, exp)
471                    | IL.S_Save(xs, exp) =>                    | IL.S_Save(xs, exp) =>
472                        trMultiAssign (env, List.map VarToC.lvalueStateVar xs, exp)                        trMultiAssign (env, List.map VarToC.lvalueStateVar xs, exp)
473    (*
474                    | IL.S_LoadImage(lhs, dim, name) => checkSts (fn sts => let                    | IL.S_LoadImage(lhs, dim, name) => checkSts (fn sts => let
475                        val lhs = VarToC.lvalueVar (env, lhs)                        val lhs = VarToC.lvalueVar (env, lhs)
476                        val name = trExp(env, name)                        val name = trExp(env, name)
# Line 494  Line 497 
497                        in                        in
498                          initCode @ code                          initCode @ code
499                        end                        end
500    *)
501                      | IL.S_LoadNrrd(lhs, Ty.ImageTy info, nrrd) =>
502                          [GenLoadNrrd.loadImage (VarToC.lvalueVar (env, lhs), info, CL.E_Str nrrd)]
503                      | IL.S_Input(_, _, _, NONE) => []
504                      | IL.S_Input(lhs, name, _, SOME dflt) => [
505                            CL.mkAssign(VarToC.lvalueVar(env, lhs), trExp(env, dflt))
506                          ]
507                      | IL.S_InputNrrd _ => []
508                    | IL.S_Exit args => [CL.mkReturn NONE]                    | IL.S_Exit args => [CL.mkReturn NONE]
509                    | IL.S_Active => [CL.mkReturn(SOME(CL.mkVar N.kActive))]                    | IL.S_Active => [CL.mkReturn(SOME(CL.mkVar N.kActive))]
510                    | IL.S_Stabilize => [CL.mkReturn(SOME(CL.mkVar N.kStabilize))]                    | IL.S_Stabilize => [CL.mkReturn(SOME(CL.mkVar N.kStabilize))]

Legend:
Removed from v.2356  
changed lines
  Added in v.2636

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