OSDN Git Service

PR rtl-optimization/41697
authorabel <abel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 2009 14:32:52 +0000 (14:32 +0000)
committerabel <abel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Nov 2009 14:32:52 +0000 (14:32 +0000)
        * sel-sched-ir.c (fallthru_bb_of_jump): Bail out when a block with
        a conditional jump has a single successor.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154148 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 39eb3c6..8eb3d84 100644 (file)
@@ -1,5 +1,11 @@
 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
        allocate reg_last when in case lazy_reg_last is true.
        (init_deps_reg_last): New.
index 1075074..bd5560d 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;
 }