diff --git a/loopy/__init__.py b/loopy/__init__.py index 9e6f16fa6e746aa025482b629d58f571aed7b847..a5f1cb63240a119d673904262a065e2c8ef7af50 100644 --- a/loopy/__init__.py +++ b/loopy/__init__.py @@ -453,6 +453,20 @@ def add_prefetch(kernel, var_name, fetch_dims=[], uni_template=None, # }}} +def remove_cses(kernel): + from loopy.symbolic import CSECallbackMapper + + def map_cse(expr, rec): + return expr.child + + new_insns = [] + for insn in kernel.instructions: + new_insns.append( + insn.copy( + expression=CSECallbackMapper(map_cse)(insn.expression))) + + return kernel.copy(instructions=new_insns) +