[vta] regstack fixes for var-tracking-assignments

Alexandre Oliva aoliva@redhat.com
Mon Nov 5 07:41:00 GMT 2007


Most of the changes I'd made to regstack.c to avoid code changes with
debug insns were obsoleted by other changes elsewhere.  However,
references to floating point stack registers in debug insns weren't
being updated at all.  This patch fixes this.

It also fixes a codegen change caused by debug insns in the beginning
of a BB.  reg-stack uses the reg-stack requirements of the first insn
in the BB that has reg-stack requirements to determine how the
reg-stack should look like at the entry point of the BB.  If there was
a debug insns that referenced stack registers before, its requirements
(none) would be taken into account *instead of* those of the first
active insn.  Oops.

This patch processes the initial debug insns after determining the
entry point stack layout.  I guess I could try to come up with some
clever means to link the debug insns such that I wouldn't have to
count them and potentially iterate over the entire sequence, but I
don't think it's worth it.

I'm going to check this in the vta branch soon.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: vta-reg-stack-simplify.patch
Type: text/x-patch
Size: 3842 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20071105/439cd98d/attachment.bin>
-------------- next part --------------

-- 
Alexandre Oliva         http://www.lsd.ic.unicamp.br/~oliva/
FSF Latin America Board Member         http://www.fsfla.org/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


More information about the Gcc-patches mailing list