From bb6013e973ad7e9dcd57334c055e46c3df7dd0c4 Mon Sep 17 00:00:00 2001 From: Matt Wala <wala1@illinois.edu> Date: Tue, 12 Sep 2017 16:04:13 -0500 Subject: [PATCH] Make the duplicate instruction id check also run at preprocess. --- loopy/check.py | 10 ++++++++++ loopy/kernel/creation.py | 12 ++---------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/loopy/check.py b/loopy/check.py index 9115d740e..2ce9ffe0f 100644 --- a/loopy/check.py +++ b/loopy/check.py @@ -96,6 +96,15 @@ def check_insn_attributes(kernel): ", ".join(no_sync_with_scopes - VALID_NOSYNC_SCOPES))) +def check_for_duplicate_insn_ids(knl): + insn_ids = set() + + for insn in knl.instructions: + if insn.id in insn_ids: + raise LoopyError("duplicate instruction id: '%s'" % insn.id) + insn_ids.add(insn.id) + + def check_loop_priority_inames_known(kernel): for prio in kernel.loop_priority: for iname in prio: @@ -375,6 +384,7 @@ def pre_schedule_checks(kernel): try: logger.debug("%s: pre-schedule check: start" % kernel.name) + check_for_duplicate_insn_ids(kernel) check_for_orphaned_user_hardware_axes(kernel) check_for_double_use_of_hw_axes(kernel) check_insn_attributes(kernel) diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py index d9fff6631..c6618d62f 100644 --- a/loopy/kernel/creation.py +++ b/loopy/kernel/creation.py @@ -1205,15 +1205,6 @@ def check_for_duplicate_names(knl): add_name(name, "substitution") -def check_for_duplicate_instruction_ids(knl): - insn_ids = set() - - for insn in knl.instructions: - if insn.id in insn_ids: - raise RuntimeError("duplicate instruction id: '%s'" % insn.id) - insn_ids.add(insn.id) - - def check_for_nonexistent_iname_deps(knl): for insn in knl.instructions: if not set(insn.within_inames) <= knl.all_inames(): @@ -1995,7 +1986,8 @@ def make_kernel(domains, instructions, kernel_data=["..."], **kwargs): from loopy.transform.instruction import uniquify_instruction_ids knl = uniquify_instruction_ids(knl) - check_for_duplicate_instruction_ids(knl) + from loopy.check import check_for_duplicate_insn_ids + check_for_duplicate_insn_ids(knl) if seq_dependencies: knl = add_sequential_dependencies(knl) -- GitLab