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 3921, Wed Jun 1 14:47:24 2016 UTC revision 3931, Sun Jun 5 14:13:21 2016 UTC
# Line 31  Line 31 
31        | VSum of int * int        | VSum of int * int
32        | VLoad of int * int        | VLoad of int * int
33        | VCons of int * int        | VCons of int * int
34          | VPack of TreeTypes.vec_layout
35    
36      val collect : TreeIR.program -> t      val collect : TreeIR.program -> t
37    
# Line 52  Line 53 
53        | VScale of int * int        | VScale of int * int
54        | VLoad of int * int        | VLoad of int * int
55        | VCons of int * int        | VCons of int * int
56          | VPack of Ty.vec_layout
57    
58      structure OpTbl = HashTableFn (      structure OpTbl = HashTableFn (
59        struct        struct
# Line 66  Line 68 
68                  | VScale(w, _) => 0w41 + 0w7 * Word.fromInt w                  | VScale(w, _) => 0w41 + 0w7 * Word.fromInt w
69                  | VLoad(w, _) => 0w43 + 0w7 * Word.fromInt w                  | VLoad(w, _) => 0w43 + 0w7 * Word.fromInt w
70                  | VCons(w, _) => 0w47 + 0w7 * Word.fromInt w                  | VCons(w, _) => 0w47 + 0w7 * Word.fromInt w
71                    | VPack{wid, ...} => 0w51 + 0w7 * Word.fromInt wid
72                (* end case *))                (* end case *))
73          fun sameKey (op1, op2) = (case (op1, op2)          fun sameKey (op1, op2) = (case (op1, op2)
74                 of (RClamp, RClamp) => true                 of (RClamp, RClamp) => true
# Line 77  Line 80 
80                  | (VScale(w1, _), VScale(w2, _)) => (w1 = w2)                  | (VScale(w1, _), VScale(w2, _)) => (w1 = w2)
81                  | (VLoad(w1, _), VLoad(w2, _)) => (w1 = w2)                  | (VLoad(w1, _), VLoad(w2, _)) => (w1 = w2)
82                  | (VCons(w1, _), VCons(w2, _)) => (w1 = w2)                  | (VCons(w1, _), VCons(w2, _)) => (w1 = w2)
83                    | (VPack{wid=w1, ...}, VPack{wid=w2, ...}) => (w1 = w2)
84                  | _ => false                  | _ => false
85                (* end case *))                (* end case *))
86        end)        end)
# Line 164  Line 168 
168                        List.app doExp es)                        List.app doExp es)
169                    | IR.E_Cons(es, ty) => (addType(ty, false); List.app doExp es)                    | IR.E_Cons(es, ty) => (addType(ty, false); List.app doExp es)
170                    | IR.E_Seq(es, ty) => (addType(ty, false); List.app doExp es)                    | IR.E_Seq(es, ty) => (addType(ty, false); List.app doExp es)
171                    | IR.E_Pack(_, es) => List.app doExp es                    | IR.E_Pack(layout, es) => (
172                          List.app (fn ty => addType(ty, false)) (Ty.piecesOf layout);
173                          insertOp (VPack layout);
174                          List.app doExp es)
175                    | IR.E_VLoad(layout, e, i) => let                    | IR.E_VLoad(layout, e, i) => let
176                        val ty as Ty.VecTy(w, pw) = Ty.nthVec(layout, i)                        val ty as Ty.VecTy(w, pw) = Ty.nthVec(layout, i)
177                        in                        in

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

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