From a39c61f4d4a6400d6e514e9806377429ff5916f5 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Thu, 29 Mar 2012 01:10:33 -0400 Subject: [PATCH] Don't obliterate specialized CSEs in common subexpression finding. --- pymbolic/cse.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pymbolic/cse.py b/pymbolic/cse.py index 7ebaae6..700479a 100644 --- a/pymbolic/cse.py +++ b/pymbolic/cse.py @@ -69,7 +69,10 @@ class CSEMapper(IdentityMapper): def map_common_subexpression(self, expr): # don't duplicate CSEs - return prim.wrap_in_cse(self.rec(expr.child), expr.prefix) + if type(expr) is prim.CommonSubexpression: + return prim.wrap_in_cse(self.rec(expr.child), expr.prefix) + else: + return IdentityMapper.map_common_subexpression(self, expr) def map_substitution(self, expr): return type(expr)( -- GitLab