From 554021a94236c4de6cb4c6f9df63b2d03c5e9aed Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Thu, 25 Jun 2015 13:44:10 -0500
Subject: [PATCH] Make switch to turn off Fortran auto dependencies

---
 loopy/frontend/fortran/__init__.py   | 5 +++--
 loopy/frontend/fortran/translator.py | 6 ++++--
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/loopy/frontend/fortran/__init__.py b/loopy/frontend/fortran/__init__.py
index aad2328b0..2626069a0 100644
--- a/loopy/frontend/fortran/__init__.py
+++ b/loopy/frontend/fortran/__init__.py
@@ -211,7 +211,8 @@ def parse_transformed_fortran(source, free_form=True, strict=True,
     return proc_dict["RESULT"]
 
 
-def parse_fortran(source, filename="<floopy code>", free_form=True, strict=True):
+def parse_fortran(source, filename="<floopy code>", free_form=True, strict=True,
+        auto_dependencies=True):
     """
     :returns: a list of :class:`loopy.LoopKernel` objects
     """
@@ -231,7 +232,7 @@ def parse_fortran(source, filename="<floopy code>", free_form=True, strict=True)
                 "and returned invalid data (Sorry!)")
 
     from loopy.frontend.fortran.translator import F2LoopyTranslator
-    f2loopy = F2LoopyTranslator(filename)
+    f2loopy = F2LoopyTranslator(filename, auto_dependencies=auto_dependencies)
     f2loopy(tree)
 
     return f2loopy.make_kernels()
diff --git a/loopy/frontend/fortran/translator.py b/loopy/frontend/fortran/translator.py
index 895606aa3..f34c69978 100644
--- a/loopy/frontend/fortran/translator.py
+++ b/loopy/frontend/fortran/translator.py
@@ -197,9 +197,11 @@ class Scope(object):
 # {{{ translator
 
 class F2LoopyTranslator(FTreeWalkerBase):
-    def __init__(self, filename):
+    def __init__(self, filename, auto_dependencies):
         FTreeWalkerBase.__init__(self)
 
+        self.auto_dependencies = auto_dependencies
+
         self.scope_stack = []
         self.isl_context = isl.Context()
 
@@ -223,7 +225,7 @@ class F2LoopyTranslator(FTreeWalkerBase):
         new_id = "insn%d" % self.insn_id_counter
         self.insn_id_counter += 1
 
-        if scope.previous_instruction_id:
+        if self.auto_dependencies and scope.previous_instruction_id:
             insn_deps = frozenset([scope.previous_instruction_id])
         else:
             insn_deps = frozenset()
-- 
GitLab