diff options
author | Roman Zhuykov <zhroma@gcc.gnu.org> | 2019-04-23 12:53:43 +0000 |
---|---|---|
committer | Roman Zhuykov <zhroma@gcc.gnu.org> | 2019-04-23 12:53:43 +0000 |
commit | 8d64622fceaac7f27b6e7c35fca9f91236f34b8d (patch) | |
tree | 77aa4a640f4fda00d53364b6d16c115d179a6734 /gcc/modulo-sched.c | |
parent | 038bc9bfd6dfd94336e0bebf416f1bbc3ed3272e (diff) | |
download | gcc-8d64622fceaac7f27b6e7c35fca9f91236f34b8d.zip gcc-8d64622fceaac7f27b6e7c35fca9f91236f34b8d.tar.gz gcc-8d64622fceaac7f27b6e7c35fca9f91236f34b8d.tar.bz2 |
modulo-sched: fix branch scheduling issue (PR84032)
PR rtl-optimization/84032
* modulo-sched.c (ps_insn_find_column): Change condition so that
branch will always be the last insn in a row inside partial
schedule.
testsuite:
PR rtl-optimization/84032
* gcc.dg/pr84032.c: New test.
From-SVN: r270511
Diffstat (limited to 'gcc/modulo-sched.c')
-rw-r--r-- | gcc/modulo-sched.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c index 7ead258..44014a0 100644 --- a/gcc/modulo-sched.c +++ b/gcc/modulo-sched.c @@ -2996,9 +2996,7 @@ ps_insn_find_column (partial_schedule_ptr ps, ps_insn_ptr ps_i, last_must_precede = next_ps_i; } /* The closing branch must be the last in the row. */ - if (must_precede - && bitmap_bit_p (must_precede, next_ps_i->id) - && JUMP_P (ps_rtl_insn (ps, next_ps_i->id))) + if (JUMP_P (ps_rtl_insn (ps, next_ps_i->id))) return false; last_in_row = next_ps_i; |