Fix multiple target clones nodes (PR lto/66295).

2017-03-14  Martin Liska  <mliska@suse.cz>

	PR lto/66295
	* multiple_target.c (expand_target_clones): Drop local.local
	flag for default implementation.
2017-03-14  Martin Liska  <mliska@suse.cz>

	PR lto/66295
	* gcc.dg/tree-prof/pr66295.c: New test.

From-SVN: r246119
This commit is contained in:
Martin Liska 2017-03-14 12:59:59 +01:00 committed by Martin Liska
parent e3e8f22f78
commit 861d9d5e6a
4 changed files with 46 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-03-14 Martin Liska <mliska@suse.cz>
PR lto/66295
* multiple_target.c (expand_target_clones): Drop local.local
flag for default implementation.
2017-03-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/80030

View File

@ -327,6 +327,7 @@ expand_target_clones (struct cgraph_node *node, bool definition)
tree attributes = make_attribute ("target", "default",
DECL_ATTRIBUTES (node->decl));
DECL_ATTRIBUTES (node->decl) = attributes;
node->local.local = false;
location_t saved_loc = input_location;
input_location = DECL_SOURCE_LOCATION (node->decl);
bool ret

View File

@ -1,3 +1,8 @@
2017-03-14 Martin Liska <mliska@suse.cz>
PR lto/66295
* gcc.dg/tree-prof/pr66295.c: New test.
2017-03-13 Martin Liska <mliska@suse.cz>
PR middle-end/78339

View File

@ -0,0 +1,34 @@
/* { dg-require-ifunc "" } */
/* { dg-options "-O2" } */
static double bar (double *__restrict, double *__restrict, int)
__attribute__ ((target_clones("avx,avx2,avx512f,default")));
double
foo (double *__restrict a, double *__restrict b, int n)
{
return bar (a,b,n);
}
double
bar (double *__restrict a, double *__restrict b, int n) /* { dg-error "attribute\[^\n\r]*foo\[^\n\r]* is unknown" } */
{
double s;
int i;
s = 0.0;
for (i=0; i<n; i++)
s += a[i] + b[i];
return s;
}
#define N 5
int main ()
{
double a[N] = {1.2f, 1.2f, 1.2f, 1.2f, 1.2f };
double b[N] = {1.2f, 1.2f, 1.2f, 1.2f, 1.2f };
__builtin_printf ("value: %.5f\n", foo (a, b, N));
return 0;
}