diff --git a/loopy/kernel/creation.py b/loopy/kernel/creation.py index d81b1f895a19417f32a428c7ba0bc67696abe310..cc034ae5a63008a8a472a98eae4a56f6e2839325 100644 --- a/loopy/kernel/creation.py +++ b/loopy/kernel/creation.py @@ -1642,7 +1642,7 @@ def _resolve_dependencies(knl, insn, deps): new_deps.append(other_insn.id) found_any = True - if not found_any: + if not found_any and knl.options.check_dep_resolution: raise LoopyError("instruction '%s' declared a depency on '%s', " "which did not resolve to any instruction present in the " "kernel '%s'" diff --git a/loopy/options.py b/loopy/options.py index 7c778681dced904b31e0cc39cff529b8c026640d..0120ed17c779127e2e1800f02f718bac2900d8f1 100644 --- a/loopy/options.py +++ b/loopy/options.py @@ -95,6 +95,11 @@ class Options(ImmutableRecord): determining whether an iname duplication is necessary for the kernel to be schedulable. + .. attribute:: check_dep_resolution + + Whether loopy should issue an error if a dependency + expressions does not match any instructions in the kernel. + .. rubric:: Invocation-related options .. attribute:: skip_arg_checks @@ -200,6 +205,7 @@ class Options(ImmutableRecord): allow_terminal_colors_def), disable_global_barriers=kwargs.get("disable_global_barriers", False), + check_dep_resolution=kwargs.get("check_dep_resolution", True), ) # {{{ legacy compatibility