[hsa] Set program allocation for static local variables

2018-02-08  Martin Jambor  <mjambor@suse.cz>

	* hsa-gen.c (get_symbol_for_decl): Set program allocation for
	static local variables.

libgomp/
	* testsuite/libgomp.hsa.c/staticvar.c: New test.

From-SVN: r257484
This commit is contained in:
Martin Jambor 2018-02-08 14:03:52 +01:00 committed by Martin Jambor
parent 414fef4e66
commit c7c30edd4a
4 changed files with 39 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2018-02-08 Martin Jambor <mjambor@suse.cz>
* hsa-gen.c (get_symbol_for_decl): Set program allocation for
static local variables.
2018-02-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/84278

View File

@ -932,9 +932,13 @@ get_symbol_for_decl (tree decl)
else if (lookup_attribute ("hsa_group_segment",
DECL_ATTRIBUTES (decl)))
segment = BRIG_SEGMENT_GROUP;
else if (TREE_STATIC (decl)
|| lookup_attribute ("hsa_global_segment",
DECL_ATTRIBUTES (decl)))
else if (TREE_STATIC (decl))
{
segment = BRIG_SEGMENT_GLOBAL;
allocation = BRIG_ALLOCATION_PROGRAM;
}
else if (lookup_attribute ("hsa_global_segment",
DECL_ATTRIBUTES (decl)))
segment = BRIG_SEGMENT_GLOBAL;
else
segment = BRIG_SEGMENT_PRIVATE;

View File

@ -1,3 +1,7 @@
2018-02-08 Martin Jambor <mjambor@suse.cz>
* testsuite/libgomp.hsa.c/staticvar.c: New test.
2018-02-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* testsuite/libgomp.oacc-c-c++-common/pr84217.c (abort)

View File

@ -0,0 +1,23 @@
extern void abort (void);
#pragma omp declare target
int
foo (void)
{
static int s;
return ++s;
}
#pragma omp end declare target
int
main ()
{
int r;
#pragma omp target map(from:r)
{
r = foo ();
}
if (r != 1)
abort ();
return 0;
}