[PR52001] too many cse reverse equiv exprs (take2)

Alexandre Oliva aoliva@redhat.com
Fri Feb 17 09:34:00 GMT 2012


On Feb 15, 2012, Richard Sandiford <rdsandiford@googlemail.com> wrote:

> I'm fine with putting it in and seeing what breaks.  But I'd really
> prefer if we knew in theory. :-)

Ok, I dove into the problem without a testcase, and I managed to trigger
it on other platforms after tweaking get_addr a bit so as use loc lists
form canonical values, and to avoid returning other VALUEs if other
alternatives exist.

> Like I say, my understanding before this patch series went in was that
> cselib values weren't supposed to be cyclic.  Now that they are, what
> should consumers like memrefs_conflict_p do to avoid getting stuck?

I'm now testing the following heuristic: only use an expr instead of a
value if the expr doesn't reference any value whose uid is greater than
that of the value.  This worked for libgcc so far; regstrapping now.

Here's the revised patch that addresses Jakub's and your comments, that
regstrapped on x86_64-linux-gnu and i686-linux-gnu, followed by the
patch I'm testing now on both platforms.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: vta-cselib-permequiv-nodup-pr52001.patch
Type: text/x-diff
Size: 4023 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120217/184436c5/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vta-alias-valequiv-loops-pr52001.patch
Type: text/x-diff
Size: 2829 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20120217/184436c5/attachment-0001.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