i386 string compare - code quality regression from 2.95
Zack Weinberg
zackw@Stanford.EDU
Mon May 14 21:36:00 GMT 2001
On Mon, May 14, 2001 at 08:36:21PM -0700, Mark Mitchell wrote:
>
> If Richard approves the patch (as the reigning expert on the x86
> back-end), it's OK for the branch, since it is a performance
> regression.
Thanks.
> It would be nicer, though, if we could understand what is happenning
> in a better way, rather than just trying the peephole route.
Oh, most certainly.
I and a few others have done detailed analyses of this problem in the
past. I can't find them in the archives for some reason, but look for
a long thread between me, Jan Hubicka, and Joern Rennecke somewhere
around August 2000.
The conclusion I came to was that combine is not capable of this
optimization because (a) the LOG_LINKS are not complete def-use
chains, and (b) it is not prepared to delete all three of the insns
it's looking at. Fixing either would be major work. The peephole is
intended as a stop-gap until combine can be dealt with properly. I
think Daniel Berlin was making noises about reimplementing it from
scratch and using SSA representation...
--
zw Actually, we have scientifically determined that Heisenberg did indeed
sleep exactly here. However, we have no idea whatsoever just how fast
asleep he was.
-- Dave Aronson
More information about the Gcc-patches
mailing list