http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52139

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #26602|0                           |1
        is obsolete|                            |

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-02-07 
12:20:19 UTC ---
Created attachment 26603
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26603
gcc47-pr52139.patch

Actually, the delete_insn_chain call removed the barrier, but as barriers don't
have BLOCK_FOR_INSN, it didn't update BB_END.

This is a different approach, which allows remove_insn to remove even the last
insn in a bb, if it is equal to BB_END.  And adjusts BB_END even if BB_END is a
BARRIER.  That part alternatively could be handled by forcibly setting BB_END
(a) = first; after the delete_insn_chain call for the header.
With the emit-rtl.c changes as is, the cfgrtl.c changes are just a cleanup to
merge two same code sequences, but if the second part of the emit-rtl.c change
is removed, we'd need to add that BB_END (a) = first;

Reply via email to