From 7e5adbd1065a49c152499c0389f6a395ff6b7e6d Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 9 Jun 2016 19:27:40 -0500 Subject: [PATCH] Add simplify_using_affs --- loopy/symbolic.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/loopy/symbolic.py b/loopy/symbolic.py index cef32851f..d800a043b 100644 --- a/loopy/symbolic.py +++ b/loopy/symbolic.py @@ -1083,6 +1083,29 @@ def aff_from_expr(space, expr, vars_to_zero=set()): # }}} +# {{{ simplify using affs + +def simplify_using_affs(kernel, expr): + inames = get_dependencies(expr) & kernel.all_inames() + + domain = kernel.get_inames_domain(inames) + + try: + with isl.SuppressedWarnings(kernel.isl_context): + aff = aff_from_expr(domain.space, expr) + except isl.Error: + return expr + except TypeError: + return expr + + # FIXME: Deal with assumptions, too. + aff = aff.gist(domain) + + return aff_to_expr(aff) + +# }}} + + # {{{ expression <-> constraint conversion def eq_constraint_from_expr(space, expr): -- GitLab