From 41a88c2c9ba8d91448e0e9f56455c8eba110be91 Mon Sep 17 00:00:00 2001 From: Tim Warburton <timwar@caam.rice.edu> Date: Tue, 8 Nov 2011 23:58:33 -0600 Subject: [PATCH] Properly recurse in CSE expansion. --- loopy/symbolic.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/loopy/symbolic.py b/loopy/symbolic.py index 56cd896eb..63a564eaf 100644 --- a/loopy/symbolic.py +++ b/loopy/symbolic.py @@ -625,6 +625,8 @@ class ParametrizedSubstitutor(IdentityMapper): raise RuntimeError("CSE '%s' must be invoked with %d arguments" % (expr.name, len(arg_names))) + cse_expr = self.rec(cse_expr) + if self.wrap_cse: from pymbolic.primitives import CommonSubexpression return CommonSubexpression(cse_expr, expr.name) @@ -647,7 +649,7 @@ class ParametrizedSubstitutor(IdentityMapper): subst_map = SubstitutionMapper(make_subst_func( dict(zip(arg_names, expr.parameters)))) - cse_expr = subst_map(cse_expr) + cse_expr = self.rec(subst_map(cse_expr)) if self.wrap_cse: return CommonSubexpression(cse_expr, cse_name) -- GitLab