This is the mail archive of the
mailing list for the GCC project.
Re: Combine four insns
On Mon, 9 Aug 2010, Bernd Schmidt wrote:
> On 08/07/2010 10:10 AM, Eric Botcazou wrote:
> > So I think that the patch shouldn't go in at this point.
> Richard has approved it. I'll wait a few more days to see if anyone
> else agrees with your position.
[I'm not a reviewer, but FWIW:]
I'm also not too thrilled about using 1% more compilation time for the
result. It's not so much a matter of which sequences are actually
replaced (your examples showed quite abysmal initial sequences, no doubt),
but rather a matter of how often they occur in practice, and there it
doesn't look too bright:
> $ grep Trying.four log |wc -l
> $ grep Succeeded.four.into.two log |wc -l
> $ grep Succeeded.four.into.one log |wc -l
So out of 1230972 insns it was able to remove 908. That's 0.07%. Not too
exciting, no matter how bad these 384 initial sequences looked like.
Especially for the bitmap manipulation stuff Richi once had something for
the tree level that would enable better initial code generation. Apart
from that I unfortunately have no better idea to get the results you got
without paying so high a price.
Perhaps you can limit the number it tries to match four instructions to
some simpler cases? Like that at least two of the insns must have
"leaves" (expressions not depending on pseudos) as one of their operand?