From d02a9f511aaa401ccefa462de95ff0823836b16a Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner Date: Tue, 6 Feb 2018 17:25:40 -0600 Subject: [PATCH] check_variable_access_ordered: Only perform check if variable is written --- loopy/check.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/loopy/check.py b/loopy/check.py index b4e117e25..fa74fd43b 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: -- GitLab