brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.6 KiB · 1ee777d Raw
269 lines · plain
1! RUN: %python %S/../test_symbols.py %s %flang_fc1 -fopenmp2 3! Test symbols generated in block constructs that have implicitly4! determined DSAs.5 6! Basic cases.7!DEF: /implicit_dsa_test1 (Subroutine) Subprogram8subroutine implicit_dsa_test19  !DEF: /implicit_dsa_test1/i ObjectEntity INTEGER(4)10  !DEF: /implicit_dsa_test1/x ObjectEntity INTEGER(4)11  !DEF: /implicit_dsa_test1/y ObjectEntity INTEGER(4)12  !DEF: /implicit_dsa_test1/z ObjectEntity INTEGER(4)13  integer i, x, y, z14 15  !$omp task private(y) shared(z)16    !DEF: /implicit_dsa_test1/OtherConstruct1/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)17    !DEF: /implicit_dsa_test1/OtherConstruct1/y (OmpPrivate, OmpExplicit) HostAssoc INTEGER(4)18    !DEF: /implicit_dsa_test1/OtherConstruct1/z (OmpShared, OmpExplicit) HostAssoc INTEGER(4)19    x = y + z20  !$omp end task21 22  !$omp task default(shared)23    !DEF: /implicit_dsa_test1/OtherConstruct2/x (OmpShared) HostAssoc INTEGER(4)24    !DEF: /implicit_dsa_test1/OtherConstruct2/y (OmpShared) HostAssoc INTEGER(4)25    !DEF: /implicit_dsa_test1/OtherConstruct2/z (OmpShared) HostAssoc INTEGER(4)26    x = y + z27  !$omp end task28 29  !$omp taskloop30    !DEF: /implicit_dsa_test1/OtherConstruct3/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)31    do i = 0, 1032      !DEF: /implicit_dsa_test1/OtherConstruct3/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)33      !DEF: /implicit_dsa_test1/OtherConstruct3/y (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)34      !REF: /implicit_dsa_test1/OtherConstruct3/i35      x = y + i36    end do37  !$omp end taskloop38end subroutine39 40! Nested task with implicit firstprivate DSA variable.41!DEF: /implicit_dsa_test2 (Subroutine) Subprogram42subroutine implicit_dsa_test243  !DEF: /implicit_dsa_test2/x ObjectEntity INTEGER(4)44  integer x45 46  !$omp task47    !$omp task48      !DEF: /implicit_dsa_test2/OtherConstruct1/OtherConstruct1/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)49      x = 150    !$omp end task51  !$omp end task52end subroutine53 54! Nested tasks with implicit shared DSA variables.55!DEF: /implicit_dsa_test3 (Subroutine) Subprogram56subroutine implicit_dsa_test357  !DEF: /implicit_dsa_test3/x ObjectEntity INTEGER(4)58  !DEF: /implicit_dsa_test3/y ObjectEntity INTEGER(4)59  !DEF: /implicit_dsa_test3/z ObjectEntity INTEGER(4)60  integer x, y, z61 62  !$omp parallel63    !$omp task64      !DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct1/x (OmpShared) HostAssoc INTEGER(4)65      x = 166      !DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct1/y (OmpShared) HostAssoc INTEGER(4)67      y = 168    !$omp end task69 70    !$omp task firstprivate(x)71      !DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct2/x (OmpFirstPrivate, OmpExplicit) HostAssoc INTEGER(4)72      x = 173      !DEF: /implicit_dsa_test3/OtherConstruct1/OtherConstruct2/z (OmpShared) HostAssoc INTEGER(4)74      z = 175    !$omp end task76  !$omp end parallel77end subroutine78 79! Task with implicit firstprivate DSA variables, enclosed in private context.80!DEF: /implicit_dsa_test4 (Subroutine) Subprogram81subroutine implicit_dsa_test482  !DEF: /implicit_dsa_test4/x ObjectEntity INTEGER(4)83  !DEF: /implicit_dsa_test4/y ObjectEntity INTEGER(4)84  !DEF: /implicit_dsa_test4/z ObjectEntity INTEGER(4)85  integer x, y, z86 87  !$omp parallel default(private)88    !$omp task89      !DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct1/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)90      x = 091      !DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct1/z (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)92      z = 193    !$omp end task94 95    !$omp task96      !DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct2/x (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)97      x = 198      !DEF: /implicit_dsa_test4/OtherConstruct1/OtherConstruct2/y (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)99      y = 0100    !$omp end task101  !$omp end parallel102end subroutine103 104! Inner parallel using implicit firstprivate symbol.105!DEF: /implicit_dsa_test5 (Subroutine) Subprogram106subroutine implicit_dsa_test5107  !DEF: /implicit_dsa_test5/x ObjectEntity INTEGER(4)108  integer x109 110  !$omp parallel default(private)111    !$omp task112      !$omp parallel113        !DEF: /implicit_dsa_test5/OtherConstruct1/OtherConstruct1/OtherConstruct1/x (OmpShared) HostAssoc INTEGER(4)114        x = 1115      !$omp end parallel116    !$omp end task117  !$omp end parallel118end subroutine119 120! Constructs nested inside a task with implicit DSA variables.121!DEF: /implicit_dsa_test6 (Subroutine) Subprogram122subroutine implicit_dsa_test6123  !DEF: /implicit_dsa_test6/x ObjectEntity INTEGER(4)124  !DEF: /implicit_dsa_test6/y ObjectEntity INTEGER(4)125  !DEF: /implicit_dsa_test6/z ObjectEntity INTEGER(4)126  integer x, y, z127 128  !$omp task129    !$omp parallel default(private)130      !DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct1/x (OmpPrivate) HostAssoc INTEGER(4)131      !DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct1/y (OmpPrivate) HostAssoc INTEGER(4)132      x = y133    !$omp end parallel134 135    !$omp parallel default(firstprivate) shared(y)136      !DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct2/y (OmpShared, OmpExplicit) HostAssoc INTEGER(4)137      !DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct2/x (OmpFirstPrivate) HostAssocINTEGER(4)138      !DEF: /implicit_dsa_test6/OtherConstruct1/OtherConstruct2/z (OmpFirstPrivate) HostAssocINTEGER(4)139      y = x + z140    !$omp end parallel141  !$omp end task142end subroutine143 144! Test taskgroup.145!DEF: /implicit_dsa_test7 (Subroutine) Subprogram146subroutine implicit_dsa_test7147  !DEF: /implicit_dsa_test7/x ObjectEntity INTEGER(4)148  !DEF: /implicit_dsa_test7/y ObjectEntity INTEGER(4)149  integer x, y150 151  !$omp task152    !$omp taskgroup153      !DEF: /implicit_dsa_test7/OtherConstruct1/OtherConstruct1/x HostAssoc INTEGER(4)154      !DEF: /implicit_dsa_test7/OtherConstruct1/OtherConstruct1/y HostAssoc INTEGER(4)155      x = y156    !$omp end taskgroup157  !$omp end task158end subroutine159 160! Predetermined loop iteration variable.161!DEF: /implicit_dsa_test8 (Subroutine) Subprogram162subroutine implicit_dsa_test8163  !DEF: /implicit_dsa_test8/i ObjectEntity INTEGER(4)164  integer i165 166  !$omp task167    !DEF: /implicit_dsa_test8/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)168    do i = 1, 10169    end do170  !$omp end task171end subroutine172 173! Test variables defined in modules default to shared DSA174!DEF: /implicit_dsa_test9_mod Module175module implicit_dsa_test9_mod176 !DEF: /implicit_dsa_test9_mod/tm3a PUBLIC (InDataStmt) ObjectEntity COMPLEX(4)177  complex tm3a/(0,0)/178 !DEF: /implicit_dsa_test9_mod/tm4a PUBLIC ObjectEntity COMPLEX(4)179  complex tm4a180contains181 !DEF: /implicit_dsa_test9_mod/implict_dsa_test9 PUBLIC (Subroutine) Subprogram182  subroutine implict_dsa_test9183    !$omp task184      !$omp task185        !DEF: /implicit_dsa_test9_mod/implict_dsa_test9/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc COMPLEX(4)186        tm3a = (1, 2)187        !DEF: /implicit_dsa_test9_mod/implict_dsa_test9/OtherConstruct1/OtherConstruct1/tm4a (OmpShared) HostAssoc COMPLEX(4)188        tm4a = (3, 4)189      !$omp end task190    !$omp end task191  !$omp taskwait192  !REF: /implicit_dsa_test9_mod/tm3a193  print *,tm3a194  end subroutine195end module196 197! Test variables in data statement default to shared DSA198!DEF: /implicit_dsa_test10 (Subroutine) Subprogram199subroutine implicit_dsa_test10200 !DEF: /implicit_dsa_test10/tm3a (Implicit, InDataStmt) ObjectEntity REAL(4)201data tm3a /3/202!$omp task203  !$omp task204 !DEF: /implicit_dsa_test10/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc REAL(4)205    tm3a = 5206  !$omp end task207!$omp end task208!$omp taskwait209 !REF: /implicit_dsa_test10/tm3a210print *,tm3a211end subroutine212 213! Test variables with the SAVE attrtibute default to shared DSA214!DEF: /implicit_dsa_test_11 (Subroutine) Subprogram215subroutine implicit_dsa_test_11216 !DEF: /implicit_dsa_test_11/tm3a SAVE ObjectEntity COMPLEX(4)217complex, save :: tm3a218!$omp task219  !$omp task220    !DEF: /implicit_dsa_test_11/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc COMPLEX(4)221    tm3a = (1, 2)222  !$omp end task223!$omp end task224!$omp taskwait225!REF: /implicit_dsa_test_11/tm3a226print *,tm3a227end subroutine228 229! Test variables referenced in a common block default to shared DSA230!DEF: /implicit_dsa_test_12 (Subroutine) Subprogram231subroutine implicit_dsa_test_12232 !DEF: /implicit_dsa_test_12/tm3a (InCommonBlock) ObjectEntity COMPLEX(4)233complex tm3a234 !DEF: /implicit_dsa_test_12/tcom CommonBlockDetails235 !REF: /implicit_dsa_test_12/tm3a236common /tcom/ tm3a237!$omp task238  !$omp task239    !DEF: /implicit_dsa_test_12/OtherConstruct1/OtherConstruct1/tm3a (OmpShared) HostAssoc COMPLEX(4)240    tm3a = (1, 2)241  !$omp end task242!$omp end task243!$omp taskwait244!REF: /implicit_dsa_test_12/tm3a245print *,tm3a246end subroutine247 248! Test static duration variables with DSA set in the enclosing scope do not default to shared DSA249!DEF: /implicit_dsa_test_13_mod Module250module implicit_dsa_test_13_mod251  !DEF: /implicit_dsa_test_13_mod/a PUBLIC ObjectEntity INTEGER(4)252  integer::a=5253contains254  !DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13 PUBLIC (Subroutine) Subprogram255  subroutine implicit_dsa_test_13256    !DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/i ObjectEntity INTEGER(4)257    integer i258    !$omp do private(a)259      !DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/OtherConstruct1/i (OmpPrivate, OmpPreDetermined) HostAssoc INTEGER(4)260      do i=0,10261        !$omp task262        !DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/OtherConstruct1/OtherConstruct1/a (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)263        !DEF: /implicit_dsa_test_13_mod/implicit_dsa_test_13/OtherConstruct1/OtherConstruct1/i (OmpFirstPrivate, OmpImplicit) HostAssoc INTEGER(4)264        a=a+i265        !$omp end task266      end do267  end subroutine implicit_dsa_test_13268end module implicit_dsa_test_13_mod269