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

SCM Repository

[diderot] Diff of /branches/pure-cfg/src/compiler/cl-target/cl-target.sml
ViewVC logotype

Diff of /branches/pure-cfg/src/compiler/cl-target/cl-target.sml

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

revision 1330, Mon Jun 13 00:13:54 2011 UTC revision 1331, Mon Jun 13 01:18:03 2011 UTC
# Line 235  Line 235 
235          fun init (Prog{topDecls, ...}, init) = let          fun init (Prog{topDecls, ...}, init) = let
236                                    val globalsDecl = CL.mkAssign(CL.E_Var RN.globalsVarName,                                    val globalsDecl = CL.mkAssign(CL.E_Var RN.globalsVarName,
237                      CL.mkApply("malloc", [CL.mkApply("sizeof",[CL.mkVar RN.globalsTy])]))                      CL.mkApply("malloc", [CL.mkApply("sizeof",[CL.mkVar RN.globalsTy])]))
   
238                val initGlobalsCall = CL.mkCall(RN.initGlobalsHelper,[])                val initGlobalsCall = CL.mkCall(RN.initGlobalsHelper,[])
   
239                                          val initFn = CL.D_Func(                                          val initFn = CL.D_Func(
240                      [], CL.voidTy, RN.initGlobals, [],                      [], CL.voidTy, RN.initGlobals, [],
241                      CL.mkBlock([globalsDecl,initGlobalsCall]))                      CL.mkBlock([globalsDecl,initGlobalsCall]))
# Line 492  Line 490 
490                        CL.PARAM(["__global"], CL.T_Ptr(CL.T_Named tyName), "selfIn"),                        CL.PARAM(["__global"], CL.T_Ptr(CL.T_Named tyName), "selfIn"),
491                        CL.PARAM(["__global"], CL.T_Ptr(CL.T_Named tyName), "selfOut"),                        CL.PARAM(["__global"], CL.T_Ptr(CL.T_Named tyName), "selfOut"),
492                        CL.PARAM(["__global"], CL.intTy, "width"),                        CL.PARAM(["__global"], CL.intTy, "width"),
493                                                           CL.PARAM([], CL.T_Ptr(CL.T_Named RN.globalsTy),                        CL.PARAM([], CL.T_Ptr(CL.T_Named RN.globalsTy), RN.globalsVarName)
                         concat[RN.globalsVarName])  
494                      ] @ genKeneralGlobalParams(!imgGlobals)                      ] @ genKeneralGlobalParams(!imgGlobals)
495                val thread_ids = if nDims = 1                val thread_ids = if nDims = 1
496                      then [                      then [
497                          CL.mkDecl(CL.intTy, "x", SOME(CL.I_Exp(CL.mkInt 0))),                            CL.mkDecl(CL.intTy, "x",
498                          CL.mkAssign(CL.mkVar "x",CL.mkApply(RN.getGlobalThreadId,[CL.mkInt 0]))                              SOME(CL.I_Exp(CL.mkApply(RN.getGlobalThreadId,[CL.mkInt 0]))))
499                        ]                        ]
500                      else [                      else if nDims = 2
501                          CL.mkDecl(CL.intTy, "x", SOME(CL.I_Exp(CL.mkInt 0))),                        then [
502                          CL.mkDecl(CL.intTy, "y", SOME(CL.I_Exp(CL.mkInt 0))),                            CL.mkDecl(CL.intTy, "x",
503                          CL.mkAssign(CL.mkVar "x",  CL.mkApply(RN.getGlobalThreadId,[CL.mkInt 0])),                              SOME(CL.I_Exp(CL.mkApply(RN.getGlobalThreadId,[CL.mkInt 0])))),
504                          CL.mkAssign(CL.mkVar "y",CL.mkApply(RN.getGlobalThreadId,[CL.mkInt 1]))                            CL.mkDecl(CL.intTy, "y",
505                                SOME(CL.I_Exp(CL.mkApply(RN.getGlobalThreadId,[CL.mkInt 1]))))
506                        ]                        ]
507                        else raise Fail "nDims > 2"
508                val strandDecl = [                val strandDecl = [
509                      CL.mkDecl(CL.T_Named tyName, inState, NONE),                      CL.mkDecl(CL.T_Named tyName, inState, NONE),
510                      CL.mkDecl(CL.T_Named tyName, outState,NONE)]                        CL.mkDecl(CL.T_Named tyName, outState, NONE)
511                        ]
512                val strandObjects = if nDims = 1                val strandObjects = if nDims = 1
513                      then [                      then [
514                          CL.mkAssign( CL.mkVar inState, CL.mkSubscript(CL.mkVar "selfIn", CL.mkStr "x")),                          CL.mkAssign( CL.mkVar inState, CL.mkSubscript(CL.mkVar "selfIn", CL.mkStr "x")),

Legend:
Removed from v.1330  
changed lines
  Added in v.1331

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