From d5076f4f0635c9e36387fccd58f6d26e773bb8d7 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Tue, 17 Jun 2014 00:28:23 +0100 Subject: [PATCH] Rename inames in insn.forced_iname_deps in duplicate_inames --- loopy/__init__.py | 7 +++++++ loopy/symbolic.py | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/loopy/__init__.py b/loopy/__init__.py index 3d6f71bec..fa146961d 100644 --- a/loopy/__init__.py +++ b/loopy/__init__.py @@ -522,6 +522,13 @@ class _InameDuplicator(ExpandingIdentityMapper): from pymbolic import var return var(new_name) + def map_instruction(self, insn): + new_fid = frozenset( + self.old_to_new.get(iname, iname) + for iname in insn.forced_iname_deps) + return insn.copy( + forced_iname_deps=new_fid) + def duplicate_inames(knl, inames, within, new_inames=None, suffix=None, tags={}): diff --git a/loopy/symbolic.py b/loopy/symbolic.py index 77e92ace1..8f0cd02e3 100644 --- a/loopy/symbolic.py +++ b/loopy/symbolic.py @@ -504,6 +504,9 @@ class ExpandingIdentityMapper(IdentityMapper): return renamed_result, renames + def map_instruction(self, insn): + return insn + def map_kernel(self, kernel): new_insns = [ # While subst rules are not allowed in assignees, the mapper @@ -514,9 +517,14 @@ class ExpandingIdentityMapper(IdentityMapper): for insn in kernel.instructions] new_substs, renames = self._get_new_substitutions_and_renames() + + new_insns = [self.map_instruction(insn) + for insn in rename_subst_rules_in_instructions( + new_insns, renames)] + return kernel.copy( substitutions=new_substs, - instructions=rename_subst_rules_in_instructions(new_insns, renames)) + instructions=new_insns) class ExpandingSubstitutionMapper(ExpandingIdentityMapper): -- GitLab