This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [autovect] [patch] disable unified_peeled_chrec
- From: Dorit Nuzman <DORIT at il dot ibm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Sebastian Pop <sebastian dot pop at cri dot ensmp dot fr>
- Date: Wed, 18 Jan 2006 16:15:07 +0200
- Subject: Re: [autovect] [patch] disable unified_peeled_chrec
>
> When 'unified_peeled_chrec' is called from 'analyze_scalar_evolutions',
> then the scev analysis doesn't just analyze the code but may also change
> it. We decided that we don't want the analyzer to modify the code. This
> patch disables 'unified_peeled_chrec' (temporarily with "#if 0", until we
> decide what to do with it).
>
Just reverted this part of the patch because apparently it broke bootstrap.
I will need to remove the unify function such that the code would look as
the one that is in mainline, as suggested by Sebastian. Until then testcase
vect-106.c will fail.
dorit
> The patch also includes a testcase that ICEed during vectorization
because
> of 'unified_peeled_chrec'. The ICE happened because very early on in its
> analysis the vectorizer sets up a 'stmt_info' for each phi and stmt in
the
> loop, and relies on the fact that no new stmts/phis are created after
that
> during its analyses (or if they are created, then they are created with a
> 'stmt_info' properly initialized). 'unified_peeled_chrec' breaks this
> assumption.
>
> A couple additional minor cleanups are also included in the patch.
>
> Committed to autovect-branch.
>
> dorit
>
> * tree-vect-analyze.c (vect_analyze_loop_form): Return NULL
instead
> of false.
> (vect_analyze_loop): Remove redundant call to
> vect_determine_vectorization_factor.
> * tree-scalar-evolutions.c (unify_peeled_chrec): Disable.
> (analyze_evolution_in_loop): Disable call to unify_peeled_chrec.
>
> * gcc.dg/vect/vect-106.c: New test.
>
> (See attached file: autovect.jan12)[attachment "autovect.jan12"
> deleted by Dorit Nuzman/Haifa/IBM]