From 61cf96ad6944bff6736f1059c1e7adafd8a64902 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 21 Jun 2017 08:46:42 -0500 Subject: [PATCH] Fix ISPC temporary privatization [ci skip] --- loopy/target/ispc.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/loopy/target/ispc.py b/loopy/target/ispc.py index 80a69bd00..35dade904 100644 --- a/loopy/target/ispc.py +++ b/loopy/target/ispc.py @@ -32,6 +32,7 @@ from loopy.diagnostic import LoopyError from loopy.symbolic import Literal from pymbolic import var import pymbolic.primitives as p +from loopy.kernel.data import temp_var_scope from pymbolic.mapper.stringifier import PREC_NONE from pytools import memoize_method @@ -81,7 +82,6 @@ class ExprToISPCExprMapper(ExpressionToCExpressionMapper): def map_variable(self, expr, type_context): tv = self.kernel.temporary_variables.get(expr.name) - from loopy.kernel.data import temp_var_scope if tv is not None and tv.scope == temp_var_scope.PRIVATE: # FIXME: This is a pretty coarse way of deciding what # private temporaries get duplicated. Refine? (See also @@ -101,7 +101,10 @@ class ExprToISPCExprMapper(ExpressionToCExpressionMapper): ary = self.find_array(expr) - if isinstance(ary, TemporaryVariable): + if (isinstance(ary, TemporaryVariable) + and ary.scope == temp_var_scope.PRIVATE): + # generate access code for acccess to private-index temporaries + gsize, lsize = self.kernel.get_grid_size_upper_bounds_as_exprs() if lsize: lsize, = lsize @@ -305,7 +308,6 @@ class ISPCASTBuilder(CASTBuilder): shape = decl_info.shape - from loopy.kernel.data import temp_var_scope if temp_var.scope == temp_var_scope.PRIVATE: # FIXME: This is a pretty coarse way of deciding what # private temporaries get duplicated. Refine? (See also -- GitLab