OSDN Git Service

PR rtl-optimization/31391
authorsteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 1 Apr 2007 18:26:00 +0000 (18:26 +0000)
committersteven <steven@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 1 Apr 2007 18:26:00 +0000 (18:26 +0000)
* cfgcleanup.c (try_optimize_cfg): If a removed label is turned
into a DELETED_LABEL note, and the label is in an empty basic
block, update BB_END as well as BB_HEAD.

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

gcc/ChangeLog
gcc/cfgcleanup.c

index 81606be..2e2f90c 100644 (file)
@@ -1,3 +1,10 @@
+2007-04-01  Steven Bosscher  <steven@gcc.gnu.org>
+
+       PR rtl-optimization/31391
+       * cfgcleanup.c (try_optimize_cfg): If a removed label is turned
+       into a DELETED_LABEL note, and the label is in an empty basic
+       block, update BB_END as well as BB_HEAD.
+
 2007-04-01  Richard Henderson  <rth@redhat.com>
 
        PR tree-optimization/31169
index ee5c69b..c2595ea 100644 (file)
@@ -2034,6 +2034,8 @@ try_optimize_cfg (int mode)
 
                      reorder_insns_nobb (label, label, bb_note);
                      BB_HEAD (b) = bb_note;
+                     if (BB_END (b) == bb_note)
+                       BB_END (b) = label;
                    }
                  if (dump_file)
                    fprintf (dump_file, "Deleted label in block %i.\n",