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

SCM Repository

[diderot] Diff of /branches/vis12/src/compiler/c-target/gen-output.sml
ViewVC logotype

Diff of /branches/vis12/src/compiler/c-target/gen-output.sml

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

revision 1788, Tue Apr 3 13:25:57 2012 UTC revision 1789, Tue Apr 3 14:19:50 2012 UTC
# Line 34  Line 34 
34      structure Ty = IL.Ty      structure Ty = IL.Ty
35      structure CL = CLang      structure CL = CLang
36      structure N = CNames      structure N = CNames
37        structure Nrrd = NrrdEnums
38    
39      fun mapi f l = let      fun mapi f l = let
40            fun mapf (i, [], l) = List.rev l            fun mapf (i, [], l) = List.rev l
# Line 51  Line 52 
52    
53      fun infoOf (tgt : TargetUtil.target_desc, ty) = (case ty      fun infoOf (tgt : TargetUtil.target_desc, ty) = (case ty
54             of Ty.IntTy => if #longint tgt             of Ty.IntTy => if #longint tgt
55                  then (CL.int64, "nrrdTypeLLong", [1])                  then (CL.int64, Nrrd.TypeLLong, [1])
56                  else (CL.int32, "nrrdTypeInt", [1])                  else (CL.int32, Nrrd.TypeInt, [1])
57              | Ty.TensorTy [] => if #double tgt              | Ty.TensorTy [] => if #double tgt
58                  then (CL.double, "nrrdTypeDouble", [1])                  then (CL.double, Nrrd.TypeDouble, [1])
59                  else (CL.float, "nrrdTypeFloat", [1])                  else (CL.float, Nrrd.TypeFloat, [1])
60              | Ty.TensorTy dims => if #double tgt              | Ty.TensorTy dims => if #double tgt
61                  then (CL.double, "nrrdTypeDouble", dims)                  then (CL.double, Nrrd.TypeDouble, dims)
62                  else (CL.float, "nrrdTypeFloat", dims)                  else (CL.float, Nrrd.TypeFloat, dims)
63              | Ty.SeqTy(ty, n) => let              | Ty.SeqTy(ty, n) => let
64                  val (elemTy, nrrdTy, dims) = infoOf (tgt, ty)                  val (elemTy, nrrdTy, dims) = infoOf (tgt, ty)
65                  in                  in
# Line 181  Line 182 
182                      then dimSizes ::                      then dimSizes ::
183                        List.tabulate (nAxes, fn i =>                        List.tabulate (nAxes, fn i =>
184                          setSizes(i+1, CL.mkSubscript(CL.mkIndirect(wrldV, "size"), mkInt(nAxes-i-1)))) @                          setSizes(i+1, CL.mkSubscript(CL.mkIndirect(wrldV, "size"), mkInt(nAxes-i-1)))) @
185                        [maybeAlloc (nLengthsV, "nrrdTypeInt", nAxes+1)]                        [maybeAlloc (nLengthsV, Nrrd.tyToEnum Nrrd.TypeInt, nAxes+1)]
186                      else [                      else [
187                          dimSizes, setSizes(nDims, numStableV),                          dimSizes, setSizes(nDims, numStableV),
188                          maybeAlloc (nLengthsV, "nrrdTypeInt", 2)                          maybeAlloc (nLengthsV, Nrrd.tyToEnum Nrrd.TypeInt, 2)
189                        ])                        ])
190                  end                  end
191          (* generate code to allocate the data nrrd *)          (* generate code to allocate the data nrrd *)
# Line 195  Line 196 
196                    CL.mkComment["allocate nData nrrd"] ::                    CL.mkComment["allocate nData nrrd"] ::
197                    dimSizes @ [                    dimSizes @ [
198                        sizes,                        sizes,
199                        maybeAlloc (nDataV, nrrdType, nDims+1)                        maybeAlloc (nDataV, Nrrd.tyToEnum nrrdType, nDims+1)
200                      ]                      ]
201                  end                  end
202          (* generate the nLengths copy code *)          (* generate the nLengths copy code *)
# Line 290  Line 291 
291                  CL.mkComment["Compute sizes of nrrd file"] ::                  CL.mkComment["Compute sizes of nrrd file"] ::
292                  initSizes @                  initSizes @
293                  CL.mkComment["Allocate nData nrrd"] ::                  CL.mkComment["Allocate nData nrrd"] ::
294                  maybeAlloc (nDataV, nrrdType, nDims+nAxes) ::                  maybeAlloc (nDataV, Nrrd.tyToEnum  nrrdType, nDims+nAxes) ::
295                  CL.mkComment["copy data to output nrrd"] ::                  CL.mkComment["copy data to output nrrd"] ::
296                  copyCode @                  copyCode @
297                  [CL.mkReturn(SOME(CL.mkVar "false"))]                  [CL.mkReturn(SOME(CL.mkVar "false"))]

Legend:
Removed from v.1788  
changed lines
  Added in v.1789

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