diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 5 |
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; |