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 1278, Mon Jun 6 16:27:28 2011 UTC revision 1279, Mon Jun 6 17:09:33 2011 UTC
# Line 18  Line 18 
18      type exp = CL.exp      type exp = CL.exp
19      type stm = CL.stm      type stm = CL.stm
20    
21      (* OpenCL specific types *)
22        val clProgramTy = CL.T_Named "cl_program"
23        val clKernelTy  = CL.T_Named "cl_kernel"
24        val clCmdQueueTy = CL.T_Named "cl_command_queue"
25        val clContextTy = CL.T_Named "cl_context"
26        val clDeviceIdTy = CL.T_Named "cl_device_id"
27        val clPlatformIdTy = CL.T_Named "cl_platform_id"
28        val clMemoryTy = CL.T_Named "cl_mem"
29    
30      datatype strand = Strand of {      datatype strand = Strand of {
31          name : string,          name : string,
32          tyName : string,          tyName : string,
# Line 370  Line 379 
379                                                  "}"])                                                  "}"])
380  (* generates the opencl buffers for the image data *)  (* generates the opencl buffers for the image data *)
381          fun getGlobalDataBuffers(globals,count,contextVar,errVar) = let          fun getGlobalDataBuffers(globals,count,contextVar,errVar) = let
382                  val globalBufferDecl =  CL.mkDecl(CL.clMemoryTy,concat[RN.globalsVarName,"_cl"],NONE)                  val globalBufferDecl =  CL.mkDecl(clMemoryTy,concat[RN.globalsVarName,"_cl"],NONE)
383                  val globalBuffer = CL.mkAssign(CL.mkVar(concat[RN.globalsVarName,"_cl"]), CL.mkApply("clCreateBuffer",                  val globalBuffer = CL.mkAssign(CL.mkVar(concat[RN.globalsVarName,"_cl"]), CL.mkApply("clCreateBuffer",
384                                                                  [CL.mkVar contextVar,                                                                  [CL.mkVar contextVar,
385                                                                  CL.mkVar "CL_MEM_COPY_HOST_PTR",                                                                  CL.mkVar "CL_MEM_COPY_HOST_PTR",
# Line 392  Line 401 
401                                            CL.mkIndirect(CL.mkVar var,concat["size[0]", " * ", var, "->size[1] * ", var, "->size[2]"]))                                            CL.mkIndirect(CL.mkVar var,concat["size[0]", " * ", var, "->size[1] * ", var, "->size[2]"]))
402    
403                   in                   in
404                     CL.mkDecl(CL.clMemoryTy,RN.addBufferSuffix var ,NONE)::                     CL.mkDecl(clMemoryTy, RN.addBufferSuffix var ,NONE)::
405                     CL.mkDecl(CL.clMemoryTy,RN.addBufferSuffixData var ,NONE)::                     CL.mkDecl(clMemoryTy, RN.addBufferSuffixData var ,NONE)::
406                     CL.mkAssign(CL.mkVar(RN.addBufferSuffix var), CL.mkApply("clCreateBuffer",                     CL.mkAssign(CL.mkVar(RN.addBufferSuffix var), CL.mkApply("clCreateBuffer",
407                                                                  [CL.mkVar contextVar,                                                                  [CL.mkVar contextVar,
408                                                                  CL.mkVar "CL_MEM_COPY_HOST_PTR",                                                                  CL.mkVar "CL_MEM_COPY_HOST_PTR",
# Line 489  Line 498 
498                        CL.PARAM([],CL.T_Named("cl_device_id"), deviceVar)                        CL.PARAM([],CL.T_Named("cl_device_id"), deviceVar)
499                      ]                      ]
500                val declarations = [                val declarations = [
501                      CL.mkDecl(CL.clProgramTy, programVar, NONE),                      CL.mkDecl(clProgramTy, programVar, NONE),
502                      CL.mkDecl(CL.clKernelTy, kernelVar, NONE),                      CL.mkDecl(clKernelTy, kernelVar, NONE),
503                      CL.mkDecl(CL.clCmdQueueTy, cmdVar, NONE),                      CL.mkDecl(clCmdQueueTy, cmdVar, NONE),
504                      CL.mkDecl(CL.clContextTy, contextVar, NONE),                      CL.mkDecl(clContextTy, contextVar, NONE),
505                      CL.mkDecl(CL.intTy, errVar, NONE),                      CL.mkDecl(CL.intTy, errVar, NONE),
506                      CL.mkDecl(CL.intTy, numStrandsVar, SOME(CL.I_Exp(CL.mkInt(1,CL.intTy)))),                      CL.mkDecl(CL.intTy, numStrandsVar, SOME(CL.I_Exp(CL.mkInt(1,CL.intTy)))),
507                      CL.mkDecl(CL.intTy, stateSizeVar, NONE),                      CL.mkDecl(CL.intTy, stateSizeVar, NONE),
508                      CL.mkDecl(CL.intTy, "width", NONE),                      CL.mkDecl(CL.intTy, "width", NONE),
509                      CL.mkDecl(CL.intTy, imgDataSizeVar, NONE),                      CL.mkDecl(CL.intTy, imgDataSizeVar, NONE),
510                      (*CL.mkDecl(CL.clDeviceIdTy, deviceVar, NONE), *)                      (*CL.mkDecl(clDeviceIdTy, deviceVar, NONE), *)
511                      CL.mkDecl(CL.T_Ptr(CL.T_Named tyName), inStateVar,NONE),                      CL.mkDecl(CL.T_Ptr(CL.T_Named tyName), inStateVar,NONE),
512                      CL.mkDecl(CL.clMemoryTy,clInstateVar,NONE),                      CL.mkDecl(clMemoryTy,clInstateVar,NONE),
513                      CL.mkDecl(CL.clMemoryTy,clOutStateVar,NONE),                      CL.mkDecl(clMemoryTy,clOutStateVar,NONE),
514                      CL.mkDecl(CL.T_Ptr(CL.T_Named tyName), outStateVar,NONE),                      CL.mkDecl(CL.T_Ptr(CL.T_Named tyName), outStateVar,NONE),
515                      CL.mkDecl(CL.charPtr, clFNVar,SOME(CL.I_Exp(CL.mkStr filename))),                      CL.mkDecl(CL.charPtr, clFNVar,SOME(CL.I_Exp(CL.mkStr filename))),
516  (* FIXME:  use Paths.diderotInclude *)  (* FIXME:  use Paths.diderotInclude *)

Legend:
Removed from v.1278  
changed lines
  Added in v.1279

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