From 45e9c3e7fcfb942bea6e23b88d30af21d56d9357 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 25 May 2017 07:16:57 -0700 Subject: [PATCH] Allow names, exprs, and lp.auto for array offsets --- loopy/kernel/array.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py index a02fc58d9..40612dc83 100644 --- a/loopy/kernel/array.py +++ b/loopy/kernel/array.py @@ -1036,7 +1036,9 @@ class ArrayBase(ImmutableRecord): is_written=is_written) - if self.offset: + import loopy as lp + + if self.offset is lp.auto: offset_name = full_name+"_offset" yield ImplementedDataInfo( target=target, @@ -1202,12 +1204,17 @@ def get_access_info(target, ary, index, eval_expr, vectorization_info): return result def apply_offset(sub): + import loopy as lp + if ary.offset: - offset_name = ary.offset - if offset_name is lp.auto: + if ary.offset is lp.auto: offset_name = array_name+"_offset" - - return var(offset_name) + sub + elif isinstance(ary.offset, str): + offset_name = ary.offset + return var(offset_name) + sub + else: + # assume it's an expression + return ary.offset + sub else: return sub -- GitLab