[vta4.4] fix two build regressions

Alexandre Oliva aoliva@redhat.com
Thu Jul 30 00:28:00 GMT 2009


The cleanups I installed in the VTA branch and then backported to VTA4.4
introduced two build regressions in the VTA4.4 branch, fixed with the
patch below.

One problem was caused by sharing of expression trees between debug and
non-debug stmts.  The trees were modified in-place while going out of
SSA, producing incorrect results.

The other was a failure to update debug statements that referenced
formerly-addressable variables.  Since we don't keep VOPs for debug
stmts, the debug stmt is not marked as interesting for an SSA update, so
the reference to the now-gimple-reg variable is left alone instead of
being turned into SSA form (or dropped, if it's completely gone).  Later
on, the statement may be rescanned, adding a USE to a variable that
should be in SSA form but isn't, triggering verification errors.

I wish I had a cleaner solution for this second problem, but rescanning
debug stmts' operands when there are symbols to be renamed was the best
I could come up with.  Any suggestions?

Anyhow, here's the patch I've just installed in the VTA4.4 branch.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: vta-unshare-gimple-tree.patch
Type: text/x-patch
Size: 2506 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20090730/ba704b12/attachment.bin>
-------------- next part --------------


-- 
Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist      Red Hat Brazil Compiler Engineer


More information about the Gcc-patches mailing list