This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [autovect] [patch] complete-unrolling pass before the vectorizer
- From: Dorit Nuzman <DORIT at il dot ibm dot com>
- To: Revital1 Eres <ERES at il dot ibm dot com>
- Cc: Ayal Zaks <ZAKS at il dot ibm dot com>, rguenther at suse dot de, Victor Kaplansky <VICTORK at il dot ibm dot com>, gcc-patches at gcc dot gnu dot org
- Date: Tue, 20 Mar 2007 09:56:39 +0200
- Subject: Re: [autovect] [patch] complete-unrolling pass before the vectorizer
Revital1 Eres/Haifa/IBM wrote on 19/03/2007 17:30:36:
> Hello,
>
> This patch reschedule complete-unrolling and add constant propagation,
> store-ccp and dse passes before the vectorization pass. The motivation
> for reschedule complete unrolling was discussed amongst others in
> http://gcc.gnu.org/ml/gcc/2007-02/msg00070.html. We found store-ccp and
> dse passes also useful when they are scheduled after lim and complete
> unrolling passes, as it is shown in the testcase attached. In this
> testcase lim generates new temporaries which opens opportunities for
> store-ccp and dse after complete unrolling applied.
>
> This patch introduced new fails (which were fixed) to some vectorization
> testcases as some loops are cancelled. Also, adding new passes required
> adjustment to some testcases to fixed the dump file number.
>
Hi Revital,
The fixes you made to the testcases just change the expected number of
vectorized loops (as less loops now reach vectorization). This means that
these tests don't check anymore the functionality they were meant to check.
I'd prefer if you'd fix them in a way that preserves their behavior - i.e.
- prevent early cunroll in these tests (invoke them with
-fno-unroll-loops?). (Increasing the loop-counts in the tests is also an
option, but I think in these particular tests the specific loop-counts may
be intentional).
thanks,
dorit
> Bootstrap and tested on ppc. OK for autovect branch?
>
> Thanks,
> Revital
>
> 2007-03-19 Revital Eres <eres@il.ibm.com>
>
> * passes.c (init_optimization_passes): move complete-unrolling
> pass before the vectorizer and add constant propagation,
> store-ccp, dse and dce passes after it.
> * testsuite/gcc.dg/tree-ssa/20030917-1.c: Fix dump file number.
> * testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
> * testsuite/gcc.dg/tree-ssa/pr21574.c: Likewise.
> * testsuite/gcc.dg/tree-ssa/20030917-3.c: Likewise.
> * testsuite/gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
> * testsuite/gcc.dg/tree-ssa/pr14841.c: Likewise.
> * testsuite/gcc.dg/tree-ssa/20030731-2.c: Likewise.
> * testsuite/gcc.dg/tree-ssa/20040721-1.c: Likewise.
> * testsuite/gcc.dg/pr23911.c: Likewise.
> * testsuite/gcc.dg/vect/no-section-anchors-vect-69.c: Fix test.
> * testsuite/gcc.dg/vect/vect-70.c: Likewise.
> * testsuite/gcc.dg/vect/vect-66.c: Likewise.
> * testsuite/gcc.dg/lim_store_dse.c: New test.
>
>
>
> [attachment "lim_store_dse.txt" deleted by Dorit Nuzman/Haifa/IBM]
> [attachment "passes_before_vect.txt" deleted by Dorit Nuzman/Haifa/IBM]