From cfd5b944fa02b76331bd2f3d6aafddf92e1cb7e2 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 23 Nov 2017 17:20:08 -0600 Subject: [PATCH] Introduce separate UnableToConvertToAffineExpression exception --- loopy/diagnostic.py | 4 ++++ loopy/symbolic.py | 9 ++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/loopy/diagnostic.py b/loopy/diagnostic.py index 512e4ac86..bec0888e5 100644 --- a/loopy/diagnostic.py +++ b/loopy/diagnostic.py @@ -107,6 +107,10 @@ class UnscheduledInstructionError(LoopyError): class ReductionIsNotTriangularError(LoopyError): pass + +class UnableToConvertToAffineExpression(LoopyError): + pass + # }}} diff --git a/loopy/symbolic.py b/loopy/symbolic.py index 6e661f422..7a9765fe2 100644 --- a/loopy/symbolic.py +++ b/loopy/symbolic.py @@ -63,7 +63,7 @@ from islpy import dim_type import re import numpy as np -from loopy.diagnostic import LoopyError +from loopy.diagnostic import UnableToConvertToAffineExpression # {{{ mappers with support for loopy-specific primitives @@ -1292,7 +1292,8 @@ def pwaff_from_expr(space, expr, vars_to_zero=frozenset()): try: return eval_mapper(expr) except UnknownVariableError as e: - raise LoopyError("unable to build (piecewise) affine expression " + raise UnableToConvertToAffineExpression( + "unable to build (piecewise) affine expression " "in terms of variables '%s' " "for expression '%s' " "because '%s: %s'" @@ -1311,8 +1312,6 @@ def simplify_using_aff(kernel, expr): domain = kernel.get_inames_domain(inames) - from pymbolic.mapper.evaluator import UnknownVariableError - try: with isl.SuppressedWarnings(kernel.isl_context): aff = aff_from_expr(domain.space, expr) @@ -1320,7 +1319,7 @@ def simplify_using_aff(kernel, expr): return expr except TypeError: return expr - except UnknownVariableError: + except UnableToConvertToAffineExpression: return expr # FIXME: Deal with assumptions, too. -- GitLab