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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/high-to-mid/split.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/high-to-mid/split.sml

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

revision 2845, Fri Dec 12 06:46:23 2014 UTC revision 2847, Mon Dec 15 02:17:32 2014 UTC
# Line 31  Line 31 
31    
32      in      in
33    
34      val testing=1      val testing=0
35      fun setEin(params,index,body)=Ein.EIN{params=params, index=index, body=body}      fun setEin(params,index,body)=Ein.EIN{params=params, index=index, body=body}
36      fun assignEinApp(y,params,index,body,args)= (y,DstIL.EINAPP(setEin(params,index,body),args))      fun assignEinApp(y,params,index,body,args)= (y,DstIL.EINAPP(setEin(params,index,body),args))
37      val einappzero=DstIL.EINAPP(setEin([],[],E.Const 0),[])      val einappzero=DstIL.EINAPP(setEin([],[],E.Const 0),[])
# Line 205  Line 205 
205          val zero=   (setEinZero y,[])          val zero=   (setEinZero y,[])
206          val default=((y,einapp),[])          val default=((y,einapp),[])
207          val sumIndex=ref []          val sumIndex=ref []
208            val str="Poorly formed EIN operator. Argument needs to be applied in High-IL"
209          fun rewrite b=(case b          fun rewrite b=(case b
210              of E.Probe _              => default              of E.Probe (E.Conv _,_)   => default
211                | E.Probe _               => raise Fail str
212              | E.Conv _                => zero              | E.Conv _                => zero
213              | E.Field _               => zero              | E.Field _               => zero
214              | E.Apply _               => zero              | E.Apply _               => zero
# Line 219  Line 221 
221              | E.Neg e1                => handleNeg(y,e1,params,index,args)              | E.Neg e1                => handleNeg(y,e1,params,index,args)
222              | E.Sub (e1,e2)           => handleSub(y,e1,e2,params,index,args)              | E.Sub (e1,e2)           => handleSub(y,e1,e2,params,index,args)
223              | E.Div (e1,e2)           => handleDiv(y,e1,e2,params,index,args)              | E.Div (e1,e2)           => handleDiv(y,e1,e2,params,index,args)
224              | E.Sum(_,E.Prod[E.Eps2 _, E.Probe _ ])      => default              | E.Sum(_,E.Prod[E.Eps2 _, E.Probe(E.Conv _,_)  ])      => default
225              | E.Sum(_,E.Prod[E.Epsilon _, E.Probe _ ])      => default              | E.Sum(_,E.Prod[E.Epsilon _, E.Probe(E.Conv _,_)  ])      => default
226              | E.Sum(_,E.Probe _)      => default              | E.Sum(_,E.Probe(E.Conv _,_))    => default
227              | E.Sum(_,E.Conv _)       => zero              | E.Sum(_,E.Conv _)       => zero
228              | E.Sum(sx,E.Prod e1)     => handleSumProd(y,e1,params,index,sx,args)              | E.Sum(sx,E.Prod e1)     => handleSumProd(y,e1,params,index,sx,args)
229              | E.Sum(sx,E.Neg n)       => rewrite (E.Neg(E.Sum(sx,n)))              | E.Sum(sx,E.Neg n)       => rewrite (E.Neg(E.Sum(sx,n)))

Legend:
Removed from v.2845  
changed lines
  Added in v.2847

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