This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Update for cprop patch
- To: Bernd Schmidt <bernds at cygnus dot co dot uk>
- Subject: Re: Update for cprop patch
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Sat, 07 Aug 1999 02:12:37 -0600
- cc: egcs-patches at egcs dot cygnus dot com
- Reply-To: law at cygnus dot com
In message <Pine.LNX.4.10.9907161109590.17496-100000@biriani.cygnus.co.uk>you
write:
> (Jeff, sorry for sending this twice - the first time I misspelt the
> egcs-patches address)
>
> Here's a new version of the patch. Changes since the last one:
> - try to avoid entering obvious no-ops into the hash table
> - move the second oprs_not_set_p call into find_avail_set. This function
> now guarantees that the rtx it returns can safely be substituted.
>
> I left in the code to avoid infinite loops for now - I'd be happy to remove
> it if I was convinced they can't happen anymore.
>
> The patch compiles and passes make check on i686-linux with no additional
> failures. I also ran a benchmark which showed a very minor improvement.
>
> Bernd
>
> * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs.
> (find_avail_set): Follow chains of register-register copies.
> Use oprs_not_set_p to guarantee that the returned value can be
> substituted.
> (cprop_jump): New function, broken out of cprop_insn.
> (cprop_cc0_jump): New function.
> (cprop_insn): Treat SYMBOL_REFs like CONST_INTs.
> Break out new function cprop_jump and use it.
> Also use cprop_cc0_jump for machines with CC0.
> Don't verify the return value of find_avail_set with oprs_not_set_p.
> (cprop): Don't crash if cprop_insn turned the insn into a NOTE.
I installed the SYMBOL_REF stuff. I'm still looking at the other two
conceptual changes. I didn't get a successful bootstrap with the other
changes, but it could have been some other transient problem in the tree.
jeff