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

SCM Repository

[diderot] Diff of /branches/vis15/src/compiler/codegen/collect-info.sml
ViewVC logotype

Diff of /branches/vis15/src/compiler/codegen/collect-info.sml

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

revision 3920, Wed Jun 1 10:36:32 2016 UTC revision 3921, Wed Jun 1 14:47:24 2016 UTC
# Line 112  Line 112 
112              addTy              addTy
113            end            end
114    
115      fun addOp (Info{ops, ...}) = let      fun insertOp (Info{ops, ...}) = let
116            val find = OpTbl.find ops            val find = OpTbl.find ops
117            val ins = OpTbl.insert ops            val ins = OpTbl.insert ops
118            fun insert rator = (case find rator            in
119                fn rator => (case find rator
120                   of NONE => ins (rator, ())                   of NONE => ins (rator, ())
121                    | SOME() => ()                    | SOME() => ()
122                  (* end case *))                  (* end case *))
123              end
124    
125        fun addOp info = let
126              val insert = insertOp info
127            fun add' rator = (case rator            fun add' rator = (case rator
128                   of Op.RClamp => insert RClamp                   of Op.RClamp => insert RClamp
129                    | Op.RLerp => insert RLerp                    | Op.RLerp => insert RLerp
# Line 144  Line 149 
149                  }                  }
150            val addType = addType info            val addType = addType info
151            val addOp = addOp info            val addOp = addOp info
152              val insertOp = insertOp info
153            fun doGlobalV x = addType(TreeGlobalVar.ty x, false)            fun doGlobalV x = addType(TreeGlobalVar.ty x, false)
154            fun doStateV x = addType(TreeStateVar.ty x, false)            fun doStateV x = addType(TreeStateVar.ty x, false)
155            fun doV x = addType(TreeVar.ty x, false)            fun doV x = addType(TreeVar.ty x, false)
# Line 154  Line 160 
160                        List.app doExp args)                        List.app doExp args)
161                    | IR.E_Vec(w, pw, es) => (                    | IR.E_Vec(w, pw, es) => (
162                        addType(Ty.VecTy(w, pw), false);                        addType(Ty.VecTy(w, pw), false);
163  (* FIXME: record VCons *)                        insertOp (VCons(w, pw));
164                        List.app doExp es)                        List.app doExp es)
165                    | IR.E_Cons(es, ty) => (addType(ty, false); List.app doExp es)                    | IR.E_Cons(es, ty) => (addType(ty, false); List.app doExp es)
166                    | IR.E_Seq(es, ty) => (addType(ty, false); List.app doExp es)                    | IR.E_Seq(es, ty) => (addType(ty, false); List.app doExp es)
167                    | IR.E_Pack(_, es) => List.app doExp es                    | IR.E_Pack(_, es) => List.app doExp es
168                    | IR.E_VLoad(layout, e, i) => (                    | IR.E_VLoad(layout, e, i) => let
169                        addType(Ty.nthVec(layout, i), false);                        val ty as Ty.VecTy(w, pw) = Ty.nthVec(layout, i)
170  (* FIXME: record VCons *)                        in
171                        doExp e)                          addType(ty, false);
172                            insertOp (VLoad(w, pw));
173                            doExp e
174                          end
175                    | _ => ()                    | _ => ()
176                  (* end case *))                  (* end case *))
177            fun doStm stm = (case stm            fun doStm stm = (case stm

Legend:
Removed from v.3920  
changed lines
  Added in v.3921

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