Improve unrolled size estimates
H.J. Lu
hjl.tools@gmail.com
Tue May 12 15:04:00 GMT 2009
On Mon, May 11, 2009 at 1:41 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
> Hi,
> it turned out that there is some extra testsuite compensation neccesary
> since in vectorizer testsuite we now tend fully unroll internal loops
> preventing vectorization. In some cases unrolling makes sense, in some
> cases we make code size growth because we account loads and stores to
> have size of 0 I will fix by followup patch. Still it seems to make
> sense to increase iteration counts here to make tests more robust, it is
> not first time I am hitting this problem with cost improvements. Note
> that in slp-3.c I didn't managed to increase loop sufficiently, so I
> just updated the count. It is going to get fixed by the load/store
> cases. I also added bogus warning for Wunreachable-2.c testcase that
> got broken by patch fixing costs of calling functions with prototype
> only.
>
> Bootstrapped/regtested x86_64-linux, will commit it shortly.
>
> Honza
>
> * tree-ssa-loop-ivcanon.c: Include target.h
> (struct loop_size): new structure.
> (constant_after_peeling): New predicate.
> (tree_estimate_loop_size): New function.
> (estimated_unrolled_size): Rewrite for new estimates.
> (try_unroll_loop_completely): Use new estimates.
> * Makefile.in (tree-ssa-loop-ivcanon.o): Add dependenc on target.h
>
> * gcc.dg/tree-ssa/pr21829.c: Simplify matching since
> we now optimize better.
> * gcc.dg/Wunreachable-8.c: Bogus warnings now come
> out at different places.
> * gcc.dg/vect/vect-92.c: Increase loop iteration count to prevent
> unroling.
> * gcc.dg/vect/vect-76.c: Likewise.
> * gcc.dg/vect/vect-70.c: Likewise.
> * gcc.dg/vect/vect-66.c: Likewise.
> * gcc.dg/vect/no-section-anchors-vect-66.c: Likewise.
> * gcc.dg/vect/slp-3.c: One of loops gets now fully unrolled.
This caused:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40123
It only happens on Linux/x86-64 with -m32.
--
H.J.
More information about the Gcc-patches
mailing list