[patch] Merge to trunk from Graphite branch
Jack Howarth
howarth@bromo.med.uc.edu
Wed Mar 17 04:07:00 GMT 2010
On Tue, Mar 16, 2010 at 06:57:07PM -0500, Sebastian Pop wrote:
> On Tue, Mar 16, 2010 at 17:26, Dominique Dhumieres <dominiq@lps.ens.fr> wrote:
> > With the following patch on top of r157496
> >
> > diff -up /opt/gcc/_clean/gcc/passes.c /opt/gcc/p_work/gcc/passes.c
> > --- /opt/gcc/_clean/gcc/passes.c 2010-02-22 15:28:45.000000000 +0100
> > +++ /opt/gcc/p_work/gcc/passes.c 2010-03-16 21:28:43.000000000 +0100
> > @@ -885,6 +885,7 @@ init_optimization_passes (void)
> > {
> > struct opt_pass **p = &pass_tree_loop.pass.sub;
> > NEXT_PASS (pass_tree_loop_init);
> > + /* NEXT_PASS (pass_lim); */
> > NEXT_PASS (pass_copy_prop);
> > NEXT_PASS (pass_dce_loop);
> > NEXT_PASS (pass_lim);
> > @@ -897,6 +898,7 @@ init_optimization_passes (void)
> > NEXT_PASS (pass_graphite_transforms);
> > {
> > struct opt_pass **p = &pass_graphite_transforms.pass.sub;
> > + NEXT_PASS (pass_copy_prop);
> > NEXT_PASS (pass_dce_loop);
> > NEXT_PASS (pass_lim);
> > }
> > diff -up /opt/gcc/_clean/gcc/tree-ssa-loop-manip.c /opt/gcc/p_work/gcc/tree-ssa-loop-manip.c
> > --- /opt/gcc/_clean/gcc/tree-ssa-loop-manip.c 2009-11-25 18:20:33.000000000 +0100
> > +++ /opt/gcc/p_work/gcc/tree-ssa-loop-manip.c 2010-03-16 20:10:04.000000000 +0100
> > @@ -1215,9 +1215,9 @@ canonicalize_loop_ivs (struct loop *loop
> > gsi_insert_seq_on_edge_immediate (loop_preheader_edge (loop), stmts);
> > }
> >
> > - gsi = gsi_last_bb (loop->latch);
> > + gsi = gsi_last_bb (loop->header);
> > create_iv (build_int_cst_type (type, 0), build_int_cst (type, 1), NULL_TREE,
> > - loop, &gsi, true, &var_before, NULL);
> > + loop, &gsi, false, &var_before, NULL);
> >
> > rewrite_all_phi_nodes_with_iv (loop, var_before);
> >
> > I get
> >
> > [macbook] lin/test% gfcp -O3 -ffast-math gas_dyn.f90 -ftree-vectorizer-verbose=2 -fgraphite-identity > & tmp1
> > [macbook] lin/test% grep VECTORIZED tmp1 | wc
> > 33 132 1345
> >
> > Sebastian are you sure that you don't have other patches
> > in your build?
>
> On trunk 157499 I also see the exact same thing:
>
> $ grep "LOOP VECTORIZED" before.txt | wc
> 24 96 1848
>
> $ grep "LOOP VECTORIZED" after.txt | wc # changes to canonicalize_loop_ivs
> 26 104 2001
>
> $ grep "LOOP VECTORIZED" after1.txt | wc # add pass_copy_prop
> 33 132 2533
>
> Also on the Graphite branch I tried to disable all the loop transforms
> that could have added more loops, but I get the same thing:
>
> $ ./f951 -O3 -ffast-math -ftree-vectorizer-verbose=2
> -fgraphite-identity -fno-loop-block -fno-loop-interchange
> -fno-loop-strip-mine -fno-graphite gas_dyn.f90 &> after1.txt
> $ grep "LOOP VECTORIZED" after1.txt | wc
> 40 160 3065
>
> $ ./f951 -O3 -ffast-math -ftree-vectorizer-verbose=2
> -fno-graphite-identity -fno-loop-block -fno-loop-interchange
> -fno-loop-strip-mine -fno-graphite
> ~/gcc/bench/pb05/lin/source/gas_dyn.f90 &> after2.txt
> $ grep "LOOP VECTORIZED" after2.txt | wc
> 41 164 3142
>
> I will look at the diff between the Graphite branch and trunk to see
> why we have this difference.
Or remerge trunk back into graphite branch and see if the difference
starts to appear there as well.
>
> Sebastian
More information about the Gcc-patches
mailing list