[vta,vta4.3,trunk?] avoid accidental moving of death notes in combine

Alexandre Oliva aoliva@redhat.com
Wed Sep 10 08:16:00 GMT 2008


move_deaths(), in combine, will happily take outdated last_death from
different BBs and try to move death notes, if the LUID of a REG's
last_death, within its own BB happens, to be between the LUIDs of two
combined insns, even though it doesn't make sense to compare LUIDs of
insns in different BBs.

I noticed this with -fcompare-debug, because a REG_DEAD note moved
about, because debug insns caused the LUIDs to accidentally pass the
tests.

This patch avoids the accident.  I don't have any testcase that
doesn't involve debug insns, and even that doesn't cause executable
code changes.  I'm going ahead and installing it in vta and vta4.3.
Should I install it in the trunk as well?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: gcc-combine-move-deaths-within-bb.patch
Type: text/x-patch
Size: 674 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20080910/37ccdd28/attachment.bin>
-------------- next part --------------

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}
FSFLA Board Member       ?S? Libre! => http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}


More information about the Gcc-patches mailing list