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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/low-to-tree/low-to-tree.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/low-to-tree/low-to-tree.sml

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

revision 3955, Sun Jun 12 15:55:01 2016 UTC revision 3966, Tue Jun 14 15:20:15 2016 UTC
# Line 344  Line 344 
344                    end                    end
345                | Op.VMapClamp n => bindVOp TOp.VMapClamp                | Op.VMapClamp n => bindVOp TOp.VMapClamp
346                | Op.VLerp n => bindVOp TOp.VLerp                | Op.VLerp n => bindVOp TOp.VLerp
347                | Op.TensorIndex(ty, idxs) => bindOp(TOp.TensorIndex(U.trType ty, idxs))                | Op.TensorIndex(Ty.TensorTy dd, idxs) => let
348                | Op.ProjectLast(ty, idxs) => bindOp(TOp.ProjectLast(U.trType ty, idxs))                    val (args, stms) = simpleArgs (env, args)
349                      in
350                        (Env.TREE(T.E_Op(TOp.TensorIndex(TTy.TensorRefTy dd, idxs), args)), stms)
351                      end
352                  | Op.ProjectLast(Ty.TensorTy dd, idxs) => let
353                      val (args, stms) = simpleArgs (env, args)
354                      in
355                        (Env.TREE(T.E_Op(TOp.ProjectLast(TTy.TensorRefTy dd, idxs), args)), stms)
356                      end
357                | Op.Select(ty, i) => bindOp (TOp.Select(U.trType ty, i))                | Op.Select(ty, i) => bindOp (TOp.Select(U.trType ty, i))
358                | Op.Subscript ty => bindOp (TOp.Subscript(U.trType ty))                | Op.Subscript ty => bindOp (TOp.Subscript(U.trType ty))
359                | Op.MkDynamic(ty, n) => bindOp (TOp.MkDynamic(U.trType ty, n))                | Op.MkDynamic(ty, n) => bindOp (TOp.MkDynamic(U.trType ty, n))
# Line 354  Line 362 
362                | Op.Concat ty => bindOp (TOp.Concat(U.trType ty))                | Op.Concat ty => bindOp (TOp.Concat(U.trType ty))
363                | Op.Range => bindOp TOp.Range                | Op.Range => bindOp TOp.Range
364                | Op.Length ty => bindOp (TOp.Length(U.trType ty))                | Op.Length ty => bindOp (TOp.Length(U.trType ty))
365                | Op.SphereQuery(ty1, ty2) => raise Fail "FIXME: SphereQuery"                | Op.SphereQuery(ty1, ty2) => bindOp (TOp.SphereQuery(U.trType ty1, U.trType ty2))
366                | Op.Sqrt => bindOp TOp.Sqrt                | Op.Sqrt => bindOp TOp.Sqrt
367                | Op.Cos => bindOp TOp.Cos                | Op.Cos => bindOp TOp.Cos
368                | Op.ArcCos => bindOp TOp.ArcCos                | Op.ArcCos => bindOp TOp.ArcCos
# Line 373  Line 381 
381                | Op.IntToReal => bindOp TOp.IntToReal                | Op.IntToReal => bindOp TOp.IntToReal
382                | Op.RealToInt 1 => bindOp TOp.RealToInt                | Op.RealToInt 1 => bindOp TOp.RealToInt
383                | Op.RealToInt d => let                | Op.RealToInt d => let
384                    val layout = Env.layoutVec env d                    val [v] = args
385                    val (_, args, stms) = vectorArg (env, hd args)                    val (layout, args, stms) = vectorArg (env, v)
386                    in                    in
387                      case #pieces layout                      case #pieces layout
388                       of [w] => (Env.TREE(T.E_Op(TOp.VToInt(d, w), args)), stms)                       of [w] => (Env.TREE(T.E_Op(TOp.VToInt(d, w), args)), stms)
# Line 658  Line 666 
666                        end                        end
667                    | IR.MASSIGN{stm=([], Op.Print tys, xs), succ, ...} => let                    | IR.MASSIGN{stm=([], Op.Print tys, xs), succ, ...} => let
668                        val (es, stms') = singleArgs (env, xs)                        val (es, stms') = singleArgs (env, xs)
669                        val stm = T.S_Print(List.map U.trType tys, es)                        fun trType (Ty.TensorTy(shp as _::_)) = TTy.TensorRefTy shp
670                            | trType ty = U.trType ty
671                          val stm = T.S_Print(List.map trType tys, es)
672                        in                        in
673                          doNode (!succ, ifStk, stm :: List.revAppend (stms', stms))                          doNode (!succ, ifStk, stm :: List.revAppend (stms', stms))
674                        end                        end

Legend:
Removed from v.3955  
changed lines
  Added in v.3966

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