CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
269 lines
9.6 KiB
Fortran
269 lines
9.6 KiB
Fortran
! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenmp
|
|
|
|
! Test symbols generated in block constructs that have implicitly
|
|
! determined DSAs.
|
|
|
|
! Basic cases.
|
|
!DEF: /implicit_dsa_test1 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test1
|
|
!DEF: /implicit_dsa_test1/i ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/x ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/y ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/z ObjectEntity INTEGER(4)
|
|
integer i, x, y, z
|
|
|
|
!$omp task private(y) shared(z)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct1/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct1/y (OmpPrivate, OmpExplicit) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct1/z (OmpShared, OmpExplicit) HostAssoc INTEGER(4)
|
|
x = y + z
|
|
!$omp end task
|
|
|
|
!$omp task default(shared)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct2/x (OmpShared) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct2/y (OmpShared) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct2/z (OmpShared) HostAssoc INTEGER(4)
|
|
x = y + z
|
|
!$omp end task
|
|
|
|
!$omp taskloop
|
|
!DEF: /implicit_dsa_test1/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
|
|
do i = 0, 10
|
|
!DEF: /implicit_dsa_test1/OtherConstruct3/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test1/OtherConstruct3/y (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
!REF: /implicit_dsa_test1/OtherConstruct3/i
|
|
x = y + i
|
|
end do
|
|
!$omp end taskloop
|
|
end subroutine
|
|
|
|
! Nested task with implicit firstprivate DSA variable.
|
|
!DEF: /implicit_dsa_test2 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test2
|
|
!DEF: /implicit_dsa_test2/x ObjectEntity INTEGER(4)
|
|
integer x
|
|
|
|
!$omp task
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test2/OtherConstruct1/OtherConstruct1/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
x = 1
|
|
!$omp end task
|
|
!$omp end task
|
|
end subroutine
|
|
|
|
! Nested tasks with implicit shared DSA variables.
|
|
!DEF: /implicit_dsa_test3 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test3
|
|
!DEF: /implicit_dsa_test3/x ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test3/y ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test3/z ObjectEntity INTEGER(4)
|
|
integer x, y, z
|
|
|
|
!$omp parallel
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct1/x (OmpShared) HostAssoc INTEGER(4)
|
|
x = 1
|
|
!DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct1/y (OmpShared) HostAssoc INTEGER(4)
|
|
y = 1
|
|
!$omp end task
|
|
|
|
!$omp task firstprivate(x)
|
|
!DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct2/x (OmpFirstPrivate, OmpExplicit) HostAssoc INTEGER(4)
|
|
x = 1
|
|
!DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct2/z (OmpShared) HostAssoc INTEGER(4)
|
|
z = 1
|
|
!$omp end task
|
|
!$omp end parallel
|
|
end subroutine
|
|
|
|
! Task with implicit firstprivate DSA variables, enclosed in private context.
|
|
!DEF: /implicit_dsa_test4 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test4
|
|
!DEF: /implicit_dsa_test4/x ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test4/y ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test4/z ObjectEntity INTEGER(4)
|
|
integer x, y, z
|
|
|
|
!$omp parallel default(private)
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct1/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
x = 0
|
|
!DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct1/z (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
z = 1
|
|
!$omp end task
|
|
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct2/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
x = 1
|
|
!DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct2/y (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
y = 0
|
|
!$omp end task
|
|
!$omp end parallel
|
|
end subroutine
|
|
|
|
! Inner parallel using implicit firstprivate symbol.
|
|
!DEF: /implicit_dsa_test5 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test5
|
|
!DEF: /implicit_dsa_test5/x ObjectEntity INTEGER(4)
|
|
integer x
|
|
|
|
!$omp parallel default(private)
|
|
!$omp task
|
|
!$omp parallel
|
|
!DEF: /implicit_dsa_test5/OtherConstruct1/OtherConstruct1/OtherConstruct1/x (OmpShared) HostAssoc INTEGER(4)
|
|
x = 1
|
|
!$omp end parallel
|
|
!$omp end task
|
|
!$omp end parallel
|
|
end subroutine
|
|
|
|
! Constructs nested inside a task with implicit DSA variables.
|
|
!DEF: /implicit_dsa_test6 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test6
|
|
!DEF: /implicit_dsa_test6/x ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test6/y ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test6/z ObjectEntity INTEGER(4)
|
|
integer x, y, z
|
|
|
|
!$omp task
|
|
!$omp parallel default(private)
|
|
!DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct1/x (OmpPrivate) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct1/y (OmpPrivate) HostAssoc INTEGER(4)
|
|
x = y
|
|
!$omp end parallel
|
|
|
|
!$omp parallel default(firstprivate) shared(y)
|
|
!DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct2/y (OmpShared, OmpExplicit) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct2/x (OmpFirstPrivate) HostAssocINTEGER(4)
|
|
!DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct2/z (OmpFirstPrivate) HostAssocINTEGER(4)
|
|
y = x + z
|
|
!$omp end parallel
|
|
!$omp end task
|
|
end subroutine
|
|
|
|
! Test taskgroup.
|
|
!DEF: /implicit_dsa_test7 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test7
|
|
!DEF: /implicit_dsa_test7/x ObjectEntity INTEGER(4)
|
|
!DEF: /implicit_dsa_test7/y ObjectEntity INTEGER(4)
|
|
integer x, y
|
|
|
|
!$omp task
|
|
!$omp taskgroup
|
|
!DEF: /implicit_dsa_test7/OtherConstruct1/OtherConstruct1/x HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test7/OtherConstruct1/OtherConstruct1/y HostAssoc INTEGER(4)
|
|
x = y
|
|
!$omp end taskgroup
|
|
!$omp end task
|
|
end subroutine
|
|
|
|
! Predetermined loop iteration variable.
|
|
!DEF: /implicit_dsa_test8 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test8
|
|
!DEF: /implicit_dsa_test8/i ObjectEntity INTEGER(4)
|
|
integer i
|
|
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test8/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
|
|
do i = 1, 10
|
|
end do
|
|
!$omp end task
|
|
end subroutine
|
|
|
|
! Test variables defined in modules default to shared DSA
|
|
!DEF: /implicit_dsa_test9_mod Module
|
|
module implicit_dsa_test9_mod
|
|
!DEF: /implicit_dsa_test9_mod/tm3a PUBLIC (InDataStmt) ObjectEntity COMPLEX(4)
|
|
complex tm3a/(0,0)/
|
|
!DEF: /implicit_dsa_test9_mod/tm4a PUBLIC ObjectEntity COMPLEX(4)
|
|
complex tm4a
|
|
contains
|
|
!DEF: /implicit_dsa_test9_mod/implict_dsa_test9 PUBLIC (Subroutine) Subprogram
|
|
subroutine implict_dsa_test9
|
|
!$omp task
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test9_mod/implict_dsa_test9/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc COMPLEX(4)
|
|
tm3a = (1, 2)
|
|
!DEF: /implicit_dsa_test9_mod/implict_dsa_test9/OtherConstruct1/OtherConstruct1/tm4a (OmpShared) HostAssoc COMPLEX(4)
|
|
tm4a = (3, 4)
|
|
!$omp end task
|
|
!$omp end task
|
|
!$omp taskwait
|
|
!REF: /implicit_dsa_test9_mod/tm3a
|
|
print *,tm3a
|
|
end subroutine
|
|
end module
|
|
|
|
! Test variables in data statement default to shared DSA
|
|
!DEF: /implicit_dsa_test10 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test10
|
|
!DEF: /implicit_dsa_test10/tm3a (Implicit, InDataStmt) ObjectEntity REAL(4)
|
|
data tm3a /3/
|
|
!$omp task
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test10/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc REAL(4)
|
|
tm3a = 5
|
|
!$omp end task
|
|
!$omp end task
|
|
!$omp taskwait
|
|
!REF: /implicit_dsa_test10/tm3a
|
|
print *,tm3a
|
|
end subroutine
|
|
|
|
! Test variables with the SAVE attrtibute default to shared DSA
|
|
!DEF: /implicit_dsa_test_11 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test_11
|
|
!DEF: /implicit_dsa_test_11/tm3a SAVE ObjectEntity COMPLEX(4)
|
|
complex, save :: tm3a
|
|
!$omp task
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test_11/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc COMPLEX(4)
|
|
tm3a = (1, 2)
|
|
!$omp end task
|
|
!$omp end task
|
|
!$omp taskwait
|
|
!REF: /implicit_dsa_test_11/tm3a
|
|
print *,tm3a
|
|
end subroutine
|
|
|
|
! Test variables referenced in a common block default to shared DSA
|
|
!DEF: /implicit_dsa_test_12 (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test_12
|
|
!DEF: /implicit_dsa_test_12/tm3a (InCommonBlock) ObjectEntity COMPLEX(4)
|
|
complex tm3a
|
|
!DEF: /implicit_dsa_test_12/tcom CommonBlockDetails
|
|
!REF: /implicit_dsa_test_12/tm3a
|
|
common /tcom/ tm3a
|
|
!$omp task
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test_12/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc COMPLEX(4)
|
|
tm3a = (1, 2)
|
|
!$omp end task
|
|
!$omp end task
|
|
!$omp taskwait
|
|
!REF: /implicit_dsa_test_12/tm3a
|
|
print *,tm3a
|
|
end subroutine
|
|
|
|
! Test static duration variables with DSA set in the enclosing scope do not default to shared DSA
|
|
!DEF: /implicit_dsa_test_13_mod Module
|
|
module implicit_dsa_test_13_mod
|
|
!DEF: /implicit_dsa_test_13_mod/a PUBLIC ObjectEntity INTEGER(4)
|
|
integer::a=5
|
|
contains
|
|
!DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13 PUBLIC (Subroutine) Subprogram
|
|
subroutine implicit_dsa_test_13
|
|
!DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/i ObjectEntity INTEGER(4)
|
|
integer i
|
|
!$omp do private(a)
|
|
!DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)
|
|
do i=0,10
|
|
!$omp task
|
|
!DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/OtherConstruct1/OtherConstruct1/a (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
!DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/OtherConstruct1/OtherConstruct1/i (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)
|
|
a=a+i
|
|
!$omp end task
|
|
end do
|
|
end subroutine implicit_dsa_test_13
|
|
end module implicit_dsa_test_13_mod
|