From 23142519fa1e6317c136d5e57e355278426978c1 Mon Sep 17 00:00:00 2001 From: Andreas Kloeckner <inform@tiker.net> Date: Wed, 12 Aug 2015 23:42:29 -0500 Subject: [PATCH] Scheduling heuristic: Try to leave active groups --- loopy/schedule.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/loopy/schedule.py b/loopy/schedule.py index 113819b9a..44df6d2cd 100644 --- a/loopy/schedule.py +++ b/loopy/schedule.py @@ -422,9 +422,12 @@ def generate_loop_schedules_internal( reachable_insn_ids = set() active_groups = frozenset(sched_state.active_group_counts) + def insn_sort_key(insn_id): + insn = kernel.id_to_insn[insn_id] + return (insn.priority, len(active_groups & insn.groups)) + for insn_id in sorted(sched_state.unscheduled_insn_ids, - key=lambda insn_id: kernel.id_to_insn[insn_id].priority, - reverse=True): + key=insn_sort_key, reverse=True): insn = kernel.id_to_insn[insn_id] -- GitLab