From 98c27e6b9c9dfcfd97996f36f1329b02b44af88f Mon Sep 17 00:00:00 2001
From: Matt Wala <wala1@illinois.edu>
Date: Fri, 7 Apr 2017 01:29:04 -0500
Subject: [PATCH] Revert "find_most_recent_global_barrier(): Simplify by using"

This reverts commit 967414c781b3d761d0e68d095cc07719f249deaa.
---
 loopy/kernel/__init__.py | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py
index 9c4f86fb5..a7b358698 100644
--- a/loopy/kernel/__init__.py
+++ b/loopy/kernel/__init__.py
@@ -901,14 +901,20 @@ class LoopKernel(ImmutableRecordWithoutPickling):
         global_barrier_to_ordinal = dict(
                 (b, i) for i, b in enumerate(self.global_barrier_order))
 
-        barriers = set(dep
-                for dep in self.recursive_insn_dep_map()[insn_id]
-                if is_barrier(dep))
+        def get_barrier_ordinal(barrier_id):
+            return (global_barrier_to_ordinal[barrier_id]
+                    if barrier_id is not None
+                    else -1)
 
-        if len(barriers) > 0:
-            return max(barriers, key=lambda b: global_barrier_to_ordinal[b])
+        direct_barrier_dependencies = set(
+                dep for dep in insn.depends_on if is_barrier(dep))
+
+        if len(direct_barrier_dependencies) > 0:
+            return max(direct_barrier_dependencies, key=get_barrier_ordinal)
         else:
-            return None
+            return max((self.find_most_recent_global_barrier(dep)
+                        for dep in insn.depends_on),
+                    key=get_barrier_ordinal)
 
     @property
     @memoize_method
-- 
GitLab