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 3029, Mon Mar 9 22:04:41 2015 UTC revision 3030, Tue Mar 10 01:24:41 2015 UTC
# Line 31  Line 31 
31    
32      in      in
33    
34      val testing=0      val testing=1
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 121  Line 121 
121          | m(e1::es,rest,params,args,code)=let          | m(e1::es,rest,params,args,code)=let
122    
123              val (e1',params',args',code')= rewriteOp(name,e1,params,index,sx,args)              val (e1',params',args',code')= rewriteOp(name,e1,params,index,sx,args)
124    val _ =print("rewriteOP:\n"^P.printbody e1^"\n\t=>"^ P.printbody e1')
125              in              in
126                  m(es,rest@[e1'],params',args',code@code')                  m(es,rest@[e1'],params',args',code@code')
127              end              end
# Line 212  Line 213 
213      * calls rewriteOps() lift  on ein_exp      * calls rewriteOps() lift  on ein_exp
214      *)      *)
215      fun handleAdd(y,e1,params,index,args)=let      fun handleAdd(y,e1,params,index,args)=let
216    
217          val (e1',params',args',code)=  rewriteOps("add",e1,params,index,[],args)          val (e1',params',args',code)=  rewriteOps("add",e1,params,index,[],args)
218          val body =E.Add e1'          val body =E.Add e1'
219          val einapp= rewriteOrig(y,body,params',index,[],args')          val einapp= rewriteOrig(y,body,params',index,[],args')
# Line 320  Line 322 
322                  val (c,e)=filterSca(sx,p)                  val (c,e)=filterSca(sx,p)
323                  in e end                  in e end
324          | E.Div(e1,e2)                  => E.Div(rewrite e1, rewrite e2)          | E.Div(e1,e2)                  => E.Div(rewrite e1, rewrite e2)
325            | E.Sub(e1,E.Const 0)           => rewrite e1
326          | E.Sub(e1,e2)                  => E.Sub(rewrite e1, rewrite e2)          | E.Sub(e1,e2)                  => E.Sub(rewrite e1, rewrite e2)
327          | E.Add es                      => E.Add(List.map rewrite es)          | E.Add es                      => E.Add(List.map rewrite es)
328          | E.Prod es                     => E.Prod(List.map rewrite es)          | E.Prod es                     => E.Prod(List.map rewrite es)

Legend:
Removed from v.3029  
changed lines
  Added in v.3030

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