diff --git a/loopy/check.py b/loopy/check.py index b4e117e25bfce0d4cafd0b843bb6a3c3952eeb8f..fa74fd43b32fa158a56496231aef480da6585d2e 100644 --- a/loopy/check.py +++ b/loopy/check.py @@ -447,6 +447,12 @@ def check_variable_access_ordered(kernel): depfind = IndirectDependencyEdgeFinder(kernel) for name in checked_variables: + readers = rmap.get(name, set()) + writers = wmap.get(name, set()) + + if not writers: + continue + if name in kernel.temporary_variables: scope = kernel.temporary_variables[name].scope else: @@ -456,13 +462,12 @@ def check_variable_access_ordered(kernel): elif isinstance(arg, ValueArg): scope = temp_var_scope.PRIVATE else: + # No need to consider ConstantArg and ImageArg (for now) + # because those won't be written. raise ValueError("could not determine scope of '%s'" % name) # Check even for PRIVATE scope, to ensure intentional program order. - readers = rmap.get(name, set()) - writers = wmap.get(name, set()) - for writer_id in writers: for other_id in readers | writers: if writer_id == other_id: