From 3701b04737a31d49702600fde1d680513cc7afb5 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Fri, 12 Jun 2015 09:59:10 -0500 Subject: [PATCH] Track instruction ID renaming in kernel fusion --- loopy/fusion.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/loopy/fusion.py b/loopy/fusion.py index 434297b1b..306138860 100644 --- a/loopy/fusion.py +++ b/loopy/fusion.py @@ -101,9 +101,23 @@ def _fuse_two_kernels(knla, knlb): from pytools import UniqueNameGenerator insn_id_gen = UniqueNameGenerator( set([insna.id for insna in new_instructions])) + + knl_b_instructions = [] + old_b_id_to_new_b_id = {} for insnb in knlb.instructions: + old_id = insnb.id + new_id = insn_id_gen(old_id) + old_b_id_to_new_b_id[old_id] = new_id + + knl_b_instructions.append( + insnb.copy(id=new_id)) + + for insnb in knl_b_instructions: new_instructions.append( - insnb.copy(id=insn_id_gen(insnb.id))) + insnb.copy( + insn_deps=frozenset( + old_b_id_to_new_b_id[dep_id] + for dep_id in insnb.insn_deps))) # }}} -- GitLab