2012-01-25 Andrey Belevantsev <abel@ispras.ru>
PR rtl-optimization/48374
* sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
* gcc.dg/pr48374.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@192979
138bc75d-0d04-0410-961f-
82ee72b054a4
+2012-10-30 Andrey Belevantsev <abel@ispras.ru>
+
+ Backport from mainline
+ 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/48374
+ * sel-sched-ir.h (get_all_loop_exits): Check for zero successors.
+
2012-10-22 Andrey Belevantsev <abel@ispras.ru>
Backport from mainline
/* If bb is empty, and we're skipping to loop exits, then
consider bb as a possible gate to the inner loop now. */
while (sel_bb_empty_or_nop_p (bb)
- && in_current_region_p (bb))
+ && in_current_region_p (bb)
+ && EDGE_COUNT (bb->succs) > 0)
{
bb = single_succ (bb);
+2012-10-30 Andrey Belevantsev <abel@ispras.ru>
+
+ Backport from mainline
+ 2012-01-25 Andrey Belevantsev <abel@ispras.ru>
+
+ PR rtl-optimization/48374
+ * gcc.dg/pr48374.c: New test.
+
2012-10-22 Andrey Belevantsev <abel@ispras.ru>
Backport from mainline
--- /dev/null
+/* { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } */
+/* { dg-options "-O -fschedule-insns2 -fsel-sched-pipelining -fsel-sched-pipelining-outer-loops -fselective-scheduling2 --param max-sched-extend-regions-iters=2" } */
+
+void foo (int y)
+{
+ switch (y)
+ {
+ case 3:
+ case 5:
+ case 7:
+ case 11:
+ break;
+ default:
+ __builtin_unreachable ();
+ }
+}
+