svn merge -r 218679:218997 svn+ssh://gcc.gnu.org/svn/gcc/trunk
[official-gcc.git] / gcc / ChangeLog.elementals
blobd5af0ff697e038c07b631fe310e91c09c4c5193a
1 2013-10-30  Aldy Hernandez  <aldyh@redhat.com>
3         * tree-vect-stmts.c: Include cgraph.h.
4         (vectorizable_call): Allow > 3 arguments when a SIMD clone may be
5         available.
6         (vectorizable_function): Use SIMD clone if available.
7         * ipa-cp.c (determine_versionability): Nodes with SIMD clones are
8         not versionable.
9         * ggc.h (ggc_alloc_cleared_simd_clone_stat): New.
10         * cgraph.h (enum linear_stride_type): New.
11         (struct simd_clone_arg): New.
12         (struct simd_clone): New.
13         (struct cgraph_node): Add simdclone and simdclone_of fields.
14         (get_simd_clone): Protoize.
15         * cgraph.c (get_simd_clone): New.
16         Add `has_simd_clones' field.
17         * ipa-cp.c (determine_versionability): Disallow functions with
18         simd clones.
19         * ipa-prop.h (ipa_sra_modify_function_body): Protoize.
20         (sra_ipa_modify_expr): Same.
21         (struct ipa_parm_adjustment): Add new_arg_prefix and new_param
22         fields.  Document their use.
23         * ipa-prop.c (ipa_modify_formal_parameters): Handle creating brand
24         new parameters and minor cleanups.
25         * omp-low.c: Add new pass_omp_simd_clone support code.
26         (make_pass_omp_simd_clone): New.
27         (pass_data_omp_simd_clone): Declare.
28         (class pass_omp_simd_clone): Declare.
29         (vecsize_mangle): New.
30         (ipa_omp_simd_clone): New.
31         (simd_clone_clauses_extract): New.
32         (simd_clone_compute_base_data_type): New.
33         (simd_clone_compute_vecsize_and_simdlen): New.
34         (simd_clone_create): New.
35         (simd_clone_adjust_return_type): New.
36         (simd_clone_adjust_return_types): New.
37         (simd_clone_adjust): New.
38         (simd_clone_init_simd_arrays): New.
39         (ipa_simd_modify_function_body): New.
40         (simd_clone_mangle): New.
41         (simd_clone_struct_alloc): New.
42         (simd_clone_struct_copy): New.
43         (class argno_map): New.
44         (argno_map::argno_map(tree)): New.
45         (argno_map::~argno_map): New.
46         (argno_map::operator []): New.
47         (argno_map::length): New.
48         (expand_simd_clones): New.
49         (create_tmp_simd_array): New.
50         * tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): New.
51         * tree-core.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Document.
52         * tree-pass.h (make_pass_omp_simd_clone): New.
53         * passes.def (pass_omp_simd_clone): New.
54         * target.def: Define new hook prefix "TARGET_CILKPLUS_".
55         (default_vecsize_mangle): New.
56         (vecsize_for_mangle): New.
57         * doc/tm.texi.in: Add placeholder for
58         TARGET_CILKPLUS_DEFAULT_VECSIZE_MANGLE and
59         TARGET_CILKPLUS_VECSIZE_FOR_MANGLE.
60         * tree-sra.c (sra_ipa_modify_expr): Remove static modifier.
61         (ipa_sra_modify_function_body): Same.
62         * tree.h (OMP_CLAUSE_LINEAR_VARIABLE_STRIDE): Define.
63         * doc/tm.texi: Regenerate.
64         * config/i386/i386.c (ix86_cilkplus_default_vecsize_mangle): New.
65         (ix86_cilkplus_vecsize_for_mangle): New.
66         (TARGET_CILKPLUS_DEFAULT_VECSIZE_MANGLE): New.
67         (TARGET_CILKPLUS_VECSIZE_FOR_MANGLE): New.