* tree-vectorizer.c (new_loop_vec_info): Initialize
LOOP_VINFO_COST_MODEL_MIN_ITERS.
* tree-vectorizer.h (_loop_vec_info): Added new filed
min_profitable_iters.
(LOOP_VINFO_COST_MODEL_MIN_ITERS): New access macro to above new field.
(TARG_SCALAR_TO_VEC_COST): Define cost of scalar to vector operation.
* tree-vect-analyze.c (vect_analyze_operations): Set
LOOP_VINFO_COST_MODEL_MIN_ITERS.
* tree-vect-transform.c (vect_estimate_min_profitable_iters): Use
VEC_length to determine if there are any LOOP_VINFO_MAY_MISALIGN_STMTS.
Fix calculation of peel_iters_prologue. Move consideration of epilogue
and prologue cost to after they are computed.
(vect_model_induction_cost): Use TARG_SCALAR_TO_VEC_COST instead of
TARG_VEC_STMT_COST.
(vect_model_simple_cost): Takes additional argument dt. Consider cost
of creating vectors from scalars according to dt.
(vect_model_store_cost): Likewise.
(vectorizable_call): Use dt array instead of scalar dt. Call
vect_model_simple_cost with additional argument dt.
(vectorizable_assignment): Likewise.
(vectorizable_operation): Likewise.
(vectorizable_type_demotion): Likewise.
(vectorizable_type_promotion): Likewise.
(vectorizable_store): Use dt array instead of scalar dt. Call
vect_model_store_cost with additional argument dt.
(vect_do_peeling_for_loop_bound): Don't call
vect_estimate_min_profitable_iters. Instead, lookup
LOOP_VINFO_COST_MODEL_MIN_ITERS. Don't always print
"may not be profitable".
* gcc.dg/vect/costmodel/ppc: New directory.
* gcc.dg/vect/costmodel/ppc/ppc-costmodel-vect.exp: New.
* gcc.dg/vect/costmodel/ppc/costmodel-fast-math-vect-pr29925.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31a.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31b.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31c.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-31d.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-33.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76a.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76b.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-76c.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-68a.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-68b.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-68c.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-68d.c: New test.
* gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: New test.
* gcc.dg/vect/costmodel/i386/costmodel-vect-68.c: Now vectorized.
From-SVN: r126368
This directory contains the GNU Compiler Collection (GCC).
The GNU Compiler Collection is free software. See the file COPYING
for copying permission. The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.
The directory INSTALL contains copies of the installation information
as HTML and plain text. The source of this information is
gcc/doc/install.texi. The installation information includes details
of what is included in the GCC sources and what files GCC installs.
See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information. An online readable
version of the manual is in the files gcc/doc/gcc.info*.
See http://gcc.gnu.org/bugs.html for how to report bugs usefully.