r125642 - in /branches/autovect-branch/gcc: Cha...
irar@gcc.gnu.org
irar@gcc.gnu.org
Tue Jun 12 09:34:00 GMT 2007
Author: irar
Date: Tue Jun 12 09:34:28 2007
New Revision: 125642
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=125642
Log:
* tree-vectorizer.h (vect_def_type): Start enumeration from 1.
(_slp_tree, _slp_instance): New structs along with macros for fields'
access.
(_loop_vec_info): Add new fields strided_stores, slp_instances and
slp_unrolling_factor with access macros.
(enum slp_vect_type): New.
(_stmt_vec_info): New field slp_type and macro to access it.
* tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields.
(new_loop_vec_info): Likewise.
(destroy_loop_vec_info): Free the new fields.
* tree-vect-analyze.c (vect_analyze_operations): Call vectorizable_
functions with correct arguments. For not pure SLP stmts with strided
access check that the group size is power of 2. In case that the loop
can be SLPed purely update the vectorization factor.
(vect_analyze_data_ref_access): Don't fail for not power of 2 group
size. If possible to SLP the group, store it for future analysis.
(vect_get_and_check_slp_defs, vect_build_slp_tree, vect_free_slp_tree,
vect_print_slp_tree, vect_mark_slp_stmts, vect_analyze_slp_instance,
vect_analyze_slp, vect_make_slp_decision, vect_detect_hybrid_slp_stmts,
vect_detect_hybrid_slp): New.
(vect_analyze_loop): Call vect_analyze_slp, vect_make_slp_decision and
vect_detect_hybrid_slp.
* tree-vect-transform.c (vect_get_constant_vectors,
vect_get_slp_vect_defs, vect_get_slp_defs): New.
(vectorizable_reduction): Fail if SLP.
(vectorizable_call, vectorizable_induction, vectorizable_type_demotion,
vectorizable_condition): Likewise.
(vectorizable_conversion): Handle SLP (call vect_get_slp_defs to get
SLPed defs).
(vectorizable_assignment, vectorizable_operation, vectorizable_store,
vectorizable_load): Likewise.
(vect_transform_stmt): Pass SLP arguments if supported and assert no
SLP for unsupported cases.
(vect_remove_stores, vect_schedule_slp_instance, vect_schedule_slp):
New.
(vect_transform_loop): Call vect_schedule_slp.
Added:
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/fast-math-slp-27.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/no-math-errno-slp-32.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-30.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/no-scevccp-slp-31.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/no-tree-pre-slp-29.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-1.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-10.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-11.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-12.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-13.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-14.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-15.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-16.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-17.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-18.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-19.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-2.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-20.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-21.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-22.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-23.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-24.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-25.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-26.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-28.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-3.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-4.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-5.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-6.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-7.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-8.c
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/slp-9.c
Modified:
branches/autovect-branch/gcc/ChangeLog.autovect
branches/autovect-branch/gcc/testsuite/ChangeLog.autovect
branches/autovect-branch/gcc/testsuite/gcc.dg/vect/vect.exp
branches/autovect-branch/gcc/testsuite/lib/target-supports.exp
branches/autovect-branch/gcc/tree-vect-analyze.c
branches/autovect-branch/gcc/tree-vect-transform.c
branches/autovect-branch/gcc/tree-vectorizer.c
branches/autovect-branch/gcc/tree-vectorizer.h
More information about the Gcc-cvs
mailing list