From 7c5cd8048216d30432435302b7c32eac5a76d3fa Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Thu, 25 Jun 2015 13:45:38 -0500 Subject: [PATCH] Various fixes to rename_iname --- loopy/__init__.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/loopy/__init__.py b/loopy/__init__.py index 58029467c..ecadbf4e9 100644 --- a/loopy/__init__.py +++ b/loopy/__init__.py @@ -669,7 +669,7 @@ def rename_iname(knl, old_iname, new_iname, within): raise ValueError("iname '%s' conflicts with an existing identifier" "--cannot rename" % new_iname) - knl = duplicate_inames([old_iname], within, [new_iname]) + knl = duplicate_inames(knl, [old_iname], within=within, new_inames=[new_iname]) knl = remove_unused_inames(knl, [old_iname]) return knl @@ -1116,8 +1116,19 @@ def add_dependency(kernel, insn_match, dependency): :func:`loopy.context_matching.parse_match`. """ + if dependency not in kernel.id_to_insn: + raise LoopyError("cannot add dependency on non-existent instruction ID '%s'" + % dependency) + def add_dep(insn): - return insn.copy(insn_deps=insn.insn_deps + [dependency]) + new_deps = insn.insn_deps + added_deps = frozenset([dependency]) + if new_deps is None: + new_deps = added_deps + else: + new_deps = new_deps | added_deps + + return insn.copy(insn_deps=new_deps) return map_instructions(kernel, insn_match, add_dep) -- GitLab