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] 

Reply via email to