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 3995, Sat Jun 18 20:00:19 2016 UTC revision 4025, Wed Jun 22 15:01:29 2016 UTC
# Line 474  Line 474 
474                    end                    end
475                | IR.VAR x => raise Fail "FIXME: VAR"                | IR.VAR x => raise Fail "FIXME: VAR"
476                | IR.LIT lit => bindSimple (T.E_Lit lit)                | IR.LIT lit => bindSimple (T.E_Lit lit)
477    (* FIXME: use the general IR.OP case for eigen-things, since the target info says that they
478     * are not inline.
479     *)
480                | IR.OP(Op.EigenVecs2x2, args) => assignOp (TOp.EigenVecs2x2, args)                | IR.OP(Op.EigenVecs2x2, args) => assignOp (TOp.EigenVecs2x2, args)
481                | IR.OP(Op.EigenVecs3x3, args) => assignOp (TOp.EigenVecs3x3, args)                | IR.OP(Op.EigenVecs3x3, args) => assignOp (TOp.EigenVecs3x3, args)
482                | IR.OP(Op.EigenVals2x2, args) => assignOp (TOp.EigenVals2x2, args)                | IR.OP(Op.EigenVals2x2, args) => assignOp (TOp.EigenVals2x2, args)
# Line 497  Line 500 
500                    end                    end
501                | IR.OP(rator, args) => let                | IR.OP(rator, args) => let
502                    val (rhs, stms) = trOp (env, rator, args)                    val (rhs, stms) = trOp (env, rator, args)
503                      val emitBind = (V.useCount lhs > 1) orelse not(Env.isInlineOp env rator)
504                    in                    in
505                      case (rhs, eqClassRepOf(env, lhs), V.useCount lhs > 1)                      case (rhs, eqClassRepOf(env, lhs), emitBind)
506                       of (_, NOEQ, false) => (Env.bindVar (env, lhs, rhs); stms)                       of (_, NOEQ, false) => (Env.bindVar (env, lhs, rhs); stms)
507                        | (Env.TREE e, NOEQ, true) => mkDefn'(newLocal(env, lhs), e) :: stms                        | (Env.TREE e, NOEQ, true) => mkDefn'(newLocal(env, lhs), e) :: stms
508                        | (Env.TREE e, VAR x', _) => mkAssign'(x', e) :: stms                        | (Env.TREE e, VAR x', _) => mkAssign'(x', e) :: stms

Legend:
Removed from v.3995  
changed lines
  Added in v.4025

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