diff --git a/loopy/schedule/__init__.py b/loopy/schedule/__init__.py index 887cd3d2271c1d8de3bc60a5e4db2fead4def4c8..fe6269d86ccad413ab39e68b01a90e9b7b76ce09 100644 --- a/loopy/schedule/__init__.py +++ b/loopy/schedule/__init__.py @@ -1553,7 +1553,9 @@ def insn_ids_reachable_from_start_without_intervening_barrier(schedule, kind): for sched_item in schedule: if isinstance(sched_item, EnterLoop): insn_ids_alive_at_level.append(set()) - seen_barrier_at_level.append(False) + # Barriers seen at the shallower level will also prevent + # instructions from being reached at the deeper level. + seen_barrier_at_level.append(seen_barrier_at_level[-1]) elif isinstance(sched_item, LeaveLoop): result |= insn_ids_alive_at_level.pop() seen_barrier_at_level.pop()