You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v2-alloca-parent-and-children.f90
-11Lines changed: 0 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -40,11 +40,6 @@ program udt_release
40
40
allocate(obj%dtype_nest%dtype_nest%arr3(n))
41
41
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
42
42
43
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
44
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
45
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
46
-
! OpenMP behaviour.
47
-
48
43
!$omp target enter data map(ref_ptr, to: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
49
44
!$omp target enter data map(ref_ptr, present, storage: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
50
45
@@ -103,9 +98,6 @@ program udt_release
103
98
stop1
104
99
endif
105
100
106
-
! NOTE: We currently need to map the derived type descriptor + data when mapping this type of
107
-
! construct, we might be able to tweak things to skip this part of the mapping in the future.
108
-
! But for simplicities sake I've left it as-is for the first iteration.
109
101
if(omp_target_is_present(C_LOC(obj), omp_get_default_device()) == 0) then
110
102
print*, "After enter: obj parent structure NOT on device"
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v2-alloca-parent.f90
-6Lines changed: 0 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -37,11 +37,6 @@ program udt_release
37
37
allocate(obj%dtype_nest%dtype_nest%arr3(n))
38
38
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
39
39
40
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
41
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
42
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
43
-
! OpenMP behaviour.
44
-
45
40
!$omp target enter data map(ref_ptr, to: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
46
41
!$omp target enter data map(ref_ptr, present, storage: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
47
42
@@ -52,7 +47,6 @@ program udt_release
52
47
print*, "obj%dtype_nest%dtype_nest%arr3 ref_ptr on device"
53
48
print*, "obj%dtype_nest%dtype_nest%scalar_ptr ref_ptr on device"
54
49
55
-
56
50
if(omp_target_is_present(C_LOC(obj%arr), omp_get_default_device()) == 0) then
57
51
print*, "After enter: obj%arr ref_ptee NOT on device"
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v2.f90
-6Lines changed: 0 additions & 6 deletions
Original file line number
Diff line number
Diff line change
@@ -36,11 +36,6 @@ program udt_release
36
36
allocate(obj%dtype_nest%dtype_nest%arr3(n))
37
37
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
38
38
39
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
40
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
41
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
42
-
! OpenMP behaviour.
43
-
44
39
!$omp target enter data map(ref_ptr, to: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
45
40
!$omp target enter data map(ref_ptr, present, storage: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
46
41
@@ -51,7 +46,6 @@ program udt_release
51
46
print*, "obj%dtype_nest%dtype_nest%arr3 ref_ptr on device"
52
47
print*, "obj%dtype_nest%dtype_nest%scalar_ptr ref_ptr on device"
53
48
54
-
55
49
if(omp_target_is_present(C_LOC(obj%arr), omp_get_default_device()) == 0) then
56
50
print*, "After enter: obj%arr ref_ptee NOT on device"
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v3-alloca-parent-and-children.f90
-5Lines changed: 0 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -40,11 +40,6 @@ program udt_release
40
40
allocate(obj%dtype_nest%dtype_nest%arr3(n))
41
41
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
42
42
43
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
44
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
45
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
46
-
! OpenMP behaviour.
47
-
48
43
!$omp target enter data map(ref_ptee, to: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
49
44
50
45
if(omp_target_is_present(C_LOC(obj%arr), omp_get_default_device()) == 0) then
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v3-alloca-parent.f90
-5Lines changed: 0 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -37,11 +37,6 @@ program udt_release
37
37
allocate(obj%dtype_nest%dtype_nest%arr3(n))
38
38
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
39
39
40
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
41
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
42
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
43
-
! OpenMP behaviour.
44
-
45
40
!$omp target enter data map(ref_ptee, to: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
46
41
47
42
if(omp_target_is_present(C_LOC(obj%arr), omp_get_default_device()) == 0) then
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v3.f90
-5Lines changed: 0 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -36,11 +36,6 @@ program udt_release
36
36
allocate(obj%dtype_nest%dtype_nest%arr3(n))
37
37
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
38
38
39
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
40
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
41
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
42
-
! OpenMP behaviour.
43
-
44
39
!$omp target enter data map(ref_ptee, to: obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
45
40
46
41
if(omp_target_is_present(C_LOC(obj%arr), omp_get_default_device()) == 0) then
Copy file name to clipboardExpand all lines: test/fortran-map-tests/SWDEV-564425-v4-alloca-parent.f90
-13Lines changed: 0 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -38,17 +38,6 @@ program udt_release
38
38
allocate(obj%dtype_nest%dtype_nest%arr3(n))
39
39
allocate(obj%dtype_nest%dtype_nest%scalar_ptr)
40
40
41
-
42
-
! Present checking and sending separately as if we send it in a single map/present check it in a single map
43
-
! we end up allocating bits and pieces implicitly due to the implicit binding parent map, but this seems
44
-
! analogous to Clang behaviour. It may need a bit of a rethink though, or a verification if it's the correct
45
-
! OpenMP behaviour.
46
-
47
-
! it's somewhat illegal to have the obj in the follow up ref_ptee as we've already mapped chunks of
48
-
! it before when mapping members in the ref_ptr enter map, it will currently work but it shouldn't be
49
-
! encouraged as there's no guarantee it'll remain that way or be portable. And as we're mapping members
50
-
! of obj (the descriptors of the pointer/allocatable members) we actually have to map the contiguous blocks
51
-
! of data.
52
41
!$omp target enter data map(ref_ptr, to: obj, obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
53
42
!$omp target enter data map(ref_ptr, present, storage: obj, obj%arr, obj%dtype_nest2%arr3, obj%dtype_nest2%scalar_ptr, obj%dtype_nest%scalar_ptr, obj%dtype_nest%dtype_nest%arr3, obj%dtype_nest%dtype_nest%scalar_ptr)
54
43
@@ -107,8 +96,6 @@ program udt_release
107
96
stop1
108
97
endif
109
98
110
-
! We technically map bits of the object when we specify the mapping of the
111
-
! descriptors for each of the member maps.
112
99
if(omp_target_is_present(C_LOC(obj), omp_get_default_device()) == 0) then
113
100
print*, "After enter: obj parent structure NOT on device"
0 commit comments