llvm/flang/documentation/OpenMP-4.5-grammar.txt

115 lines
4.8 KiB
Plaintext

# Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved.
# OpenMP 4.5 Specifications
2 omp-directive -> sentinel directive-name [clause [,] clause...]
2.1.1 sentinel -> !$omp | c$omp | *$omp
2.1.2 sentinel -> !$omp
# directive-name(constructs)
2.5 parallel -> PARALLEL
2.7.1 do -> DO
2.7.2 sections -> SECTIONS
2.7.3 workshare -> WORKSHARE
2.7.4 single-construct -> SINGLE
2.8.1 simd-construct -> SIMD
2.8.2 declare-simd -> DECLARE SIMD
2.8.3 do-simd-construct -> DO SIMD
2.9.1 task-construct -> TASK
2.9.2 taskloop -> TASKLOOP
2.9.3 taskloop-simd -> TASKLOOP SIMD
2.9.4 taskyield -> TASKYIELD
2.10.1 target-data -> TARGET DATA
2.10.2 target-enter-data -> TARGET ENTER DATA
2.10.3 target-exit-data -> TARGET EXIT DATA
2.10.4 target -> TARGET
2.10.5 target-update -> TARGET UPDATE
2.10.6 declare-target -> DECLARE TARGET
2.10.7 teams -> TEAMS
2.10.8 distribute -> DISTRIBUTE
2.10.9 distribute-simd -> DISTRIBUTE SIMD
2.10.10 distribute-parellel-do -> DISTRIBUTE PARALLEL DO
2.10.11 distribute-parallel-do-simd ->DISTRIBUTE PARALLEL DO SIMD
2.11.1 parallel-do -> PARALLEL DO
2.11.2 parallel-sections -> PARALLEL SECTIONS
2.11.3 parallel-workshare -> PARALLEL WORKSHARE
2.11.4 parallel-do-simd -> PARALLEL DO SIMD
2.11.5 target-parallel -> TARGET PARALLEL
2.11.6 target-parallel-do -> TARGET PARALLEL DO
2.11.7 target-parallel-do-simd -> TARGET PARALLEL DO SIMD
2.11.8 target-simd -> TARGET SIMD
2.11.9 target-teams -> TARGET TEAMS
2.11.10 teams-distribute -> TEAMS DISTRIBUTE
2.11.11 teams distribute-simd -> TEAMS DISTRIBUTE SIME
2.11.12 target-teams-distribute -> TARGET TEAMS DISTRIBUTE
2.11.13 target-teams-distribute-simd -> TARGET TEAMS DISTRIBUTE SIMD
2.11.14 teams-distribute-parallel-do -> TEAMS DISTRIBUTE PARALLEL DO
2.11.15 target-teams-distribute-parallel-do ->
TARGET TEAMS DISTRIBUTE PARALLEL DO
2.11.16 teams-distribute-parallel-do-simd ->
TEAMS DISTRIBUTE PARALLEL DO
2.11.17 target-teams-distribute-parallel-do-simd ->
TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD
2.13.1 master -> MASTER
2.13.2 critical -> CRITICAL
2.13.3 barrier -> BARRIER
2.13.4 taskwait -> TASKWAIT
2.13.5 taskgroup -> TASKGROUP
2.13.6 atomic -> ATOMIC
2.13.7 flush -> FLUSH
2.13.8 ordered -> ORDERED
2.14.1 cancel -> CANCEL
2.14.2 cancellation-point -> CANCELLATION POINT
2.15.2 threadprivate -> THREADPRIVATE
2.16 declare-reduction -> DECLARE REDUCTION
# Clauses
2.5 proc_bind -> PROC_BIND ( MASTER | CLOSE | SPREAD )
2.5 num_threads -> NUM_THREADS(scalar-int-expr)
2.7.1 schedule -> SCHEDULE ([sched-modifier] [, sched-modifier]:]
kind[, chunk_size])
2.7.1 kind -> STATIC | DYNAMIC | GUIDED | AUTO | RUNTIME
2.7.1 sched-modifier -> MONOTONIC | NONMONOTONIC | SIMD
2.7.1 chunk_size -> scalar-int-expr
2.7.1 collapse -> COLLAPSE(scalar-constant)
2.7.1 ordered -> ORDERED [ (scalar-constant) ]
2.7.1 nowait -> NOWAIT
2.8.1 aligned -> ALIGNED ( variable-name-list [ : scalar-constant])
2.8.1 safelen -> SAFELEN ( scalar-constant )
2.8.1 simdlen -> SIMDLEN ( scalar-contant )
2.8.2 uniform -> UNIFORM (dummy-arg-name-list)
2.8.2 inbranch -> INBRANCH
2.8.2 notinbranch -> NOTINBRANCH
2.13.9 depend -> DEPEND (((IN | OUT | INOUT) : variable-name-list) |
SOURCE |
SINK : vec)
vec -> iterator [ +/- scalar-int-expr:scalar-int-expr],..., iterator[...]
2.9.2 num_tasks -> NUM_TASKS (scalar-int-expr)
2.9.2 grainsize -> GRAINSIZE (scalar-int-expr)
2.9.2 nogroup -> NOGROUP
2.9.2 untied -> UNTIED
2.9.2 priority -> PRIORITY (scalar-int-expr)
2.9.2 mergeable -> MERGEABLE
2.9.2 final -> FINAL (scalar-int-expr)
2.10.1 use_deice_ptr -> USE_DEVICE_PTR (variable-name-list)
2.10.1 device -> DEVICE (scalar-integer-expr)
2.10.5 to -> TO (variable-name-list)
2.10.5 from -> FROM (variable-name-list)
2.10.6 link -> LINK (variable-name-list)
2.10.7 num_teams -> NUM_TEAMS (scalar-integer-expr)
2.10.7 thread_limit -> THREAD_LIMIT (scalar-integer-expr)
2.10.8 dist_schedule -> DIST_SCHEDULE (STATIC [ , chunk_size])
2.12 if -> IF ([ directive-name-modifier ':' ] scalar-logical-expr)
2.15.3.1 default -> DEFAULT (PRIVATE | FIRSTPRIVATE | SHARED | NONE)
2.15.3.2 shared -> SHARED (variable-name-list)
2.15.3.3 private -> PRIVATE (variable-name-list)
2.15.3.4 firstprivate -> FIRSTPRIVATE (variable-name-list)
2.15.3.5 lastprivate -> LASTPRIVATE (variable-name-list)
2.15.3.6 reduction -> REDUCTION(reduction-identifier: variable-name-list)
2.15.3.7 linear -> LINEAR(linear-list [:linear-step])
linear-list -> list | modifier(list)
modifier -> REF | VAL | UVAL
2.15.4.1 copyin -> COPYIN (variable-name-list)
2.15.4.2 copyprivate -> COPYPRIVATE (variable-name-list)
2.15.5.1 map -> MAP ([[ALWAYS[,]] (TO | FROM | TOFROM | ALLOC | RELEASE |
DELETE) : ] variable-name-list)
2.15.5.2 defaultmap -> DEFAULTMAP(TOFROM:SCALAR)