Commit 3d8fb311 by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/83977 (ICE in simd_clone_clauses_extract, at omp-simd-clone.c:184)

	PR middle-end/83977
	* ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature
	on functions with #pragma omp declare simd or functions with simd
	attribute.
	* omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change.
	* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
	Remove trailing \n from warning_at calls.

	* c-c++-common/gomp/pr83977-1.c: Add -w to dg-options.

From-SVN: r257051
parent 58078de7
2018-01-25 Jakub Jelinek <jakub@redhat.com>
PR middle-end/83977
* ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature
on functions with #pragma omp declare simd or functions with simd
attribute.
* omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change.
* config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
Remove trailing \n from warning_at calls.
2018-01-25 Tom de Vries <tom@codesourcery.com> 2018-01-25 Tom de Vries <tom@codesourcery.com>
PR target/84028 PR target/84028
......
...@@ -50224,7 +50224,7 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, ...@@ -50224,7 +50224,7 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
break; break;
default: default:
warning_at (DECL_SOURCE_LOCATION (node->decl), 0, warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
"unsupported return type %qT for simd\n", ret_type); "unsupported return type %qT for simd", ret_type);
return 0; return 0;
} }
...@@ -50246,7 +50246,7 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node, ...@@ -50246,7 +50246,7 @@ ix86_simd_clone_compute_vecsize_and_simdlen (struct cgraph_node *node,
break; break;
default: default:
warning_at (DECL_SOURCE_LOCATION (node->decl), 0, warning_at (DECL_SOURCE_LOCATION (node->decl), 0,
"unsupported argument type %qT for simd\n", TREE_TYPE (t)); "unsupported argument type %qT for simd", TREE_TYPE (t));
return 0; return 0;
} }
...@@ -2467,7 +2467,11 @@ compute_fn_summary (struct cgraph_node *node, bool early) ...@@ -2467,7 +2467,11 @@ compute_fn_summary (struct cgraph_node *node, bool early)
info->inlinable = tree_inlinable_function_p (node->decl); info->inlinable = tree_inlinable_function_p (node->decl);
/* Type attributes can use parameter indices to describe them. */ /* Type attributes can use parameter indices to describe them. */
if (TYPE_ATTRIBUTES (TREE_TYPE (node->decl))) if (TYPE_ATTRIBUTES (TREE_TYPE (node->decl))
/* Likewise for #pragma omp declare simd functions or functions
with simd attribute. */
|| lookup_attribute ("omp declare simd",
DECL_ATTRIBUTES (node->decl)))
node->local.can_change_signature = false; node->local.can_change_signature = false;
else else
{ {
......
...@@ -1574,10 +1574,6 @@ expand_simd_clones (struct cgraph_node *node) ...@@ -1574,10 +1574,6 @@ expand_simd_clones (struct cgraph_node *node)
tree attr = lookup_attribute ("omp declare simd", tree attr = lookup_attribute ("omp declare simd",
DECL_ATTRIBUTES (node->decl)); DECL_ATTRIBUTES (node->decl));
if (attr == NULL_TREE if (attr == NULL_TREE
/* Ignore artificial decls with an abstract origin, results of function
cloning, versioning etc. We want to handle certain builtins
with simd attribute, like __builtin_sin. */
|| (DECL_ARTIFICIAL (node->decl) && DECL_ABSTRACT_ORIGIN (node->decl))
|| node->global.inlined_to || node->global.inlined_to
|| lookup_attribute ("noclone", DECL_ATTRIBUTES (node->decl))) || lookup_attribute ("noclone", DECL_ATTRIBUTES (node->decl)))
return; return;
......
2018-01-25 Jakub Jelinek <jakub@redhat.com>
PR middle-end/83977
* c-c++-common/gomp/pr83977-1.c: Add -w to dg-options.
2018-01-25 Richard Sandiford <richard.sandiford@linaro.org> 2018-01-25 Richard Sandiford <richard.sandiford@linaro.org>
* gcc.dg/vect/vect-reduc-or_1.c: Require whole_vector_shift for * gcc.dg/vect/vect-reduc-or_1.c: Require whole_vector_shift for
......
/* PR middle-end/83977 */ /* PR middle-end/83977 */
/* { dg-do compile } */ /* { dg-do compile } */
/* { dg-additional-options "-O2" } */ /* { dg-additional-options "-O2 -w" } */
struct S { int a, b, c; }; struct S { int a, b, c; };
......
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