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 1644, Fri Nov 18 20:51:06 2011 UTC revision 1645, Sat Nov 19 15:08:19 2011 UTC
# Line 590  Line 590 
590                genKeneralGlobalParams(rest, concat[line, "__global void *", RN.addBufferSuffixData name, ",\n"])                genKeneralGlobalParams(rest, concat[line, "__global void *", RN.addBufferSuffixData name, ",\n"])
591    
592          fun genUpdateMethod (Strand{name, tyName, state,...},globals,imgGlobals) = let          fun genUpdateMethod (Strand{name, tyName, state,...},globals,imgGlobals) = let
 (* FIXME: read the file using TextIO.inputAll *)  
               fun readPlaceholders () = let  
                     val infile = concat[Paths.diderotSrc, "/lib/cl-target/cl-kernels/update_cl.in"]  
                     val ins = TextIO.openIn infile  
                     fun loop ins = (case TextIO.inputLine ins  
                            of SOME line => line :: loop ins  
                             | NONE => []  
                          (* end case *))  
                    in  
                      loop ins before TextIO.closeIn ins  
                    end  
               val updateFn = readPlaceholders()  
593                val imageDataStms = List.map                val imageDataStms = List.map
594                        (fn (x,_) => concat[                        (fn (x,_) => concat[
595                            RN.globalImageDataName, ".", RN.imageDataName x, " = ",                            RN.globalImageDataName, ".", RN.imageDataName x, " = ",
596                            RN.addBufferSuffixData x, ";","\n"                            RN.addBufferSuffixData x, ";","\n"
597                          ])                          ])
598                          (!imgGlobals)                          (!imgGlobals)
599                val placeHolders = [(RN.place_holders, tyName),                fun select ([], a, _) = a
600                                    (RN.p_addDatPtr, (case !imgGlobals                  | select (_, _, b) = b
601                                                      of [] => ""                val placeHolders = [
602                                                      |  _ => ","                        (RN.place_holders, tyName),
603                                                     (*end of case*))),                        (RN.p_addDatPtr, select (!imgGlobals, "", ",")),
604                                    (RN.p_addGlobals, (case !globals                        (RN.p_addGlobals, select (!globals, "", ",")),
605                                                      of [] => ""                        (RN.p_globals, select (!globals, "", "__global Diderot_Globals_t *diderotGlobals")),
606                                                      |  _ => ","                        (RN.p_globalVar, select (!globals, "0", RN.globalsVarName)),
607                                                     (*end of case*))),                        (RN.p_dataVar, select (!globals, "0", RN.globalImageDataName)),
                                   (RN.p_globals, (case !globals  
                                                     of [] => ""  
                                                     |  _ => "__global Diderot_Globals_t *diderotGlobals"  
                                                    (*end of case*))),  
                                   (RN.p_globalVar, (case !globals  
                                                     of [] => "0"  
                                                     |  _ => RN.globalsVarName  
                                                    (*end of case*))),  
                                   (RN.p_dataVar, (case !globals  
                                                     of [] => "0"  
                                                     |  _ => RN.globalImageDataName  
                                                    (*end of case*))),  
608                                    (RN.p_dataPtr, genKeneralGlobalParams (!imgGlobals, "")),                                    (RN.p_dataPtr, genKeneralGlobalParams (!imgGlobals, "")),
609                                    (RN.p_dataAssign,  (case !imgGlobals                        (RN.p_dataAssign,  select (!imgGlobals, "",
610                                                      of [] => ""                          String.concat("Diderot_data_ptr_t diderotDataPtrs;\n" :: imageDataStms)))
611                                                      |  _ => concat["Diderot_data_ptr_t diderotDataPtrs;\n",                      ]
                                                      String.concat imageDataStms]  
                                                    (*end of case*)))]  
612                in                in
613                  CL.verbatim updateFn placeHolders                  CL.verbatim [CLUpdateFrag.text] placeHolders
614                end                end
615    
   
616          fun genStrandCopy(Strand{tyName,name,state,...}) = let          fun genStrandCopy(Strand{tyName,name,state,...}) = let
617                val params = [                val params = [
618                        CL.PARAM(["__global"], CL.T_Ptr(CL.T_Named tyName), "selfIn"),                        CL.PARAM(["__global"], CL.T_Ptr(CL.T_Named tyName), "selfIn"),

Legend:
Removed from v.1644  
changed lines
  Added in v.1645

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