This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH]: Rewrite reassociation pass => Ada bootstrap failure on x86-linux
- From: Jeffrey A Law <law at redhat dot com>
- To: Graham Stott <graham dot stott at btinternet dot com>
- Cc: Laurent GUERBY <laurent at guerby dot net>, Daniel Berlin <dberlin at dberlin dot org>, GCC Patches <gcc-patches at gcc dot gnu dot org>, Diego Novillo <dnovillo at redhat dot com>
- Date: Thu, 05 Jan 2006 10:15:18 -0700
- Subject: Re: [PATCH]: Rewrite reassociation pass => Ada bootstrap failure on x86-linux
- References: <20060104180955.70994.qmail@web86111.mail.ukl.yahoo.com> <1136399047.3236.21.camel@localhost.localdomain>
- Reply-to: law at redhat dot com
On Wed, 2006-01-04 at 11:24 -0700, Jeffrey A Law wrote:
> I do think we need some checking code to verify that we haven't
> mucked this up in the future -- it seems to me that after removal
> of annotations we could traverse the EH throw statement table and
> verify that all statements in the table have a NULL annotation
> field. Any other value would indicate a statement in the table
> that was not in the IL. Adding that checking code might even
> alert me to reasons why unconditionally removing the statements
> rom the EH table would be the right thing to do :-)
So I cobbled this bit of checking code together yesterday, it's
only a dozen or so lines of code.
So far the only new thing it's discovered is that we leave statements
in the EH table when we remove them via bsi_remove.
You might ask why we haven't had the same problem with such statements
causing us to later fail in GC. The reason we haven't seen the GC
failure in these cases is bsi_remove calls set_bb_for_stmt to wipe
out the BB pointer in the statement's annotation.
Jeff