Disable max_issue when scheduling for register pressure
authorMaxim Kuvyrkov <maxim.kuvyrkov@gmail.com>
Fri, 24 Oct 2014 08:22:49 +0000 (08:22 +0000)
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>
Fri, 24 Oct 2014 08:22:49 +0000 (08:22 +0000)
* haifa-sched.c (sched_init): Disable max_issue when scheduling for
register pressure.

From-SVN: r216623

gcc/ChangeLog
gcc/haifa-sched.c

index ac5f97b..fa86746 100644 (file)
@@ -1,5 +1,10 @@
 2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
 
+        * haifa-sched.c (sched_init): Disable max_issue when scheduling for
+        register pressure.
+
+2014-10-24  Maxim Kuvyrkov  <maxim.kuvyrkov@gmail.com>
+
         * haifa-sched.c (cached_first_cycle_multipass_dfa_lookahead,)
         (cached_issue_rate): Remove.  Use dfa_lookahead and issue_rate instead.
         (max_issue, choose_ready, sched_init): Update.
index b78d697..f64f3f5 100644 (file)
@@ -6863,7 +6863,10 @@ sched_init (void)
   else
     issue_rate = 1;
 
-  if (targetm.sched.first_cycle_multipass_dfa_lookahead)
+  if (targetm.sched.first_cycle_multipass_dfa_lookahead
+      /* Don't use max_issue with reg_pressure scheduling.  Multipass
+        scheduling and reg_pressure scheduling undo each other's decisions.  */
+      && sched_pressure == SCHED_PRESSURE_NONE)
     dfa_lookahead = targetm.sched.first_cycle_multipass_dfa_lookahead ();
   else
     dfa_lookahead = 0;