[flang-commits] [flang] 2d90af5 - [flang][OpenMP] Add unparsing of BIND clause argument (#117776)

via flang-commits flang-commits at lists.llvm.org
Tue Nov 26 14:17:45 PST 2024


Author: Krzysztof Parzyszek
Date: 2024-11-26T16:17:41-06:00
New Revision: 2d90af59084d842a343f9acf6ae7c1e61991873c

URL: https://github.com/llvm/llvm-project/commit/2d90af59084d842a343f9acf6ae7c1e61991873c
DIFF: https://github.com/llvm/llvm-project/commit/2d90af59084d842a343f9acf6ae7c1e61991873c.diff

LOG: [flang][OpenMP] Add unparsing of BIND clause argument (#117776)

Currently the argument of the BIND clause is not printed. This is likely
an omission in the original implementation.

Added: 
    flang/test/Parser/OpenMP/bind-clause.f90

Modified: 
    flang/lib/Parser/unparse.cpp

Removed: 
    


################################################################################
diff  --git a/flang/lib/Parser/unparse.cpp b/flang/lib/Parser/unparse.cpp
index fe3f6ce7aa6291..e1708157b63dc2 100644
--- a/flang/lib/Parser/unparse.cpp
+++ b/flang/lib/Parser/unparse.cpp
@@ -2834,6 +2834,7 @@ class UnparseVisitor {
   WALK_NESTED_ENUM(InquireSpec::LogVar, Kind)
   WALK_NESTED_ENUM(ProcedureStmt, Kind) // R1506
   WALK_NESTED_ENUM(UseStmt, ModuleNature) // R1410
+  WALK_NESTED_ENUM(OmpBindClause, Type) // OMP bind
   WALK_NESTED_ENUM(OmpProcBindClause, Type) // OMP PROC_BIND
   WALK_NESTED_ENUM(OmpDefaultClause, Type) // OMP DEFAULT
   WALK_NESTED_ENUM(OmpDefaultmapClause, ImplicitBehavior) // OMP DEFAULTMAP

diff  --git a/flang/test/Parser/OpenMP/bind-clause.f90 b/flang/test/Parser/OpenMP/bind-clause.f90
new file mode 100644
index 00000000000000..332e5fe26ed8a8
--- /dev/null
+++ b/flang/test/Parser/OpenMP/bind-clause.f90
@@ -0,0 +1,25 @@
+!RUN: %flang_fc1 -fdebug-unparse -fopenmp -fopenmp-version=50 %s | FileCheck --ignore-case --check-prefix="UNPARSE" %s
+!RUN: %flang_fc1 -fdebug-dump-parse-tree -fopenmp -fopenmp-version=50 %s | FileCheck --check-prefix="PARSE-TREE" %s
+
+subroutine f00
+  !$omp loop bind(parallel)
+  do i = 1, 10
+    continue
+  enddo
+  !$omp end loop
+end
+
+!UNPARSE: SUBROUTINE f00
+!UNPARSE: !$OMP LOOP  BIND(PARALLEL)
+!UNPARSE:  DO i=1_4,10_4
+!UNPARSE:   CONTINUE
+!UNPARSE:  END DO
+!UNPARSE: !$OMP END LOOP
+!UNPARSE: END SUBROUTINE
+
+!PARSE-TREE: ExecutionPartConstruct -> ExecutableConstruct -> OpenMPConstruct -> OpenMPLoopConstruct
+!PARSE-TREE: | OmpBeginLoopDirective
+!PARSE-TREE: | | OmpLoopDirective -> llvm::omp::Directive = loop
+!PARSE-TREE: | | OmpClauseList -> OmpClause -> Bind -> OmpBindClause -> Type = Parallel
+!PARSE-TREE: | DoConstruct
+


        


More information about the flang-commits mailing list