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

SCM Repository

[diderot] Diff of /branches/lamont/src/compiler/c-target/c-target.sml
ViewVC logotype

Diff of /branches/lamont/src/compiler/c-target/c-target.sml

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

revision 2190, Sun Feb 24 03:43:58 2013 UTC revision 2191, Sun Feb 24 06:12:43 2013 UTC
# Line 191  Line 191 
191                (* Extra update params for spatial communication *)                (* Extra update params for spatial communication *)
192                val updateParams = (if hasCom                val updateParams = (if hasCom
193                                   then   params @ [CL.PARAM([], CL.T_Ptr(CL.T_Ptr(CL.T_Named tyName)),N.strandsName),                                   then   params @ [CL.PARAM([], CL.T_Ptr(CL.T_Ptr(CL.T_Named tyName)),N.strandsName),
194                                          CL.PARAM([], CL.T_Ptr(CL.T_Named(N.gridContextTy)),N.gridCxtName)]                                          CL.PARAM([], CL.T_Ptr(CL.T_Named(N.gridContextTy)),N.gridCxtName),
195                                             CL.PARAM([],CL.T_Ptr(CL.T_Named(N.queryPoolTy)),N.queryPoolName)]
196                                   else params)                                   else params)
197    
198    
# Line 370  Line 371 
371    
372        (* create the target-specific substitution list *)        (* create the target-specific substitution list *)
373          fun mkSubs (tgt : target_desc, hasCom, hasReduce, gridIs2D,Strand{name, tyName, ...}) = let          fun mkSubs (tgt : target_desc, hasCom, hasReduce, gridIs2D,Strand{name, tyName, ...}) = let
374          val rebuild2D =  "\nupdateGrid2D(wrld->inState, wrld->outState, &wrld->gridCtx);"          val buidGrid=  "\nbuildGrid2D(wrld->inState,wrld->gridCtx);\n"
375          val rebuild3D =  "\nupdateGrid3D(wrld->inState, wrld->outState, &wrld->gridCtx);"          val queryInit = concat["\nwrld->", N.queryPoolName,"  = ", N.queryAllocFun, "();"]
376          val construct2D = "\nconstructGrid2D(wrld->inState, &wrld->gridCtx);"          val gridInit = concat["wrld->", N.gridCxtName,"= ", N.gridAllocFun, "(&glob->qGridDim,",
377          val construct3D =  "\nconstructGrid3D(wrld->inState, &wrld->gridCtx);"                                "wrld->numStrands,",
378          val gridInit = concat["wrld->gridCtx.gridSize = &glob->qGridDim;",                                "&glob->qCellDim,",
379                                "wrld->gridCtx.cellSize = &glob->qCellDim;",                                "&glob->qWinDim);\n"]
                               "wrld->gridCtx.winowDim = &glob->qWinDim;",  
                               "wrld->gridCtx.numberOfStrands = wrld->numStrands;\n"]  
         val grid3DInit = concat[gridInit,construct3D]  
         val grid2DInit = concat[gridInit,construct2D]  
380          val globalReduce = concat[#namespace tgt," Global_Reduction(wrld,glob,wrld->inState);"]          val globalReduce = concat[#namespace tgt," Global_Reduction(wrld,glob,wrld->inState);"]
381          in          in
382           [           [
# Line 388  Line 385 
385                  ("PREFIX",      #namespace tgt),                  ("PREFIX",      #namespace tgt),
386                  ("SRCFILE",     #srcFile tgt),                  ("SRCFILE",     #srcFile tgt),
387                  ("STRAND",      name),                  ("STRAND",      name),
388            ("DEFINE_GRID_DIMENSION", if hasCom then (if gridIs2D then "#define DIDEROT_GRID_2D"
389                                                                  else "#define DIDEROT_GRID_3D")
390                                      else ""),
391            ("QUERY_POOL_ALLOCATION", if hasCom then queryInit else ""),
392          ("GLOBAL_REDUCE", if hasReduce then globalReduce else ""),          ("GLOBAL_REDUCE", if hasReduce then globalReduce else ""),
         ("REBUILD_GRID", if hasCom then (if gridIs2D then rebuild2D  else rebuild3D) else ""),  
393          ("GRID_D", if gridIs2D then "2" else "3"),          ("GRID_D", if gridIs2D then "2" else "3"),
394          ("BUILD_GRID", if hasCom then (if gridIs2D then grid2DInit else grid3DInit) else ""),          ("BUILD_GRID", if hasCom then buidGrid else ""),
395          ("PASS_GRID",  if hasCom then ",wrld->inState,&wrld->gridCtx" else ""),          ("GRID_INIT", if hasCom then gridInit else ""),
396            ("PASS_GRID",  if hasCom then ",wrld->inState,wrld->gridCtx,wrld->queryPool" else ""),
397                  ("STRANDTY",    tyName)                  ("STRANDTY",    tyName)
398                ]                ]
399          end          end
# Line 468  Line 469 
469                      then (CL.T_Ptr(CL.T_Named "Diderot_Sched_t"), "sched") :: extras                      then (CL.T_Ptr(CL.T_Named "Diderot_Sched_t"), "sched") :: extras
470                      else (CL.T_Named "uint32_t", "numActive") :: extras                      else (CL.T_Named "uint32_t", "numActive") :: extras
471             val extras = if hasCom             val extras = if hasCom
472              then (CL.T_Named(N.gridContextTy),N.gridCxtName):: extras              then (CL.T_Ptr(CL.T_Named(N.queryPoolTy)),N.queryPoolName)::(CL.T_Ptr(CL.T_Named(N.gridContextTy)),N.gridCxtName):: extras
473              else extras              else extras
474    
475                in                in
# Line 526  Line 527 
527                      ();                      ();
528    
529                if(hasCom)                if(hasCom)
530                then (if(gridIs2D)then ppDecl (CL.verbatim [Grid2DFrag.text] substitutions)                then (ppDecl(CL.verbatim [QueryPool.text] substitutions); if(gridIs2D)then ppDecl (CL.verbatim [Grid2DFrag.text] substitutions)
531                                  else ppDecl (CL.verbatim [Grid3DFrag.text] substitutions))                                  else ppDecl (CL.verbatim [Grid3DFrag.text] substitutions))
532                else ();                else ();
533  List.app ppDecl outputs;  List.app ppDecl outputs;
# Line 609  Line 610 
610                      ();                      ();
611    
612        if(hasCom)        if(hasCom)
613                then (if(gridIs2D)then ppDecl (CL.verbatim [Grid2DFrag.text] substitutions)                then (ppDecl(CL.verbatim [QueryPool.text] substitutions); if(gridIs2D)then ppDecl (CL.verbatim [Grid2DFrag.text] substitutions)
614                                  else ppDecl (CL.verbatim [Grid3DFrag.text] substitutions))                                  else ppDecl (CL.verbatim [Grid3DFrag.text] substitutions))
615                else ();                else ();
616                  List.app ppDecl outputs;                  List.app ppDecl outputs;

Legend:
Removed from v.2190  
changed lines
  Added in v.2191

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