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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/tree-il/getTypes.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/tree-il/getTypes.sml

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

revision 2665, Tue Jun 3 02:37:46 2014 UTC revision 2668, Thu Jun 12 03:29:04 2014 UTC
# Line 24  Line 24 
24          | Op.addVec d               => ([vecTy d],[ILF.OP(Op.addVec d)])          | Op.addVec d               => ([vecTy d],[ILF.OP(Op.addVec d)])
25          | Op.subVec d               => ([vecTy d],[ILF.OP(Op.subVec d)])          | Op.subVec d               => ([vecTy d],[ILF.OP(Op.subVec d)])
26          | Op.prodVec d              => ([vecTy d],[ILF.OP(Op.prodVec d)])          | Op.prodVec d              => ([vecTy d],[ILF.OP(Op.prodVec d)])
27          | Op.prodScaV d             => ([vecTy d],[ILF.CONS(Ty.TensorTy[d]),ILF.OP(Op.prodScaV d)])          | Op.prodScaV d             => ([vecTy d],[ILF.CONSV d,ILF.OP(Op.prodScaV d)]) (*need different cons here*)
28          | Op.sumVec d               => ([Ty.unionTy d],   [ILF.OP(Op.sumVec d)])          | Op.sumVec d               => ([Ty.unionTy d],   [ILF.OP(Op.sumVec d)])
29          | _ => default          | _ => default
30          (* end case *))          (* end case *))
# Line 33  Line 33 
33    
34      (*fun peel(IL.E_Lit( offset))=offset*)      (*fun peel(IL.E_Lit( offset))=offset*)
35    
36      fun mkFnC(IL.E_LoadVec(fTy, oTy,_, offset))=[ILF.LD(fTy,oTy)]      fun mkFnC(IL.E_LoadVec(A,fTy, oTy,_, offset))=[ILF.LD(A,fTy,oTy)]
37        | mkFnC(IL.E_mkVec(_,oTy,pieces,_))= [ILF.MKVEC(oTy,pieces)]        | mkFnC(IL.E_mkVec(A,rTy,oTy,_,_,_))= [ILF.MKVEC(A,rTy,oTy)]
38        | mkFnC(IL.E_Cons (ty , exps))= [ILF.CONS ty]        | mkFnC(IL.E_Cons (ty , exps))= [ILF.CONS ty]
39        | mkFnC(IL.E_LoadVecAligned (fTy, oTy,_, offset))=[ILF.LDAligned (fTy,oTy)]        | mkFnC e= []
40        | mkFnC(IL.E_mkVecAligned (_,oTy,pieces,_))= [ILF.MKVECAligned (oTy,pieces)]  
41    
42    
43      (*Get types of Exp*)      (*Get types of Exp*)
# Line 59  Line 59 
59              | IL.E_Lit _                => t              | IL.E_Lit _                => t
60              | IL.E_Apply (_, exps)      => add(default,exps)              | IL.E_Apply (_, exps)      => add(default,exps)
61              | IL.E_Cons (ty , exps)     => add(([ty],mkFnC exp),exps)              | IL.E_Cons (ty , exps)     => add(([ty],mkFnC exp),exps)
62              | IL.E_LoadVec(ty,_,exps,_) => add(([vecTy ty],mkFnC exp),[exps])              | IL.E_LoadVec(_,ty,_,exps,_) => add(([vecTy ty],mkFnC exp),[exps])
63              | IL.E_mkVec(_,ty,_,exps)   => add(([vecTy ty,Ty.unionTy ty],mkFnC exp), exps)              | IL.E_mkVec(_,_,ty,_,_,exps)   => add(([vecTy ty,Ty.unionTy ty],mkFnC exp), [exps])
   
64              | IL.E_Op(Op, exps)         => add(TypeofOp Op, exps)              | IL.E_Op(Op, exps)         => add(TypeofOp Op, exps)
65              (*end case*))              (*end case*))
66          end          end
# Line 97  Line 96 
96    
97          in t2          in t2
98          end          end
99    
100    
101        | getTypesFiltered(t, _)= t        | getTypesFiltered(t, _)= t
102    
103    

Legend:
Removed from v.2665  
changed lines
  Added in v.2668

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