This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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
> 307743
> $ grep Succeeded.four.into.two log |wc -l
> 244
> $ grep log |wc -l
> 140

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?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]