mirror of
https://github.com/gcc-mirror/gcc.git
synced 2025-08-16 17:10:17 +00:00
4b47acfe2b626d1276e229a0cf165e934813df6c

The following removes the VF determining step from non-SLP stmts. For now we keep setting STMT_VINFO_VECTYPE for all stmts, there are too many places to fix, including some more complicated ones, so this is defered for a followup. Along this removes vect_update_vf_for_slp, merging the check for present hybrid SLP stmts to vect_detect_hybrid_slp and fail analysis early. This also removes to essentially duplicate this check in the stmt walk of vect_analyze_loop_operations. Getting rid of that, and performing some other checks earlier is also defered to a followup. * tree-vect-loop.cc (vect_determine_vf_for_stmt_1): Rename to ... (vect_determine_vectype_for_stmt_1): ... this and only set STMT_VINFO_VECTYPE. Fail for single-element vector types. (vect_determine_vf_for_stmt): Rename to ... (vect_determine_vectype_for_stmt): ... this and only set STMT_VINFO_VECTYPE. Fail for single-element vector types. (vect_determine_vectorization_factor): Rename to ... (vect_set_stmts_vectype): ... this and only set STMT_VINFO_VECTYPE. (vect_update_vf_for_slp): Remove. (vect_analyze_loop_operations): Remove walk over stmts. (vect_analyze_loop_2): Call vect_set_stmts_vectype instead of vect_determine_vectorization_factor. Set vectorization factor from LOOP_VINFO_SLP_UNROLLING_FACTOR. Fail if vect_detect_hybrid_slp detects hybrid stmts or when vect_make_slp_decision finds nothing to SLP. * tree-vect-slp.cc (vect_detect_hybrid_slp): Move check whether we have any hybrid stmts here from vect_update_vf_for_slp * tree-vect-stmts.cc (vect_analyze_stmt): Remove loop over stmts. * tree-vectorizer.h (vect_detect_hybrid_slp): Update.
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
…
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with 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/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually.
Description
Languages
C++
31%
C
30.3%
Ada
14.9%
D
6.2%
Go
5.9%
Other
11.2%