aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMaxim Kuvyrkov <maxim.kuvyrkov@gmail.com>2014-10-24 08:22:49 +0000
committerMaxim Kuvyrkov <mkuvyrkov@gcc.gnu.org>2014-10-24 08:22:49 +0000
commitd205caad226fbc47eab6a9feeab775e92a16ff2d (patch)
treee3a4c4a1f69cf4742cca89d0b8883d6bc4fac9b0 /gcc
parent8aec463b10bd41bc184305458abfcc657fac4883 (diff)
downloadgcc-d205caad226fbc47eab6a9feeab775e92a16ff2d.zip
gcc-d205caad226fbc47eab6a9feeab775e92a16ff2d.tar.gz
gcc-d205caad226fbc47eab6a9feeab775e92a16ff2d.tar.bz2
Disable max_issue when scheduling for register pressure
* haifa-sched.c (sched_init): Disable max_issue when scheduling for register pressure. From-SVN: r216623
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/haifa-sched.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac5f97b..fa86746 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index b78d697..f64f3f59 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -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;