This is the mail archive of the gcc-patches@gcc.gnu.org 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: [patch][rfc] PR tree-optimization/21883


On Tuesday 06 September 2005 22:52, Jeffrey A Law wrote:
> > 1) Does this patch look reasonable for GCC 4.1 (modulo reviewer's
> >    comments of course...)?  I think the patch is not too intrusive
> >    but it is quite large for a stage3 patch.
>
> It looks like there's a little refactoring, then the heuristic to
> avoid threading in cases where it's likely to cause too much growth.
> I'd probably support this patch, or a variant thereof for 4.1.

Great.  I'll work on finishing it then, including the testing to find
a reasonable number for that new param.

> Another thing to consider -- you might want to mark blocks which are
> OK/not-OK for threading so that we don't process them over and over.

Yeah, that seems like a good idea.  Perhaps it can help a lot when we
have a block to thread through with many predecessors, and we would
determine that the block is too large to thread through.  As you said, 
cfgcleanup merges blocks and invalidates such marks for each iteration,
but if you have a block with many predecessors, perhaps it is still
helpful within one iteration.  So I'll try this too.

> I would expect the thresh hold to be relatively small -- if we're
> duplicating 100 statements to eliminate a single conditional jump
> then we're probably doing way too much duplication.  It might be
> interesting to have a histogram of how many statements are encountered
> in these duplicated blocks across a bootstrap or something like
> that -- just to get a feel for where the sweet spot might be.

That's what David Edelsohn also suggested.  This will take some time
to do a bunch of SPEC and CSiBE runs, but I'll try to come up with the
numbers so we can pick a good default value.

Thanks for the good feedback!

Gr.
Steven


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