aboutsummaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
Diffstat (limited to 'Tools')
-rw-r--r--Tools/CodeGen/CodeGenCactus.m13
-rw-r--r--Tools/CodeGen/Vectorisation.m8
2 files changed, 15 insertions, 6 deletions
diff --git a/Tools/CodeGen/CodeGenCactus.m b/Tools/CodeGen/CodeGenCactus.m
index 3b17a9c..22a1dd2 100644
--- a/Tools/CodeGen/CodeGenCactus.m
+++ b/Tools/CodeGen/CodeGenCactus.m
@@ -85,11 +85,14 @@ DefFn[
dataType]];
DefFn[
- AssignVariableInLoop[dest:(_String|_Symbol), src:CodeGenBlock, vectorise_:False] :=
- Module[
- {loader},
- loader[x_] := If[vectorise, {"vec_load(", x, ")"}, x];
- {dest, " = ", loader[src], EOL[]}]];
+ AssignVariableInLoop[dest:(_String|_Symbol), src:CodeGenBlock,
+ vectorise : False : False] :=
+ {dest, " = ", src, EOL[]}];
+
+DefFn[
+ AssignVariableInLoop[dest:(_String|_Symbol), src:CodeGenBlock,
+ True] :=
+ VectorisationAssignVariableInLoop[dest, src]];
DefFn[
DeclareAssignVariableInLoop[type_String, dest:(_String|_Symbol), src:(_String|_Symbol)] :=
diff --git a/Tools/CodeGen/Vectorisation.m b/Tools/CodeGen/Vectorisation.m
index 842282b..ab32421 100644
--- a/Tools/CodeGen/Vectorisation.m
+++ b/Tools/CodeGen/Vectorisation.m
@@ -18,12 +18,14 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*)
-BeginPackage["Vectorisation`", {"Errors`", "Helpers`", "Kranc`", "CodeGenC`"}];
+BeginPackage["Vectorisation`", {"Errors`", "Helpers`", "Kranc`", "CodeGenC`",
+ "CodeGen`"}];
VectoriseExpression;
VectorisationLocalsToGridFunctions;
OpenCLLocalsToGridFunctions;
VectorisationSimpleAssignEquationList;
+VectorisationAssignVariableInLoop;
Begin["`Private`"];
@@ -278,6 +280,10 @@ DefFn[
{prepareStorePartialVariableInLoop["i", "vecimin", "vecimax"],
MapThread[storePartialVariableInLoop, {lhss, rhss}]}];
+DefFn[
+ VectorisationAssignVariableInLoop[dest:(_String|_Symbol), src:CodeGenBlock] :=
+ {dest, " = ", "vec_load(", src, ")", EOL[]}];
+
End[];
EndPackage[];