aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog8
-rw-r--r--gcc/omp-low.c3
-rw-r--r--gcc/tree-vect-stmts.c2
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