Commit 8928eff3 by Jakub Jelinek Committed by Jakub Jelinek

re PR tree-optimization/58472 (gomp4: ICE in in vectorizable_store, at tree-vect-stmts.c:4192)

	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.

	* c-c++-common/gomp/pr58472.c: New test.

From-SVN: r202748
parent b7b28c53
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> 2013-09-19 Jan Hubicka <jh@suse.cz>
* i386.c (generic_memcpy, generic_memset): Fix 32bit template. * i386.c (generic_memcpy, generic_memset): Fix 32bit template.
......
...@@ -2775,6 +2775,9 @@ lower_rec_input_clauses (tree clauses, gimple_seq *ilist, gimple_seq *dlist, ...@@ -2775,6 +2775,9 @@ lower_rec_input_clauses (tree clauses, gimple_seq *ilist, gimple_seq *dlist,
if (lane) if (lane)
{ {
tree uid = create_tmp_var (ptr_type_node, "simduid"); 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 g
= gimple_build_call_internal (IFN_GOMP_SIMD_LANE, 1, uid); = gimple_build_call_internal (IFN_GOMP_SIMD_LANE, 1, uid);
gimple_call_set_lhs (g, lane); gimple_call_set_lhs (g, lane);
......
...@@ -4182,6 +4182,7 @@ vectorizable_store (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -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_ptr = unshare_expr (DR_BASE_ADDRESS (first_dr));
dataref_offset = build_int_cst (reference_alias_ptr_type dataref_offset = build_int_cst (reference_alias_ptr_type
(DR_REF (first_dr)), 0); (DR_REF (first_dr)), 0);
inv_p = false;
} }
else else
dataref_ptr dataref_ptr
...@@ -5077,6 +5078,7 @@ vectorizable_load (gimple stmt, gimple_stmt_iterator *gsi, gimple *vec_stmt, ...@@ -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_ptr = unshare_expr (DR_BASE_ADDRESS (first_dr));
dataref_offset = build_int_cst (reference_alias_ptr_type dataref_offset = build_int_cst (reference_alias_ptr_type
(DR_REF (first_dr)), 0); (DR_REF (first_dr)), 0);
inv_p = false;
} }
else else
dataref_ptr dataref_ptr
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment