diff --git a/loopy/kernel.py b/loopy/kernel.py index 4c90e1eec7770bad3fb1f9c525805f49216f4e8e..bef788c0ded57803e6db4bd25380f8534ed80269 100644 --- a/loopy/kernel.py +++ b/loopy/kernel.py @@ -141,13 +141,19 @@ class ArrayArg: shape = (shape,) if shape is not None: - if isinstance(shape, str): - from pymbolic import parse - shape = parse(shape) + def parse_if_necessary(x): + if isinstance(x, str): + from pymbolic import parse + return parse(x) + else: + return x + shape = parse_if_necessary(shape) if not isinstance(shape, tuple): shape = (shape,) + shape = tuple(parse_if_necessary(si) for si in shape) + from pyopencl.compyte.array import ( f_contiguous_strides, c_contiguous_strides)