[PATCH] D108530: [flang][OpenMP] Fix one bug in parsing depend(sink: vec)
Peixin Qiao via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 22 19:16:06 PDT 2021
peixin created this revision.
peixin added reviewers: kiranchandramohan, clementval, richard.barton.arm, jdoerfert, sameeranjoshi, praveen, SouraVX, sscalpone, arnamoy10, bryanpkc, Chuanfeng.
peixin added a project: LLVM.
Herald added subscribers: guansong, yaxunl.
peixin requested review of this revision.
Herald added subscribers: llvm-commits, sstefan1.
This patch fixes one bug of no symbol found in parsing depend(sink: vec)
by replacing "Name" with "OmpObject". The "vec" in "depend(sink: vec)"
is one list of experssion of "OmpObject [Operator ScalarIntConstant]"
such as "i, j - 1".
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D108530
Files:
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
Index: flang/test/Semantics/omp-clause-validity01.f90
===================================================================
--- flang/test/Semantics/omp-clause-validity01.f90
+++ flang/test/Semantics/omp-clause-validity01.f90
@@ -482,7 +482,7 @@
! !$omp target update from(arrayA) to(arrayB)
! !$omp target exit data map(from:arrayA) map(delete:arrayB)
!$omp ordered depend(source)
- ! !$omp ordered depend(sink:i-1)
+ !$omp ordered depend(sink:i-1)
!$omp flush (c)
!$omp flush acq_rel
!$omp flush release
Index: flang/lib/Parser/unparse.cpp
===================================================================
--- flang/lib/Parser/unparse.cpp
+++ flang/lib/Parser/unparse.cpp
@@ -2017,7 +2017,7 @@
Walk(std::get<ScalarIntConstantExpr>(x.t));
}
void Unparse(const OmpDependSinkVec &x) {
- Walk(std::get<Name>(x.t));
+ Walk(std::get<OmpObject>(x.t));
Walk(std::get<std::optional<OmpDependSinkVecLength>>(x.t));
}
void Unparse(const OmpDependClause::InOut &x) {
Index: flang/lib/Parser/openmp-parsers.cpp
===================================================================
--- flang/lib/Parser/openmp-parsers.cpp
+++ flang/lib/Parser/openmp-parsers.cpp
@@ -113,8 +113,8 @@
TYPE_PARSER(construct<OmpDependSinkVecLength>(
Parser<DefinedOperator>{}, scalarIntConstantExpr))
-TYPE_PARSER(
- construct<OmpDependSinkVec>(name, maybe(Parser<OmpDependSinkVecLength>{})))
+TYPE_PARSER(construct<OmpDependSinkVec>(
+ Parser<OmpObject>{}, maybe(Parser<OmpDependSinkVecLength>{})))
TYPE_PARSER(
construct<OmpDependenceType>("IN"_id >> pure(OmpDependenceType::Type::In) ||
Index: flang/include/flang/Parser/parse-tree.h
===================================================================
--- flang/include/flang/Parser/parse-tree.h
+++ flang/include/flang/Parser/parse-tree.h
@@ -3436,7 +3436,7 @@
// 2.13.9 depend-vec -> iterator [+/- depend-vec-length],...,iterator[...]
struct OmpDependSinkVec {
TUPLE_CLASS_BOILERPLATE(OmpDependSinkVec);
- std::tuple<Name, std::optional<OmpDependSinkVecLength>> t;
+ std::tuple<OmpObject, std::optional<OmpDependSinkVecLength>> t;
};
// 2.13.9 depend-type -> IN | OUT | INOUT | SOURCE | SINK
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D108530.368019.patch
Type: text/x-patch
Size: 2193 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210823/53a26ee5/attachment.bin>
More information about the llvm-commits
mailing list