]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/41697 (ICE on gcc.c-torture/compile/20090917-1.c)
authorAndrey Belevantsev <abel@ispras.ru>
Fri, 13 Nov 2009 14:32:52 +0000 (17:32 +0300)
committerAndrey Belevantsev <abel@gcc.gnu.org>
Fri, 13 Nov 2009 14:32:52 +0000 (17:32 +0300)
        PR rtl-optimization/41697
        * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
        a conditional jump has a single successor.

From-SVN: r154148

gcc/ChangeLog
gcc/sel-sched-ir.c

index 39eb3c6f530a662be01aa5d1e78a924c929f0a51..8eb3d840b6d99b35edb1f9ef8cac76b561677f0c 100644 (file)
@@ -1,3 +1,9 @@
+2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
+
+        PR rtl-optimization/41697
+       * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with 
+       a conditional jump has a single successor. 
+
 2009-11-13  Andrey Belevantsev  <abel@ispras.ru>
 
        * sched-deps.c (init_deps): New parameter lazy_reg_last.  Don't
index 10750746660a33fcce3b55fb458b318781761deb..bd5560d610c7eacdb314945baeca10132be21d68 100644 (file)
@@ -4323,6 +4323,11 @@ fallthru_bb_of_jump (rtx jump)
   if (!any_condjump_p (jump))
     return NULL;
 
+  /* A basic block that ends with a conditional jump may still have one successor
+     (and be followed by a barrier), we are not interested.  */
+  if (single_succ_p (BLOCK_FOR_INSN (jump)))
+    return NULL;
+
   return FALLTHRU_EDGE (BLOCK_FOR_INSN (jump))->dest;
 }