PR rtl-optimization/69032
* sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
looping backwards over basic block insns.
testsuite/
PR rtl-optimization/69032
* gcc.dg/pr69032.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@234219
138bc75d-0d04-0410-961f-
82ee72b054a4
+2016-03-15 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/69032
+ * sel-sched-ir.c (get_seqno_by_preds): Include both insn and head when
+ looping backwards over basic block insns.
+
+2016-03-15 Andrey Belevantsev <abel@ispras.ru>
+
+ PR target/66660
+ * sel-sched-ir.c (merge_expr): Avoid changing the speculative pattern
+ to non-speculative when propagating trap bits.
+
2016-03-15 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/63384
insn_t *preds;
int n, i, seqno;
- while (tmp != head)
+ /* Loop backwards from INSN to HEAD including both. */
+ while (1)
{
- tmp = PREV_INSN (tmp);
if (INSN_P (tmp))
- return INSN_SEQNO (tmp);
+ return INSN_SEQNO (tmp);
+ if (tmp == head)
+ break;
+ tmp = PREV_INSN (tmp);
}
cfg_preds (bb, &preds, &n);
+2016-03-15 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/69032
+ * gcc.dg/pr69032.c: New test.
+
2016-03-15 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/63384
--- /dev/null
+/* { dg-do compile { target powerpc*-*-* ia64-*-* i?86-*-* x86_64-*-* } } */
+/* { dg-options "-O2 -fsched-pressure -fsel-sched-pipelining -fselective-scheduling" } */
+
+void foo (long long i)
+{
+ while (i != -1)
+ {
+ ++i;
+ __asm__ ("");
+ }
+}