diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/omp-low.c | 3 | ||||
-rw-r--r-- | gcc/tree-vect-stmts.c | 2 |
3 files changed, 13 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index acf9418..1a12eda 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2013-09-19 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/58472 + * tree-vect-stmts.c (vectorizable_store, vectorizable_load): For + simd_lane_access set inv_p = false. + * omp-low.c (lower_rec_input_clauses): Set TREE_NO_WARNING on + the simduid magic VAR_DECL. + 2013-09-19 Jan Hubicka <jh@suse.cz> * i386.c (generic_memcpy, generic_memset): Fix 32bit template. diff --git a/gcc/omp-low.c b/gcc/omp-low.c index 304ea36..fa9aca4 100644 --- a/gcc/omp-low.c +++ b/gcc/omp-low.c @@ -2775,6 +2775,9 @@ lower_rec_input_clauses (tree clauses, gimple_seq *ilist, gimple_seq *dlist, if (lane) { tree uid = create_tmp_var (ptr_type_node, "simduid"); + /* Don't want uninit warnings on simduid, it is always uninitialized, + but we use it not for the value, but for the DECL_UID only. */ + TREE_NO_WARNING (uid) = 1; gimple g = gimple_build_call_internal (IFN_GOMP_SIMD_LANE, 1, uid); gimple_call_set_lhs (g, lane); diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c index 135eb30..fcea4d0 100644 --- a/gcc/tree-vect-stmts.c +++ b/gcc/tree-vect-stmts.c @@ -4182,6 +4182,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, dataref_ptr = unshare_expr (DR_BASE_ADDRESS (first_dr)); dataref_offset = build_int_cst (reference_alias_ptr_type (DR_REF (first_dr)), 0); + inv_p = false; } else dataref_ptr @@ -5077,6 +5078,7 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, dataref_ptr = unshare_expr (DR_BASE_ADDRESS (first_dr)); dataref_offset = build_int_cst (reference_alias_ptr_type (DR_REF (first_dr)), 0); + inv_p = false; } else dataref_ptr |