mirror of git://gcc.gnu.org/git/gcc.git
varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for the external decls.
gcc/ * varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for the external decls. libgomp/ * testsuite/libgomp.fortran/declare-target-1.f90: New test. * testsuite/libgomp.fortran/declare-target-2.f90: New file. From-SVN: r221421
This commit is contained in:
parent
d3ef4bd61f
commit
db397e2e5a
|
|
@ -1,3 +1,8 @@
|
||||||
|
2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
|
||||||
|
|
||||||
|
* varpool.c (varpool_node::get_create): Don't set 'offloadable' flag for
|
||||||
|
the external decls.
|
||||||
|
|
||||||
2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
2015-03-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
PR target/64600
|
PR target/64600
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,7 @@ varpool_node::get_create (tree decl)
|
||||||
node = varpool_node::create_empty ();
|
node = varpool_node::create_empty ();
|
||||||
node->decl = decl;
|
node->decl = decl;
|
||||||
|
|
||||||
if ((flag_openacc || flag_openmp)
|
if ((flag_openacc || flag_openmp) && !DECL_EXTERNAL (decl)
|
||||||
&& lookup_attribute ("omp declare target", DECL_ATTRIBUTES (decl)))
|
&& lookup_attribute ("omp declare target", DECL_ATTRIBUTES (decl)))
|
||||||
{
|
{
|
||||||
node->offloadable = 1;
|
node->offloadable = 1;
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2015-03-13 Ilya Verbin <ilya.verbin@intel.com>
|
||||||
|
|
||||||
|
* testsuite/libgomp.fortran/declare-target-1.f90: New test.
|
||||||
|
* testsuite/libgomp.fortran/declare-target-2.f90: New file.
|
||||||
|
|
||||||
2015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
2015-03-13 Sebastian Huber <sebastian.huber@embedded-brains.de>
|
||||||
|
|
||||||
* configure.tgt (*-*-rtems*): Use local-exec TLS model.
|
* configure.tgt (*-*-rtems*): Use local-exec TLS model.
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
! { dg-do run }
|
||||||
|
! { dg-additional-sources declare-target-2.f90 }
|
||||||
|
|
||||||
|
module declare_target_1_mod
|
||||||
|
integer :: var_x
|
||||||
|
!$omp declare target(var_x)
|
||||||
|
end module declare_target_1_mod
|
||||||
|
|
||||||
|
interface
|
||||||
|
subroutine foo ()
|
||||||
|
end subroutine foo
|
||||||
|
end interface
|
||||||
|
|
||||||
|
call foo ()
|
||||||
|
end
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
! Don't compile this anywhere, it is just auxiliary
|
||||||
|
! file compiled together with declare-target-1.f90
|
||||||
|
! to verify inter-CU module handling of omp declare target.
|
||||||
|
! { dg-do compile { target { lp64 && { ! lp64 } } } }
|
||||||
|
|
||||||
|
subroutine foo
|
||||||
|
use declare_target_1_mod
|
||||||
|
|
||||||
|
var_x = 10
|
||||||
|
!$omp target update to(var_x)
|
||||||
|
|
||||||
|
!$omp target
|
||||||
|
var_x = var_x * 2;
|
||||||
|
!$omp end target
|
||||||
|
|
||||||
|
!$omp target update from(var_x)
|
||||||
|
if (var_x /= 20) call abort
|
||||||
|
end subroutine foo
|
||||||
Loading…
Reference in New Issue