diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2008-09-09 18:19:31 +0400 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2008-09-09 18:19:31 +0400 |
commit | bff5a22dc49b3f4fcac70a4e936c5b6db3808883 (patch) | |
tree | 5083d62c9cc5a3ecb1ce60c23b9fe6dacd08b35e /gcc | |
parent | b59d39763b34536f6357a98a622908de83e152e6 (diff) | |
download | gcc-bff5a22dc49b3f4fcac70a4e936c5b6db3808883.zip gcc-bff5a22dc49b3f4fcac70a4e936c5b6db3808883.tar.gz gcc-bff5a22dc49b3f4fcac70a4e936c5b6db3808883.tar.bz2 |
re PR rtl-optimization/37360 (ICE in haifa-sched.c when compiling __popcountsi2 from libgcc)
PR rtl-optimization/37360
* haifa-sched.c (max_issue): Do not assert that we never issue more
insns than issue_rate. Add comment.
From-SVN: r140151
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/haifa-sched.c | 9 |
2 files changed, 14 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index edde7b7..2c90794 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-09-09 Andrey Belevantsev <abel@ispras.ru> + + PR rtl-optimization/37360 + * haifa-sched.c (max_issue): Do not assert that we never issue more + insns than issue_rate. Add comment. + 2008-09-09 Richard Guenther <rguenther@suse.de> * tree-cfg.c (verify_types_in_gimple_op): Remove. diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 833e155..db9b54a 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -2071,7 +2071,14 @@ max_issue (struct ready_list *ready, int privileged_n, state_t state, /* Init max_points. */ max_points = 0; more_issue = issue_rate - cycle_issued_insns; - gcc_assert (more_issue >= 0); + + /* ??? We used to assert here that we never issue more insns than issue_rate. + However, some targets (e.g. MIPS/SB1) claim lower issue rate than can be + achieved to get better performance. Until these targets are fixed to use + scheduler hooks to manipulate insns priority instead, the assert should + be disabled. + + gcc_assert (more_issue >= 0); */ for (i = 0; i < n_ready; i++) if (!ready_try [i]) |