Skip to content

Commit eda69eb

Browse files
committed
Code cleanup.
1 parent 769c89a commit eda69eb

File tree

3 files changed

+30
-47
lines changed

3 files changed

+30
-47
lines changed

flang/lib/Lower/OpenMP/ClauseProcessor.cpp

Lines changed: 20 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1233,43 +1233,34 @@ void ClauseProcessor::processMapObjects(
12331233
return nullptr;
12341234
};
12351235

1236-
auto addImplicitmapper = [&](const omp::Object &object,
1236+
auto addImplicitMapper = [&](const omp::Object &object,
12371237
std::string &mapperIdName,
12381238
bool allowGenerate) -> mlir::FlatSymbolRefAttr {
12391239
if (mapperIdName.empty())
12401240
return mlir::FlatSymbolRefAttr();
12411241

1242-
bool symbolExists = converter.getModuleOp().lookupSymbol(mapperIdName);
1243-
if (!symbolExists && !allowGenerate)
1244-
return mlir::FlatSymbolRefAttr();
1245-
1246-
auto getOrCreateMapperAttr = [&]() -> mlir::FlatSymbolRefAttr {
1247-
if (symbolExists)
1248-
return mlir::FlatSymbolRefAttr::get(&converter.getMLIRContext(),
1249-
mapperIdName);
1250-
1251-
const semantics::DerivedTypeSpec *typeSpec =
1252-
getSymbolDerivedType(*object.sym());
1253-
if (!typeSpec && object.sym()->owner().IsDerivedType())
1254-
typeSpec = object.sym()->owner().derivedTypeSpec();
1242+
if (converter.getModuleOp().lookupSymbol(mapperIdName))
1243+
return mlir::FlatSymbolRefAttr::get(&converter.getMLIRContext(),
1244+
mapperIdName);
12551245

1256-
if (!typeSpec)
1257-
return mlir::FlatSymbolRefAttr();
1246+
if (!allowGenerate)
1247+
return mlir::FlatSymbolRefAttr();
12581248

1259-
mlir::Type type = converter.genType(*typeSpec);
1260-
auto recordType = mlir::dyn_cast<fir::RecordType>(type);
1261-
if (!recordType)
1262-
return mlir::FlatSymbolRefAttr();
1249+
const semantics::DerivedTypeSpec *typeSpec =
1250+
getSymbolDerivedType(*object.sym());
1251+
if (!typeSpec && object.sym()->owner().IsDerivedType())
1252+
typeSpec = object.sym()->owner().derivedTypeSpec();
12631253

1264-
return getOrGenImplicitDefaultDeclareMapper(converter, clauseLocation,
1265-
recordType, mapperIdName);
1266-
};
1254+
if (!typeSpec)
1255+
return mlir::FlatSymbolRefAttr();
12671256

1268-
mlir::FlatSymbolRefAttr mapperAttr = getOrCreateMapperAttr();
1269-
if (!mapperAttr)
1257+
mlir::Type type = converter.genType(*typeSpec);
1258+
auto recordType = mlir::dyn_cast<fir::RecordType>(type);
1259+
if (!recordType)
12701260
return mlir::FlatSymbolRefAttr();
12711261

1272-
return mapperAttr;
1262+
return getOrGenImplicitDefaultDeclareMapper(converter, clauseLocation,
1263+
recordType, mapperIdName);
12731264
};
12741265

12751266
auto getDefaultMapperID = [&](const semantics::DerivedTypeSpec *typeSpec,
@@ -1364,13 +1355,9 @@ void ClauseProcessor::processMapObjects(
13641355
semantics::IsAllocatableOrObjectPointer(object.sym());
13651356
bool containsDelete = (mapTypeBits & mlir::omp::ClauseMapFlags::del) !=
13661357
mlir::omp::ClauseMapFlags::none;
1367-
bool mapperExists = !mapperIdName.empty() &&
1368-
converter.getModuleOp().lookupSymbol(mapperIdName);
1369-
if ((needsDefaultMapper || mapperExists) && !mapperIdName.empty() &&
1370-
!containsDelete)
1371-
mapperId = addImplicitmapper(object, mapperIdName,
1372-
/*allowGenerate=*/needsDefaultMapper &&
1373-
!mapperExists);
1358+
if (!mapperIdName.empty() && !containsDelete)
1359+
mapperId = addImplicitMapper(object, mapperIdName,
1360+
/*allowGenerate=*/needsDefaultMapper);
13741361
else
13751362
mapperId = mlir::FlatSymbolRefAttr();
13761363
}

flang/lib/Lower/OpenMP/OpenMP.cpp

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2617,18 +2617,16 @@ genTargetOp(lower::AbstractConverter &converter, lower::SymMap &symTable,
26172617

26182618
std::string mapperIdName = getDefaultMapperName();
26192619
if (!mapperIdName.empty()) {
2620-
bool mapperExists =
2621-
converter.getModuleOp().lookupSymbol(mapperIdName);
26222620
bool allowImplicitMapper =
26232621
semantics::IsAllocatableOrObjectPointer(&sym);
2624-
if (mapperExists || allowImplicitMapper) {
2625-
if (!mapperExists) {
2626-
auto recordType = mlir::dyn_cast_or_null<fir::RecordType>(
2627-
converter.genType(*typeSpec));
2628-
if (recordType)
2629-
mapperId = getOrGenImplicitDefaultDeclareMapper(
2630-
converter, loc, recordType, mapperIdName);
2631-
} else {
2622+
bool hasDefaultMapper =
2623+
converter.getModuleOp().lookupSymbol(mapperIdName);
2624+
if (hasDefaultMapper || allowImplicitMapper) {
2625+
if (auto recordType = mlir::dyn_cast_or_null<fir::RecordType>(
2626+
converter.genType(*typeSpec))) {
2627+
mapperId = getOrGenImplicitDefaultDeclareMapper(
2628+
converter, loc, recordType, mapperIdName);
2629+
} else if (hasDefaultMapper) {
26322630
mapperId = mlir::FlatSymbolRefAttr::get(
26332631
&converter.getMLIRContext(), mapperIdName);
26342632
}

flang/lib/Lower/OpenMP/Utils.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include "ClauseFinder.h"
1616
#include "flang/Evaluate/fold.h"
17+
#include "flang/Evaluate/tools.h"
1718
#include <flang/Lower/AbstractConverter.h>
1819
#include <flang/Lower/ConvertType.h>
1920
#include <flang/Lower/DirectivesCommon.h>
@@ -170,10 +171,7 @@ mlir::FlatSymbolRefAttr getOrGenImplicitDefaultDeclareMapper(
170171

171172
bool requiresImplicitDefaultDeclareMapper(
172173
const semantics::DerivedTypeSpec &typeSpec) {
173-
std::string rawName = typeSpec.name().ToString();
174-
std::string loweredName = llvm::StringRef(rawName).lower();
175-
llvm::StringRef typeNameRef(loweredName);
176-
if (typeNameRef.contains("c_ptr") || typeNameRef.contains("c_funptr"))
174+
if (semantics::IsIsoCType(&typeSpec))
177175
return true;
178176

179177
llvm::SmallPtrSet<const semantics::DerivedTypeSpec *, 8> visited;

0 commit comments

Comments
 (0)