Richard Guenther <richard.guent...@gmail.com> wrote on 25/07/2011 05:54:28 PM:
> From: Richard Guenther <richard.guent...@gmail.com> > To: Razya Ladelsky/Haifa/IBM@IBMIL > Cc: gcc-patches@gcc.gnu.org, Zdenek Dvorak > <rakd...@kam.mff.cuni.cz>, Sebastian Pop <s...@gcc.gnu.org> > Date: 25/07/2011 05:54 PM > Subject: Re: [patch] Fix PR tree-optimization/49471 > > On Mon, Jul 25, 2011 at 4:47 PM, Razya Ladelsky <ra...@il.ibm.com> wrote: > > Hi, > > > > This patch fixes the build failure of cactusADM and dealII spec2006 > > benchmarks when autopar is enabled. > > (for powerpc they fail only when -m32 is additionally enabled) > > > > The problem originated in canonicalize_loop_ivs, where we iterate the > > header's phis in order to base all > > the induction variables on a single control variable. > > We use the largest precision of the loop's ivs in order to determine the > > type of the control variable. > > > > Since iterating the loop's phis takes into account not only the loop's > > ivs, but also reduction variables, > > we got precision values like 80 for x86, or 128 for ppc. > > The compilers failed to create proper types for these sizes > > (respectively). > > > > The proper behavior for determining the control variable's type is to take > > into account only the loop's ivs, > > which is what this patch does. > > > > Bootstrap and testsuite pass successfully (as autopar is not enabled by > > default). > > No new regressions when the testsuite is run with autopar enabled. > > No new regressions for the run of spec2006 with autopar enabled, > > > > cactusADM and dealII benchmarks now pass successfully with autopar on > > powerpc and x86. > > > > Thanks to Zdenek who helped me figure out the failure/fix. > > OK for trunk? > > It'll collide with Sebastians patch in that area. I suggested a > INTEGRAL_TYPE_P check instead of the simple_iv one, it > should be cheaper. Zdenek, do you think it will be "incorrect" > in some cases? > The INTEGRAL_TYPE_P check does work for cactusADM and dealII, but I'm not sure about the general case. Razya > Thanks, > Richard. > > > Thanks, > > Razya > > > > ChangeLog: > > > > PR tree-optimization/49471 > > * tree-vect-loop-manip.c (canonicalize_loop_ivs): Add condition to > > ignore reduction variables when iterating the loop header's phis. > > > > > >