diff options
Diffstat (limited to 'Tools/CodeGen/CodeGen.m')
-rw-r--r-- | Tools/CodeGen/CodeGen.m | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Tools/CodeGen/CodeGen.m b/Tools/CodeGen/CodeGen.m index c51eaf0..d3d0dfc 100644 --- a/Tools/CodeGen/CodeGen.m +++ b/Tools/CodeGen/CodeGen.m @@ -62,6 +62,8 @@ AssignVariable::usage = "AssignVariable[dest_, src_] returns a block of code " < "that assigns 'src' to 'dest'."; AssignVariableInLoop::usage = "AssignVariable[dest_, src_] returns a block of code " <> "that assigns 'src' to 'dest'."; +MaybeAssignVariableInLoop::usage = "MaybeAssignVariable[dest_, src_, cond_] returns a block of code " <> + "that assigns 'src' to 'dest'."; DeclareVariablesInLoopVectorised::usage = ""; AssignVariablesInLoopVectorised::usage = ""; TestForNaN::usage = "TestForNaN[expr_] returns a block of code " <> @@ -273,6 +275,11 @@ AssignVariableInLoop[dest_, src_] := TestForNaN[dest]}; *) +MaybeAssignVariableInLoop[dest_, src_, cond_] := + If [cond, + {dest, " = useMatter ? ", src, " : 0.0", EOL[]}, + {dest, " = ", src, EOL[]}]; + (* TODO: move these into OpenMP loop *) DeclareVariablesInLoopVectorised[dests_, temps_, srcs_] := { |