[flang-commits] [flang] 64b04e4 - Temporarily Revert "[flang][OpenMP] Enhance parser support for flush construct to OpenMP 5.0"
Eric Christopher via flang-commits
flang-commits at lists.llvm.org
Sat Jun 20 01:20:23 PDT 2020
Author: Eric Christopher
Date: 2020-06-20T01:18:53-07:00
New Revision: 64b04e4754bfe7bf718e5140fe1fd0ca50373c28
URL: https://github.com/llvm/llvm-project/commit/64b04e4754bfe7bf718e5140fe1fd0ca50373c28
DIFF: https://github.com/llvm/llvm-project/commit/64b04e4754bfe7bf718e5140fe1fd0ca50373c28.diff
LOG: Temporarily Revert "[flang][OpenMP] Enhance parser support for flush construct to OpenMP 5.0"
as it's failing Semantics/omp-clause-validity01.f90.
This reverts commit b32401464f4c9c9d43a3ddcb351cb6c7c713fdb4.
Added:
Modified:
flang/include/flang/Parser/dump-parse-tree.h
flang/include/flang/Parser/parse-tree.h
flang/lib/Parser/openmp-parsers.cpp
flang/lib/Parser/unparse.cpp
flang/test/Semantics/omp-clause-validity01.f90
Removed:
################################################################################
diff --git a/flang/include/flang/Parser/dump-parse-tree.h b/flang/include/flang/Parser/dump-parse-tree.h
index e5f25c276fe6..ad93fcd25795 100644
--- a/flang/include/flang/Parser/dump-parse-tree.h
+++ b/flang/include/flang/Parser/dump-parse-tree.h
@@ -520,8 +520,6 @@ class ParseTreeDumper {
NODE(parser, OpenMPDeclareReductionConstruct)
NODE(parser, OpenMPDeclareSimdConstruct)
NODE(parser, OpenMPDeclareTargetConstruct)
- NODE(parser, OmpFlushMemoryClause)
- NODE_ENUM(OmpFlushMemoryClause, FlushMemoryOrder)
NODE(parser, OpenMPFlushConstruct)
NODE(parser, OpenMPLoopConstruct)
NODE(parser, OpenMPSimpleStandaloneConstruct)
diff --git a/flang/include/flang/Parser/parse-tree.h b/flang/include/flang/Parser/parse-tree.h
index 8481a550eccf..933638d039d3 100644
--- a/flang/include/flang/Parser/parse-tree.h
+++ b/flang/include/flang/Parser/parse-tree.h
@@ -3718,23 +3718,11 @@ struct OpenMPCancelConstruct {
std::tuple<Verbatim, OmpCancelType, std::optional<If>> t;
};
-// 2.18.8 Flush Construct [OpenMP 5.0]
-// memory-order-clause -> acq_rel
-// release
-// acquire
-struct OmpFlushMemoryClause {
- ENUM_CLASS(FlushMemoryOrder, AcqRel, Release, Acquire)
- WRAPPER_CLASS_BOILERPLATE(OmpFlushMemoryClause, FlushMemoryOrder);
- CharBlock source;
-};
-
-// 2.18.8 flush -> FLUSH [memory-order-clause] [(variable-name-list)]
+// 2.13.7 flush -> FLUSH [(variable-name-list)]
struct OpenMPFlushConstruct {
TUPLE_CLASS_BOILERPLATE(OpenMPFlushConstruct);
CharBlock source;
- std::tuple<Verbatim, std::optional<OmpFlushMemoryClause>,
- std::optional<OmpObjectList>>
- t;
+ std::tuple<Verbatim, std::optional<OmpObjectList>> t;
};
struct OmpSimpleStandaloneDirective {
diff --git a/flang/lib/Parser/openmp-parsers.cpp b/flang/lib/Parser/openmp-parsers.cpp
index 9aa81a7fd9e1..2d81f5a8197b 100644
--- a/flang/lib/Parser/openmp-parsers.cpp
+++ b/flang/lib/Parser/openmp-parsers.cpp
@@ -298,19 +298,9 @@ TYPE_PARSER(sourced(construct<OpenMPCancellationPointConstruct>(
TYPE_PARSER(sourced(construct<OpenMPCancelConstruct>(verbatim("CANCEL"_tok),
Parser<OmpCancelType>{}, maybe("IF" >> parenthesized(scalarLogicalExpr)))))
-// 2.18.8 Flush construct
-// flush -> FLUSH [memory-order-clause] [(variable-name-list)]
-// memory-order-clause -> acq_rel
-// release
-// acquire
-TYPE_PARSER(sourced(construct<OmpFlushMemoryClause>(
- "ACQ_REL" >> pure(OmpFlushMemoryClause::FlushMemoryOrder::AcqRel) ||
- "RELEASE" >> pure(OmpFlushMemoryClause::FlushMemoryOrder::Release) ||
- "ACQUIRE" >> pure(OmpFlushMemoryClause::FlushMemoryOrder::Acquire))))
-
-TYPE_PARSER(sourced(construct<OpenMPFlushConstruct>(verbatim("FLUSH"_tok),
- maybe(Parser<OmpFlushMemoryClause>{}),
- maybe(parenthesized(Parser<OmpObjectList>{})))))
+// 2.13.7 Flush construct
+TYPE_PARSER(sourced(construct<OpenMPFlushConstruct>(
+ verbatim("FLUSH"_tok), maybe(parenthesized(Parser<OmpObjectList>{})))))
// Simple Standalone Directives
TYPE_PARSER(sourced(construct<OmpSimpleStandaloneDirective>(first(
diff --git a/flang/lib/Parser/unparse.cpp b/flang/lib/Parser/unparse.cpp
index 5acac386d16e..c2b5c28767da 100644
--- a/flang/lib/Parser/unparse.cpp
+++ b/flang/lib/Parser/unparse.cpp
@@ -2359,24 +2359,10 @@ class UnparseVisitor {
Put("\n");
EndOpenMP();
}
- void Unparse(const OmpFlushMemoryClause &x) {
- switch (x.v) {
- case OmpFlushMemoryClause::FlushMemoryOrder::AcqRel:
- Word("ACQ_REL ");
- break;
- case OmpFlushMemoryClause::FlushMemoryOrder::Release:
- Word("RELEASE ");
- break;
- case OmpFlushMemoryClause::FlushMemoryOrder::Acquire:
- Word("ACQUIRE ");
- break;
- }
- }
void Unparse(const OpenMPFlushConstruct &x) {
BeginOpenMP();
- Word("!$OMP FLUSH ");
- Walk(std::get<std::optional<OmpFlushMemoryClause>>(x.t));
- Walk(" (", std::get<std::optional<OmpObjectList>>(x.t), ")");
+ Word("!$OMP FLUSH");
+ Walk("(", std::get<std::optional<OmpObjectList>>(x.t), ")");
Put("\n");
EndOpenMP();
}
diff --git a/flang/test/Semantics/omp-clause-validity01.f90 b/flang/test/Semantics/omp-clause-validity01.f90
index e3f43dc5445e..06fd7203763d 100644
--- a/flang/test/Semantics/omp-clause-validity01.f90
+++ b/flang/test/Semantics/omp-clause-validity01.f90
@@ -403,10 +403,6 @@
!ERROR: Internal: no symbol found for 'i'
!$omp ordered depend(sink:i-1)
!$omp flush (c)
- !$omp flush acq_rel
- !$omp flush release
- !$omp flush acquire
- !$omp flush release (c)
!$omp cancel DO
!$omp cancellation point parallel
More information about the flang-commits
mailing list