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] Handle ADDR_EXPR in SCEV


On Wed, Feb 24, 2010 at 5:37 PM, Alexander Monakov <amonakov@ispras.ru> wrote:
>
> On Wed, 17 Feb 2010, Richard Guenther wrote:
>
>> Otherwise the patch looks good (the above is just to make
>> the analysis not allocate memory unnecessarily). ?I'll test
>> its effect on SPEC2006.
>
> There was a ~10% code-size and ~3% performance regression on bwaves. ?I've
> investigated it, and posting my analysis for the record.
>
> The problems I've found are:
> 1) DOM does not copy-propagate stride into increments of induction variables
> (a side effect of tree-ssa-dom.c:2004, a fix for PR23281); however, this is
> fixed by RTL loop invariant motion.
>
> 2) Type of some induction variables changes from int to sizetype, increasing
> their size. ?This probably has a minor impact.
>
> 3) I think the biggest problem is that for references in nested loops
> (a[i][j]) we create an IV (&a + i*stride) that is live in the outer loop.
> In bwaves, there are deeply nested loops with references to multiple arrays, so
> updating such IVs on stack has impact on code size and performance.

If you have a testcase showing this problem it would be nice to
add it to the bug referencing your patch.

Richard.

> Thanks.
> Alexander Monakov
>


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