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

SCM Repository

[diderot] Diff of /branches/charisee/src/compiler/c-target/opr-to-clang.sml
ViewVC logotype

Diff of /branches/charisee/src/compiler/c-target/opr-to-clang.sml

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

revision 2694, Wed Sep 10 22:55:58 2014 UTC revision 2695, Fri Sep 12 01:55:00 2014 UTC
# Line 15  Line 15 
15      (*-------------- Types ---------------*)      (*-------------- Types ---------------*)
16      val realTy=CL.T_Named(N.mkReal)      val realTy=CL.T_Named(N.mkReal)
17      val star=CL.T_Ptr realTy      val star=CL.T_Ptr realTy
18      fun vecTy d= CL.T_Named(N.OvecTy d)      fun vecTy d= CL.T_Named(N.LocalTy [d])
19      val intTy = CL.intTy      val intTy = CL.intTy
20      fun unionTy d  = CL.T_Named(N.unionTy d)      fun unionTy d  = CL.T_Named(N.unionTy d)
21      val voidTy=CL.voidTy      val voidTy=CL.voidTy
# Line 224  Line 224 
224    
225          fun mkTenToArr(size,paramTy,rhs,vars)=let          fun mkTenToArr(size,paramTy,rhs,vars)=let
226              val params=[mkParam ParamA]@ mkParamsSameType(paramTy, vars)              val params=[mkParam ParamA]@ mkParamsSameType(paramTy, vars)
227    
228    
229              val lhs=indexDiderotType(VarA, size-1)              val lhs=indexDiderotType(VarA, size-1)
230              val stmts=setEq(lhs,rhs)              val stmts=setEq(lhs,rhs)
231          in          in
232              createDec(rtnType, fnName, params,stmts@[voidRtn])              createDec(rtnType, fnName, params,stmts@[voidRtn])
233          end          end
234           fun mkTenToArr2(size,paramTy,rhs,vars)=let
235            fun getVec([],_)=[]
236            | getVec(n::ns,v::vs)=[mkParam([],vecTy n,v)]@getVec(ns,vs)
237    
238            val params=[mkParam ParamA]@getVec(ty,vars)
239            val lhs=indexDiderotType(VarA, size-1)
240            val stmts=setEq(lhs,rhs)
241            in
242                createDec(rtnType, fnName, params,stmts@[voidRtn])
243            end
244    
245    
246          in (case ty          in (case ty
247              of  [d]=>let              of  [d]=>let
# Line 239  Line 252 
252              end              end
253              | [m,n]=>let              | [m,n]=>let
254                  val size=m*n                  val size=m*n
255                  val vars=mkVar m                  (*Fix this *)
256                    val vars=mkVar size
257                  val Vars=varToVars vars                  val Vars=varToVars vars
258                  val rhs=List.map (fn v => indexDiderotType(v, n-1)) Vars                  val rhs=List.map (fn v => indexDiderotType(v, n-1)) Vars
259              in              in
260                  mkTenToArr(size,star,flat rhs,vars)                  mkTenToArr2(size,star,flat rhs,vars)
261              end              end
262              | _=> default              | _=> default
263              (*end case*))              (*end case*))
# Line 348  Line 362 
362   (*not aligned store Vec body *)   (*not aligned store Vec body *)
363   fun mkVec1(tyN,tyO, VarA,VarI,VarV)= let   fun mkVec1(tyN,tyO, VarA,VarI,VarV)= let
364      val (stmt, VarUR)= mkExtVar(tyN, varU,VarV)      val (stmt, VarUR)= mkExtVar(tyN, varU,VarV)
365      val rhs= indexDiderotType(VarUR,tyN-1)      val x=tyO-1
366      val lhs=indexDiderotTypeWithOffset(VarA, tyN-1, VarI)      val rhs= indexDiderotType(VarUR,x)
367        val lhs=indexDiderotTypeWithOffset(VarA, x, VarI)
368      val e=setEq(lhs,rhs)      val e=setEq(lhs,rhs)
369    
370      in      in

Legend:
Removed from v.2694  
changed lines
  Added in v.2695

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