]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Haifa scheduler: Prevent splitting of fusion pairs in dispatch scheduling
authorMaxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
Mon, 15 Dec 2025 15:36:10 +0000 (16:36 +0100)
committerKyrylo Tkachov <ktkachov@nvidia.com>
Tue, 16 Dec 2025 09:04:13 +0000 (10:04 +0100)
gcc/Changelog

* haifa-sched.cc (choose_ready): Don't require dfa_lookahead <= 0
to schedule SCHED_GROUP_P insns first.

gcc/haifa-sched.cc

index 63eb06b2d820b86f39def44be97df37a7a498290..58e04eee0dbab65fd3acf0ee86bde93c6d998ef2 100644 (file)
@@ -6132,8 +6132,13 @@ choose_ready (struct ready_list *ready, bool first_cycle_insn_p,
       return -1;
     }
 
-  if (dfa_lookahead <= 0 || SCHED_GROUP_P (ready_element (ready, 0))
+  if (SCHED_GROUP_P (ready_element (ready, 0))
       || DEBUG_INSN_P (ready_element (ready, 0)))
+    {
+      *insn_ptr = ready_remove_first (ready);
+      return 0;
+    }
+  else if (dfa_lookahead <= 0)
     {
       if (targetm.sched.dispatch (NULL, IS_DISPATCH_ON))
        *insn_ptr = ready_remove_first_dispatch (ready);