Razya Ladelsky/Haifa/IBM wrote on 25/07/2011 05:44:02 PM: > From: Razya Ladelsky/Haifa/IBM > To: gcc-patches@gcc.gnu.org > Cc: Zdenek Dvorak <rakd...@kam.mff.cuni.cz>, Richard Guenther > <richard.guent...@gmail.com> > Date: 25/07/2011 05:44 PM > Subject: [patch] Fix PR tree-optimization/49471 > > 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? > 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.
I have an error in the ChangeLog: the change is in tree-ssa-loop-manip.c instead of tree-vect-loop-manip.c Sorry, Razya > > [attachment "cactus_dealII_patch.txt" deleted by Razya Ladelsky/Haifa/IBM]