[flang] improvement for 'Re-write OpenMP 4.5 grammar doc with BNF'
Original-commit: flang-compiler/f18@e17e74104bf23bad2dbade8e04a2eb58902a9f34
Reviewed-on: https://github.com/flang-compiler/f18/pull/470
Tree-same-pre-rewrite: false
diff --git a/flang/documentation/OpenMP-4.5-grammar.txt b/flang/documentation/OpenMP-4.5-grammar.txt
index 0af5182..bb5ff0f 100644
--- a/flang/documentation/OpenMP-4.5-grammar.txt
+++ b/flang/documentation/OpenMP-4.5-grammar.txt
@@ -17,6 +17,8 @@
reduction-clause |
proc-bind-clause
+2.5 end-parallel -> END PARALLEL
+
2.7.1 do -> DO [do-clause[ [,] do-clause]...]
do-clause -> private-clause |
firstprivate-clause |
@@ -35,6 +37,8 @@
lastprivate-clause |
reduction-clause
+2.7.2 section -> SECTION
+
2.7.2 end-sections -> END SECTIONS [nowait-clause]
2.7.3 single -> SINGLE [single-clause[ [,] single-clause]...]
@@ -59,6 +63,8 @@
reduction-clause |
collapse-clause
+2.8.1 end-simd -> END SIMD
+
2.8.2 declare-simd -> DECLARE SIMD [(proc-name)] [declare-simd-clause[ [,] declare-simd-clause]...]
declare-simd-clause -> simdlen-clause |
linear-clause |
@@ -71,7 +77,7 @@
do-simd-clause -> do-clause |
simd-clause
-2.8.4 end-do-simd -> END DO SIMD [nowait-clause]
+2.8.3 end-do-simd -> END DO SIMD [nowait-clause]
2.9.1 task -> TASK [task-clause[ [,] task-clause]...]
task-clause -> if-clause |
@@ -85,6 +91,8 @@
depend-clause |
priority-clause
+2.9.1 end-task -> END TASK
+
2.9.2 taskloop -> TASKLOOP [taskloop-clause[ [,] taskloop-clause]...]
taskloop-clause -> if-clause |
shared-clause |
@@ -101,10 +109,14 @@
mergeable-clause |
nogroup-clause
+2.9.2 end-taskloop -> END TASKLOOP
+
2.9.3 taskloop-simd -> TASKLOOP SIMD [taskloop-simd-clause[ [,] taskloop-simd-clause]...]
taskloop-simd-clause -> taskloop-clause |
simd-clause
+2.9.3 end-taskloop-simd -> END TASKLOOP SIMD
+
2.9.4 taskyield -> TASKYIELD
2.10.1 target-data -> TARGET DATA target-data-clause[ [ [,] target-data-clause]...]
@@ -113,6 +125,8 @@
map-clause |
use-device-ptr-clause
+2.10.1 end-target-data -> END TARGET DATA
+
2.10.2 target-enter-data -> TARGET ENTER DATA [ target-enter-data-clause[ [,] target-enter-data-clause]...]
target-enter-data-clause -> if-clause |
device-clause |
@@ -138,6 +152,8 @@
nowait-clause |
depend-clause
+2.10.4 end-target -> END TARGET
+
2.10.5 target-update -> TARGET UPDATE target-update-clause[ [ [,] target-update-clause]...]
target-update-clause -> motion-clause |
if-clause |
@@ -147,8 +163,8 @@
motion-clause -> to-clause |
from-clause
-2.10.6 declare-target -> DECLARE TARGET (extended-list)
-2.10.6 declare-target -> DECLARE TARGET [declare-target-clause[ [,] declare-target-clause]...]
+2.10.6 declare-target -> DECLARE TARGET (extended-list) |
+ DECLARE TARGET [declare-target-clause[ [,] declare-target-clause]...]
declare-target-clause -> to-clause |
link-clause
@@ -161,6 +177,8 @@
shared-clause |
reduction-clause
+2.10.7 end-teams -> END TEAMS
+
2.10.8 distribute -> DISTRIBUTE [distribute-clause[ [,] distribute-clause]...]
distribute-clause -> private-clause |
firstprivate-clause |
@@ -168,20 +186,28 @@
collapse-clause |
dist-schedule-clause
+2.10.8 end-distribute -> END DISTRIBUTE
+
2.10.9 distribute-simd -> DISTRIBUTE SIMD [distribute-simd-clause[ [,] distribute-simd-clause]...]
distribute-simd-clause -> distribute-clause |
simd-clause
+2.10.9 end-distribute-simd -> END DISTRIBUTE SIMD
+
2.10.10 distribute-parellel-do ->
DISTRIBUTE PARALLEL DO [distribute-parallel-do-clause[ [,] distribute-parallel-do-clause]...]
distribute-parallel-do-clause -> distribute-clause |
parallel-do-clause
+2.10.10 end-distribute-parellel-do -> END DISTRIBUTE PARALLEL DO
+
2.10.11 distribute-parallel-do-simd ->
DISTRIBUTE PARALLEL DO SIMD [distribute-parallel-do-simd-clause[ [,] distribute-parallel-do-simd-clause]...]
distribute-parallel-do-simd-clause -> distribute-clause |
parallel-do-simd-clause
+2.10.11 end-distribute-parallel-do-simd -> END DISTRIBUTE PARALLEL DO SIMD
+
2.11.1 parallel-do -> PARALLEL DO [parallel-do-clause[ [,] parallel-do-clause]...]
parallel-do-clause -> parallel-clause |
do-clause
@@ -209,64 +235,92 @@
target-parallel-clause -> target-clause |
parallel-clause
+2.11.5 end-target-parallel -> END TARGET PARALLEL
+
2.11.6 target-parallel-do -> TARGET PARALLEL DO [target-parallel-do-clause[ [,] target-parallel-do-clause]...]
target-parallel-do-clause -> target-clause |
parallel-do-clause
+2.11.6 end-target-parallel-do -> END TARGET PARALLEL DO
+
2.11.7 target-parallel-do-simd ->
TARGET PARALLEL DO SIMD [target-parallel-do-simd-clause[ [,] target-parallel-do-simd-clause]...]
target-parallel-do-simd-clause -> target-clause |
parallel-do-simd-clause
+2.11.7 end-target-parallel-do-simd -> END TARGET PARALLEL DO SIMD
+
2.11.8 target-simd -> TARGET SIMD [target-simd-clause[ [,] target-simd-clause]...]
target-simd-clause -> target-clause |
simd-clause
+2.11.8 end-target-simd -> END TARGET SIMD
+
2.11.9 target-teams -> TARGET TEAMS [target-teams-clause[ [,] target-teams-clause]...]
target-teams-clause -> target-clause |
teams-clause
+2.11.9 end-target-teams -> END TARGET TEAMS
+
2.11.10 teams-distribute -> TEAMS DISTRIBUTE [teams-distribute-clause[ [,] teams-distribute-clause]...]
teams-distribute-clause -> teams-clause |
distribute-clause
+2.11.10 end-teams-distribute -> END TEAMS DISTRIBUTE
+
2.11.11 teams-distribute-simd ->
TEAMS DISTRIBUTE SIMD [teams-distribute-simd-clause[ [,] teams-distribute-simd-clause]...]
teams-distribute-simd-clause -> teams-clause |
distribute-simd-clause
+2.11.11 end-teams-distribute-simd -> END TEAMS DISTRIBUTE SIMD
+
2.11.12 target-teams-distribute ->
TARGET TEAMS DISTRIBUTE [target-teams-distribute-clause[ [,] target-teams-distribute-clause]...]
target-teams-distribute-clause -> target-clause |
teams-distribute-clause
+2.11.12 end-target-teams-distribute -> END TARGET TEAMS DISTRIBUTE
+
2.11.13 target-teams-distribute-simd ->
TARGET TEAMS DISTRIBUTE SIMD [target-teams-distribute-simd-clause[ [,] target-teams-distribute-simd-clause]...]
target-teams-distribute-simd-clause -> target-clause |
teams-distribute-simd-clause
+2.11.13 end-target-teams-distribute-simd -> END TARGET TEAMS DISTRIBUTE SIMD
+
2.11.14 teams-distribute-parallel-do ->
TEAMS DISTRIBUTE PARALLEL DO [teams-distribute-parallel-do-clause[ [,] teams-distribute-parallel-do-clause]...]
teams-distribute-parallel-do-clause -> teams-clause |
distribute-parallel-do-clause
+2.11.14 end-teams-distribute-parallel-do -> END TEAMS DISTRIBUTE PARALLEL DO
+
2.11.15 target-teams-distribute-parallel-do ->
TARGET TEAMS DISTRIBUTE PARALLEL DO [target-teams-distribute-parallel-do-clause[ [,] target-teams-distribute-parallel-do-clause]...]
target-teams-distribute-parallel-do-clause -> target-clause |
teams-distribute-parallel-do-clause
+2.11.15 end-target-teams-distribute-parallel-do -> END TARGET TEAMS DISTRIBUTE PARALLEL DO
+
2.11.16 teams-distribute-parallel-do-simd ->
TEAMS DISTRIBUTE PARALLEL DO SIMD [teams-distribute-parallel-do-simd-clause[ [,] teams-distribute-parallel-do-simd-clause]...]
teams-distribute-parallel-do-simd-clause -> teams-clause |
distribute-parallel-do-simd-clause
+2.11.16 end-teams-distribute-parallel-do-simd -> END TEAMS DISTRIBUTE PARALLEL DO SIMD
+
2.11.17 target-teams-distribute-parallel-do-simd ->
TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD [target-teams-distribute-parallel-do-simd-clause[ [,] target-teams-distribute-parallel-do-simd-clause]...]
target-teams-distribute-parallel-do-simd-clause -> target-clause |
teams-distribute-parallel-do-simd-clause
+2.11.17 end-target-teams-distribute-parallel-do-simd -> END TARGET TEAMS DISTRIBUTE PARALLEL DO SIMD
+
2.13.1 master -> MASTER
+2.13.1 end-master -> END MASTER
+
2.13.2 critical -> CRITICAL [(name) [HINT(hint-expr)]]
2.13.2 end-critical -> END CRITICAL [(name)]
@@ -277,6 +331,8 @@
2.13.5 taskgroup -> TASKGROUP
+2.13.5 end-taskgroup -> END TASKGROUP
+
2.13.6 atomic -> ATOMIC [seq_cst[,]] READ | WRITE | UPDATE | CAPTURE [[,]seq_cst]
2.13.6 atomic -> ATOMIC [seq_cst]
@@ -285,6 +341,8 @@
2.13.8 ordered -> ORDERED ordered-construct-clause [[[,] ordered-construct-clause]...]
ordered-construct-clause -> depend-clause
+2.13.8 end-ordered -> END ORDERED
+
2.14.1 cancel -> CANCEL construct-type-clause [ [,] if-clause]
construct-type-clause -> PARALLEL |
SECTIONS |
@@ -295,7 +353,7 @@
2.15.2 threadprivate -> THREADPRIVATE (variable-name-list)
-2.16 declare-reduction -> DECLARE REDUCTION (reduction-identifier : type-list : combiner)
+2.16 declare-reduction -> DECLARE REDUCTION (reduction-identifier : type-list : combiner) [initializer-clause]
# Clauses
2.5 proc-bind-clause -> PROC_BIND (MASTER | CLOSE | SPREAD)
@@ -379,7 +437,8 @@
2.15.3.5 lastprivate-clause -> LASTPRIVATE (variable-name-list)
2.15.3.6 reduction-clause -> REDUCTION (reduction-identifier: variable-name-list)
- reduction-identifier -> + | - | * | .AND. | .OR. | .EQV. | .NEQV. |
+ reduction-identifier -> + | - | * |
+ .AND. | .OR. | .EQV. | .NEQV. |
MAX | MIN | IAND | IOR | IEOR
2.15.3.7 linear-clause -> LINEAR (linear-list[ : linear-step])
@@ -390,7 +449,8 @@
2.15.4.2 copyprivate-clause -> COPYPRIVATE (variable-name-list)
-2.15.5.1 map -> MAP ([ [ALWAYS[,]] (TO | FROM | TOFROM | ALLOC | RELEASE |
- DELETE) : ] variable-name-list)
+2.15.5.1 map -> MAP ([ [ALWAYS[,]] map-type : ] variable-name-list)
+ map-type -> TO | FROM | TOFROM |
+ ALLOC | RELEASE | DELETE
2.15.5.2 defaultmap -> DEFAULTMAP (TOFROM:SCALAR)