Add parsing and semantic checks for DIMS modifier on NUM_TEAMS, NUM_THREADS, and THREAD_LIMIT.
94 lines
3.6 KiB
Fortran
94 lines
3.6 KiB
Fortran
!RUN: %flang_fc1 -fdebug-unparse -fopenmp -fopenmp-version=61 %s | FileCheck --ignore-case --check-prefix="UNPARSE" %s
|
|
!RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp -fopenmp-version=61 %s | FileCheck --check-prefix="PARSE-TREE" %s
|
|
|
|
subroutine f00
|
|
!$omp teams num_teams(dims(2): 10, 4)
|
|
!$omp end teams
|
|
end
|
|
|
|
!UNPARSE: SUBROUTINE f00
|
|
!UNPARSE: !$OMP TEAMS NUM_TEAMS(DIMS(2_4):10_4, 4_4)
|
|
!UNPARSE: !$OMP END TEAMS
|
|
!UNPARSE: END SUBROUTINE
|
|
|
|
!PARSE-TREE: OmpBeginDirective
|
|
!PARSE-TREE: | OmpDirectiveName -> llvm::omp::Directive = teams
|
|
!PARSE-TREE: | OmpClauseList -> OmpClause -> NumTeams -> OmpNumTeamsClause
|
|
!PARSE-TREE: | | Modifier -> OmpDimsModifier -> Scalar -> Integer -> Constant -> Expr = '2_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '2'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '10_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '10'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '4_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '4'
|
|
!PARSE-TREE: | Flags = {}
|
|
|
|
|
|
subroutine f01
|
|
!$omp teams num_teams(dims(2), 3: 10, 4)
|
|
!$omp end teams
|
|
end
|
|
|
|
!UNPARSE: SUBROUTINE f01
|
|
!UNPARSE: !$OMP TEAMS NUM_TEAMS(DIMS(2_4), 3_4:10_4, 4_4)
|
|
!UNPARSE: !$OMP END TEAMS
|
|
!UNPARSE: END SUBROUTINE
|
|
|
|
!PARSE-TREE: OmpBeginDirective
|
|
!PARSE-TREE: | OmpDirectiveName -> llvm::omp::Directive = teams
|
|
!PARSE-TREE: | OmpClauseList -> OmpClause -> NumTeams -> OmpNumTeamsClause
|
|
!PARSE-TREE: | | Modifier -> OmpDimsModifier -> Scalar -> Integer -> Constant -> Expr = '2_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '2'
|
|
!PARSE-TREE: | | Modifier -> OmpLowerBound -> Scalar -> Integer -> Expr = '3_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '3'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '10_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '10'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '4_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '4'
|
|
!PARSE-TREE: | Flags = {}
|
|
|
|
|
|
subroutine f02
|
|
!$omp teams thread_limit(dims(3): 16)
|
|
!$omp end teams
|
|
end
|
|
|
|
!UNPARSE: SUBROUTINE f02
|
|
!UNPARSE: !$OMP TEAMS THREAD_LIMIT(DIMS(3_4):16_4)
|
|
!UNPARSE: !$OMP END TEAMS
|
|
!UNPARSE: END SUBROUTINE
|
|
|
|
!PARSE-TREE: OmpBeginDirective
|
|
!PARSE-TREE: | OmpDirectiveName -> llvm::omp::Directive = teams
|
|
!PARSE-TREE: | OmpClauseList -> OmpClause -> ThreadLimit -> OmpThreadLimitClause
|
|
!PARSE-TREE: | | Modifier -> OmpDimsModifier -> Scalar -> Integer -> Constant -> Expr = '3_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '3'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '16_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '16'
|
|
!PARSE-TREE: | Flags = {}
|
|
|
|
|
|
subroutine f03
|
|
!$omp parallel num_threads(dims(4): 4, 5, 6, 7)
|
|
!$omp end parallel
|
|
end
|
|
|
|
!UNPARSE: SUBROUTINE f03
|
|
!UNPARSE: !$OMP PARALLEL NUM_THREADS(DIMS(4_4):4_4, 5_4, 6_4, 7_4)
|
|
!UNPARSE: !$OMP END PARALLEL
|
|
!UNPARSE: END SUBROUTINE
|
|
|
|
!PARSE-TREE: OmpBeginDirective
|
|
!PARSE-TREE: | OmpDirectiveName -> llvm::omp::Directive = parallel
|
|
!PARSE-TREE: | OmpClauseList -> OmpClause -> NumThreads -> OmpNumThreadsClause
|
|
!PARSE-TREE: | | Modifier -> OmpDimsModifier -> Scalar -> Integer -> Constant -> Expr = '4_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '4'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '4_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '4'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '5_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '5'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '6_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '6'
|
|
!PARSE-TREE: | | Scalar -> Integer -> Expr = '7_4'
|
|
!PARSE-TREE: | | | LiteralConstant -> IntLiteralConstant = '7'
|
|
!PARSE-TREE: | Flags = {}
|