This is the mail archive of the
mailing list for the GCC project.
Re: Improve unrolled size estimates
On Mon, May 11, 2009 at 1:41 PM, Jan Hubicka <email@example.com> wrote:
> 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
> Bootstrapped/regtested x86_64-linux, will commit it shortly.
> ? ? ? ?* 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.
It only happens on Linux/x86-64 with -m32.