aboutsummaryrefslogtreecommitdiff
path: root/gcc/modulo-sched.c
diff options
context:
space:
mode:
authorRoman Zhuykov <zhroma@gcc.gnu.org>2019-04-23 12:53:43 +0000
committerRoman Zhuykov <zhroma@gcc.gnu.org>2019-04-23 12:53:43 +0000
commit8d64622fceaac7f27b6e7c35fca9f91236f34b8d (patch)
tree77aa4a640f4fda00d53364b6d16c115d179a6734 /gcc/modulo-sched.c
parent038bc9bfd6dfd94336e0bebf416f1bbc3ed3272e (diff)
downloadgcc-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.c4
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;