Skip to content

Commit 99f202f

Browse files
committed
Revert "[MLIR][OpenMP] Add Lowering support for implicitly linking to default declare mappers (llvm#131006)"
This reverts commit cbc5c11.
1 parent 12b35d4 commit 99f202f

File tree

3 files changed

+14
-79
lines changed

3 files changed

+14
-79
lines changed

flang/lib/Lower/OpenMP/ClauseProcessor.cpp

Lines changed: 10 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -929,35 +929,18 @@ void ClauseProcessor::processMapObjects(
929929
llvm::StringRef mapperIdNameRef) const {
930930
fir::FirOpBuilder &firOpBuilder = converter.getFirOpBuilder();
931931

932-
auto getDefaultMapperID = [&](const omp::Object &object,
933-
std::string &mapperIdName) {
934-
if (!mlir::isa<mlir::omp::DeclareMapperOp>(
935-
firOpBuilder.getRegion().getParentOp())) {
936-
const semantics::DerivedTypeSpec *typeSpec = nullptr;
937-
938-
if (object.sym()->owner().IsDerivedType())
939-
typeSpec = object.sym()->owner().derivedTypeSpec();
940-
else if (object.sym()->GetType() &&
941-
object.sym()->GetType()->category() ==
942-
semantics::DeclTypeSpec::TypeDerived)
943-
typeSpec = &object.sym()->GetType()->derivedTypeSpec();
944-
945-
if (typeSpec) {
946-
mapperIdName = typeSpec->name().ToString() + ".default";
947-
mapperIdName =
948-
converter.mangleName(mapperIdName, *typeSpec->GetScope());
949-
}
950-
}
951-
};
952-
953932
// Create the mapper symbol from its name, if specified.
954933
mlir::FlatSymbolRefAttr mapperId;
955-
if (!mapperIdNameRef.empty() && !objects.empty() &&
956-
mapperIdNameRef != "__implicit_mapper") {
934+
if (!mapperIdNameRef.empty() && !objects.empty()) {
957935
std::string mapperIdName = mapperIdNameRef.str();
958-
const omp::Object &object = objects.front();
959-
if (mapperIdNameRef == "default")
960-
getDefaultMapperID(object, mapperIdName);
936+
if (mapperIdName == "default") {
937+
const omp::Object &object = objects.front();
938+
auto &typeSpec = object.sym()->owner().IsDerivedType()
939+
? *object.sym()->owner().derivedTypeSpec()
940+
: object.sym()->GetType()->derivedTypeSpec();
941+
mapperIdName = typeSpec.name().ToString() + ".default";
942+
mapperIdName = converter.mangleName(mapperIdName, *typeSpec.GetScope());
943+
}
961944
assert(converter.getModuleOp().lookupSymbol(mapperIdName) &&
962945
"mapper not found");
963946
mapperId =
@@ -995,15 +978,6 @@ void ClauseProcessor::processMapObjects(
995978
}
996979
}
997980

998-
if (mapperIdNameRef == "__implicit_mapper") {
999-
std::string mapperIdName;
1000-
getDefaultMapperID(object, mapperIdName);
1001-
mapperId = converter.getModuleOp().lookupSymbol(mapperIdName)
1002-
? mlir::FlatSymbolRefAttr::get(&converter.getMLIRContext(),
1003-
mapperIdName)
1004-
: mlir::FlatSymbolRefAttr();
1005-
}
1006-
1007981
// Explicit map captures are captured ByRef by default,
1008982
// optimisation passes may alter this to ByCopy or other capture
1009983
// types to optimise
@@ -1049,7 +1023,7 @@ bool ClauseProcessor::processMap(
10491023
const auto &[mapType, typeMods, mappers, iterator, objects] = clause.t;
10501024
llvm::omp::OpenMPOffloadMappingFlags mapTypeBits =
10511025
llvm::omp::OpenMPOffloadMappingFlags::OMP_MAP_NONE;
1052-
std::string mapperIdName = "__implicit_mapper";
1026+
std::string mapperIdName;
10531027
// If the map type is specified, then process it else Tofrom is the
10541028
// default.
10551029
Map::MapType type = mapType.value_or(Map::MapType::Tofrom);

flang/lib/Lower/OpenMP/OpenMP.cpp

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2266,16 +2266,6 @@ genTargetOp(lower::AbstractConverter &converter, lower::SymMap &symTable,
22662266
fir::ExtendedValue dataExv = converter.getSymbolExtendedValue(sym);
22672267
name << sym.name().ToString();
22682268

2269-
mlir::FlatSymbolRefAttr mapperId;
2270-
if (sym.GetType()->category() == semantics::DeclTypeSpec::TypeDerived) {
2271-
auto &typeSpec = sym.GetType()->derivedTypeSpec();
2272-
std::string mapperIdName = typeSpec.name().ToString() + ".default";
2273-
mapperIdName = converter.mangleName(mapperIdName, *typeSpec.GetScope());
2274-
if (converter.getModuleOp().lookupSymbol(mapperIdName))
2275-
mapperId = mlir::FlatSymbolRefAttr::get(&converter.getMLIRContext(),
2276-
mapperIdName);
2277-
}
2278-
22792269
fir::factory::AddrAndBoundsInfo info =
22802270
Fortran::lower::getDataOperandBaseAddr(
22812271
converter, firOpBuilder, sym, converter.getCurrentLocation());
@@ -2334,7 +2324,7 @@ genTargetOp(lower::AbstractConverter &converter, lower::SymMap &symTable,
23342324
static_cast<
23352325
std::underlying_type_t<llvm::omp::OpenMPOffloadMappingFlags>>(
23362326
mapFlag),
2337-
captureKind, baseOp.getType(), /*partialMap=*/false, mapperId);
2327+
captureKind, baseOp.getType());
23382328

23392329
clauseOps.mapVars.push_back(mapOp);
23402330
mapSyms.push_back(&sym);
@@ -2577,8 +2567,9 @@ static void genStandaloneDistribute(lower::AbstractConverter &converter,
25772567

25782568
DataSharingProcessor dsp(converter, semaCtx, item->clauses, eval,
25792569
/*shouldCollectPreDeterminedSymbols=*/true,
2580-
enableDelayedPrivatization, symTable);
2581-
dsp.processStep1(&distributeClauseOps);
2570+
enableDelayedPrivatizationStaging, symTable);
2571+
dsp.processStep1();
2572+
dsp.processStep2(&distributeClauseOps);
25822573

25832574
mlir::omp::LoopNestOperands loopNestClauseOps;
25842575
llvm::SmallVector<const semantics::Symbol *> iv;

flang/test/Lower/OpenMP/declare-mapper.f90

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
! RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 %t/omp-declare-mapper-1.f90 -o - | FileCheck %t/omp-declare-mapper-1.f90
55
! RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 %t/omp-declare-mapper-2.f90 -o - | FileCheck %t/omp-declare-mapper-2.f90
66
! RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 %t/omp-declare-mapper-3.f90 -o - | FileCheck %t/omp-declare-mapper-3.f90
7-
! RUN: %flang_fc1 -emit-hlfir -fopenmp -fopenmp-version=50 %t/omp-declare-mapper-4.f90 -o - | FileCheck %t/omp-declare-mapper-4.f90
87

98
!--- omp-declare-mapper-1.f90
109
subroutine declare_mapper_1
@@ -141,32 +140,3 @@ subroutine declare_mapper_3
141140
!$omp declare mapper (my_mapper : my_type :: var) map (var, var%values (1:var%num_vals))
142141
!$omp declare mapper (my_mapper2 : my_type2 :: v) map (mapper(my_mapper) : v%my_type_var) map (tofrom : v%arr)
143142
end subroutine declare_mapper_3
144-
145-
!--- omp-declare-mapper-4.f90
146-
subroutine declare_mapper_4
147-
type my_type
148-
integer :: num
149-
end type
150-
151-
!CHECK: omp.declare_mapper @[[MY_TYPE_MAPPER:_QQFdeclare_mapper_4my_type.default]] : [[MY_TYPE:!fir\.type<_QFdeclare_mapper_4Tmy_type\{num:i32\}>]]
152-
!$omp declare mapper (my_type :: var) map (var%num)
153-
154-
type(my_type) :: a
155-
integer :: b
156-
!CHECK: %{{.*}} = omp.map.info var_ptr(%{{.*}}#1 : !fir.ref<[[MY_TYPE]]>, [[MY_TYPE]]) mapper(@[[MY_TYPE_MAPPER]]) map_clauses(tofrom) capture(ByRef) -> !fir.ref<[[MY_TYPE]]> {name = "a"}
157-
!CHECK: %{{.*}} = omp.map.info var_ptr(%{{.*}}#1 : !fir.ref<i32>, i32) map_clauses(tofrom) capture(ByRef) -> !fir.ref<i32> {name = "b"}
158-
!$omp target map(a, b)
159-
a%num = 10
160-
b = 20
161-
!$omp end target
162-
163-
!CHECK: %{{.*}} = omp.map.info var_ptr(%{{.*}} : !fir.ref<i32>, i32) mapper(@[[MY_TYPE_MAPPER]]) map_clauses(tofrom) capture(ByRef) -> !fir.ref<i32> {name = "a%{{.*}}"}
164-
!$omp target map(a%num)
165-
a%num = 30
166-
!$omp end target
167-
168-
!CHECK: %{{.*}} = omp.map.info var_ptr(%{{.*}}#1 : !fir.ref<[[MY_TYPE]]>, [[MY_TYPE]]) mapper(@[[MY_TYPE_MAPPER]]) map_clauses(implicit, tofrom) capture(ByRef) -> !fir.ref<[[MY_TYPE]]> {name = "a"}
169-
!$omp target
170-
a%num = 40
171-
!$omp end target
172-
end subroutine declare_mapper_4

0 commit comments

Comments
 (0)