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 1331, Mon Jun 13 01:18:03 2011 UTC revision 1332, Mon Jun 13 01:23:34 2011 UTC
# Line 79  Line 79 
79          topDecls : CL.decl list ref,          topDecls : CL.decl list ref,
80          strands : strand AtomTable.hash_table,          strands : strand AtomTable.hash_table,
81          initially :  CL.decl ref,          initially :  CL.decl ref,
82          numDims: int ref,          numDims: int ref,               (* number of dimensions in initially iteration *)
83          imgGlobals: (string * int) list ref,          imgGlobals: (string * int) list ref,
84          prFn: CL.decl ref          prFn: CL.decl ref
85        }        }
# Line 205  Line 205 
205                    topDecls = ref [],                    topDecls = ref [],
206                    strands = AtomTable.mkTable (16, Fail "strand table"),                    strands = AtomTable.mkTable (16, Fail "strand table"),
207                    initially = ref(CL.D_Comment["missing initially"]),                    initially = ref(CL.D_Comment["missing initially"]),
208                    numDims = ref(0),                    numDims = ref 0,
209                    imgGlobals = ref[],                    imgGlobals = ref[],
210                    prFn = ref(CL.D_Comment(["No Print Function"]))                    prFn = ref(CL.D_Comment(["No Print Function"]))
211                  })                  })
# Line 251  Line 251 
251                end                end
252           (* create and register the initially function for a program *)           (* create and register the initially function for a program *)
253          fun initially {          fun initially {
254                prog = Prog{name=progName, strands, initially, ...},                prog = Prog{name=progName, strands, initially, numDims, ...},
255                isArray : bool,                isArray : bool,
256                iterPrefix : stm list,                iterPrefix : stm list,
257                iters : (var * exp * exp) list,                iters : (var * exp * exp) list,
# Line 321  Line 321 
321                      [CL.mkReturn(SOME(CL.E_Var "wrld"))])                      [CL.mkReturn(SOME(CL.E_Var "wrld"))])
322                val initFn = CL.D_Func([], worldTy, N.initially, [], body)                val initFn = CL.D_Func([], worldTy, N.initially, [], body)
323                in                in
324                    numDims := nDims;
325                  initially := initFn                  initially := initFn
326                end                end
327    
# Line 515  Line 516 
516                          CL.mkAssign(CL.mkVar outState,CL.mkSubscript(CL.mkVar "selfOut", CL.mkStr "x"))                          CL.mkAssign(CL.mkVar outState,CL.mkSubscript(CL.mkVar "selfOut", CL.mkStr "x"))
517                        ]                        ]
518                      else let                      else let
519                        val index = CL.mkBinOp(CL.mkBinOp(CL.mkVar "x",CL.#*,CL.mkVar "width"),CL.#+,CL.mkVar "y")                        val index = CL.mkBinOp(
520                                CL.mkBinOp(CL.mkVar "x", CL.#*, CL.mkVar "width"), CL.#+, CL.mkVar "y")
521                        in [                        in [
522                          CL.mkAssign(CL.mkVar inState, CL.mkSubscript(CL.mkVar "selfIn",index)),                          CL.mkAssign(CL.mkVar inState, CL.mkSubscript(CL.mkVar "selfIn",index)),
523                          CL.mkAssign(CL.mkVar outState,CL.mkSubscript(CL.mkVar "selfOut",index))                          CL.mkAssign(CL.mkVar outState,CL.mkSubscript(CL.mkVar "selfOut",index))

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

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