[flang-commits] [flang] a25edba - [flang][NFC] Remove duplicate of getDesignatorNameIfDataRef function
Valentin Clement via flang-commits
flang-commits at lists.llvm.org
Thu Jul 13 08:53:25 PDT 2023
Author: Valentin Clement
Date: 2023-07-13T08:53:19-07:00
New Revision: a25edba7b512b082a8fdc68a37f694cfdf7791bb
URL: https://github.com/llvm/llvm-project/commit/a25edba7b512b082a8fdc68a37f694cfdf7791bb
DIFF: https://github.com/llvm/llvm-project/commit/a25edba7b512b082a8fdc68a37f694cfdf7791bb.diff
LOG: [flang][NFC] Remove duplicate of getDesignatorNameIfDataRef function
Remove duplicate of the getDesignatorNameIfDataRef() function.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D155105
Added:
Modified:
flang/include/flang/Semantics/tools.h
flang/lib/Lower/OpenACC.cpp
flang/lib/Lower/OpenMP.cpp
flang/lib/Semantics/resolve-directives.cpp
Removed:
################################################################################
diff --git a/flang/include/flang/Semantics/tools.h b/flang/include/flang/Semantics/tools.h
index c8550ab1464689..8ce797041dcdc7 100644
--- a/flang/include/flang/Semantics/tools.h
+++ b/flang/include/flang/Semantics/tools.h
@@ -656,5 +656,11 @@ const DerivedTypeSpec *GetDtvArgDerivedType(const Symbol &);
void WarnOnDeferredLengthCharacterScalar(SemanticsContext &, const SomeExpr *,
parser::CharBlock at, const char *what);
+inline const parser::Name *getDesignatorNameIfDataRef(
+ const parser::Designator &designator) {
+ const auto *dataRef{std::get_if<parser::DataRef>(&designator.u)};
+ return dataRef ? std::get_if<parser::Name>(&dataRef->u) : nullptr;
+}
+
} // namespace Fortran::semantics
#endif // FORTRAN_SEMANTICS_TOOLS_H_
diff --git a/flang/lib/Lower/OpenACC.cpp b/flang/lib/Lower/OpenACC.cpp
index 802bbb8c284e50..f3195249f6bb57 100644
--- a/flang/lib/Lower/OpenACC.cpp
+++ b/flang/lib/Lower/OpenACC.cpp
@@ -30,12 +30,6 @@
// Special value for * passed in device_type or gang clauses.
static constexpr std::int64_t starCst = -1;
-static const Fortran::parser::Name *
-getDesignatorNameIfDataRef(const Fortran::parser::Designator &designator) {
- const auto *dataRef = std::get_if<Fortran::parser::DataRef>(&designator.u);
- return dataRef ? std::get_if<Fortran::parser::Name>(&dataRef->u) : nullptr;
-}
-
/// Generate the acc.bounds operation from the descriptor information.
static llvm::SmallVector<mlir::Value>
genBoundsOpsFromBox(fir::FirOpBuilder &builder, mlir::Location loc,
@@ -1354,7 +1348,9 @@ createComputeOp(Fortran::lower::AbstractConverter &converter,
const auto &accObject = accClauseList->v.front();
if (const auto *designator =
std::get_if<Fortran::parser::Designator>(&accObject.u)) {
- if (const auto *name = getDesignatorNameIfDataRef(*designator)) {
+ if (const auto *name =
+ Fortran::semantics::getDesignatorNameIfDataRef(
+ *designator)) {
auto cond = converter.getSymbolAddress(*name->symbol);
selfCond = builder.createConvert(clauseLocation,
builder.getI1Type(), cond);
diff --git a/flang/lib/Lower/OpenMP.cpp b/flang/lib/Lower/OpenMP.cpp
index fd59cc3bbd6541..baa303717a485d 100644
--- a/flang/lib/Lower/OpenMP.cpp
+++ b/flang/lib/Lower/OpenMP.cpp
@@ -48,19 +48,14 @@ int64_t Fortran::lower::getCollapseValue(
return 1;
}
-static const Fortran::parser::Name *
-getDesignatorNameIfDataRef(const Fortran::parser::Designator &designator) {
- const auto *dataRef = std::get_if<Fortran::parser::DataRef>(&designator.u);
- return dataRef ? std::get_if<Fortran::parser::Name>(&dataRef->u) : nullptr;
-}
-
static Fortran::semantics::Symbol *
getOmpObjectSymbol(const Fortran::parser::OmpObject &ompObject) {
Fortran::semantics::Symbol *sym = nullptr;
std::visit(Fortran::common::visitors{
[&](const Fortran::parser::Designator &designator) {
if (const Fortran::parser::Name *name =
- getDesignatorNameIfDataRef(designator)) {
+ Fortran::semantics::getDesignatorNameIfDataRef(
+ designator)) {
sym = name->symbol;
}
},
@@ -2181,7 +2176,9 @@ static bool checkForSingleVariableOnRHS(
std::get_if<Fortran::common::Indirection<Fortran::parser::Designator>>(
&expr.u);
const Fortran::parser::Name *name =
- designator ? getDesignatorNameIfDataRef(designator->value()) : nullptr;
+ designator
+ ? Fortran::semantics::getDesignatorNameIfDataRef(designator->value())
+ : nullptr;
return name != nullptr;
}
@@ -2328,7 +2325,8 @@ static void genOmpAtomicUpdateStatement(
&assignmentStmtVariable.u);
assert(varDesignator && "Variable designator for atomic update assignment "
"statement does not exist");
- const auto *name = getDesignatorNameIfDataRef(varDesignator->value());
+ const auto *name =
+ Fortran::semantics::getDesignatorNameIfDataRef(varDesignator->value());
if (!name)
TODO(converter.getCurrentLocation(),
"Array references as atomic update variable");
@@ -2735,7 +2733,8 @@ void handleDeclareTarget(Fortran::lower::AbstractConverter &converter,
Fortran::common::visitors{
[&](const Fortran::parser::Designator &designator) {
if (const Fortran::parser::Name *name =
- getDesignatorNameIfDataRef(designator)) {
+ Fortran::semantics::getDesignatorNameIfDataRef(
+ designator)) {
symbolAndClause.push_back(
std::make_pair(clause, *name->symbol));
}
diff --git a/flang/lib/Semantics/resolve-directives.cpp b/flang/lib/Semantics/resolve-directives.cpp
index d96871b2965c11..52e055fe3cfd7a 100644
--- a/flang/lib/Semantics/resolve-directives.cpp
+++ b/flang/lib/Semantics/resolve-directives.cpp
@@ -85,11 +85,6 @@ template <typename T> class DirectiveAttributeVisitor {
Symbol &MakeAssocSymbol(const SourceName &name, Symbol &prev) {
return MakeAssocSymbol(name, prev, currScope());
}
- static const parser::Name *GetDesignatorNameIfDataRef(
- const parser::Designator &designator) {
- const auto *dataRef{std::get_if<parser::DataRef>(&designator.u)};
- return dataRef ? std::get_if<parser::Name>(&dataRef->u) : nullptr;
- }
void AddDataSharingAttributeObject(SymbolRef object) {
dataSharingAttributeObjects_.insert(object);
}
@@ -504,7 +499,8 @@ class OmpAttributeVisitor : DirectiveAttributeVisitor<llvm::omp::Directive> {
common::visit(
common::visitors{
[&](const parser::Designator &designator) {
- if (const auto *name{GetDesignatorNameIfDataRef(designator)}) {
+ if (const auto *name{
+ semantics::getDesignatorNameIfDataRef(designator)}) {
if (name->symbol &&
semantics::IsAssumedSizeArray(*name->symbol)) {
context_.Say(designator.source,
@@ -1091,7 +1087,8 @@ void AccAttributeVisitor::ResolveAccObject(
common::visit(
common::visitors{
[&](const parser::Designator &designator) {
- if (const auto *name{GetDesignatorNameIfDataRef(designator)}) {
+ if (const auto *name{
+ semantics::getDesignatorNameIfDataRef(designator)}) {
if (auto *symbol{ResolveAcc(*name, accFlag, currScope())}) {
AddToContextObjectWithDSA(*symbol, accFlag);
if (dataSharingAttributeFlags.test(accFlag)) {
@@ -1739,7 +1736,8 @@ void OmpAttributeVisitor::ResolveOmpObject(
common::visit(
common::visitors{
[&](const parser::Designator &designator) {
- if (const auto *name{GetDesignatorNameIfDataRef(designator)}) {
+ if (const auto *name{
+ semantics::getDesignatorNameIfDataRef(designator)}) {
if (auto *symbol{ResolveOmp(*name, ompFlag, currScope())}) {
if (dataCopyingAttributeFlags.test(ompFlag)) {
CheckDataCopyingClause(*name, *symbol, ompFlag);
More information about the flang-commits
mailing list