@@ -8879,17 +8879,17 @@ static void emitOffloadingArraysAndArgs(
88798879 };
88808880
88818881 auto CustomMapperCB = [&](unsigned int I) {
8882- llvm::Value *MFunc = nullptr;
8882+ llvm::Function *MFunc = nullptr;
88838883 if (CombinedInfo.Mappers[I]) {
88848884 Info.HasMapper = true;
88858885 MFunc = CGM.getOpenMPRuntime().getOrCreateUserDefinedMapperFunc(
88868886 cast<OMPDeclareMapperDecl>(CombinedInfo.Mappers[I]));
88878887 }
88888888 return MFunc;
88898889 };
8890- OMPBuilder.emitOffloadingArraysAndArgs(
8891- AllocaIP, CodeGenIP, Info, Info.RTArgs, CombinedInfo, IsNonContiguous ,
8892- ForEndCall, DeviceAddrCB, CustomMapperCB );
8890+ cantFail( OMPBuilder.emitOffloadingArraysAndArgs(
8891+ AllocaIP, CodeGenIP, Info, Info.RTArgs, CombinedInfo, CustomMapperCB ,
8892+ IsNonContiguous, ForEndCall, DeviceAddrCB) );
88938893}
88948894
88958895/// Check for inner distribute directive.
@@ -9082,24 +9082,24 @@ void CGOpenMPRuntime::emitUserDefinedMapper(const OMPDeclareMapperDecl *D,
90829082 return CombinedInfo;
90839083 };
90849084
9085- auto CustomMapperCB = [&](unsigned I, llvm::Function **MapperFunc) {
9085+ auto CustomMapperCB = [&](unsigned I) {
9086+ llvm::Function *MapperFunc = nullptr;
90869087 if (CombinedInfo.Mappers[I]) {
90879088 // Call the corresponding mapper function.
9088- * MapperFunc = getOrCreateUserDefinedMapperFunc(
9089+ MapperFunc = getOrCreateUserDefinedMapperFunc(
90899090 cast<OMPDeclareMapperDecl>(CombinedInfo.Mappers[I]));
9090- assert(*MapperFunc && "Expect a valid mapper function is available.");
9091- return true;
9091+ assert(MapperFunc && "Expect a valid mapper function is available.");
90929092 }
9093- return false ;
9093+ return MapperFunc ;
90949094 };
90959095
90969096 SmallString<64> TyStr;
90979097 llvm::raw_svector_ostream Out(TyStr);
90989098 CGM.getCXXABI().getMangleContext().mangleCanonicalTypeName(Ty, Out);
90999099 std::string Name = getName({"omp_mapper", TyStr, D->getName()});
91009100
9101- auto *NewFn = OMPBuilder.emitUserDefinedMapper(PrivatizeAndGenMapInfoCB,
9102- ElemTy, Name, CustomMapperCB);
9101+ llvm::Function *NewFn = cantFail( OMPBuilder.emitUserDefinedMapper(
9102+ PrivatizeAndGenMapInfoCB, ElemTy, Name, CustomMapperCB) );
91039103 UDMMap.try_emplace(D, NewFn);
91049104 if (CGF)
91059105 FunctionUDMMap[CGF->CurFn].push_back(D);
@@ -10073,7 +10073,7 @@ void CGOpenMPRuntime::emitTargetDataCalls(
1007310073 };
1007410074
1007510075 auto CustomMapperCB = [&](unsigned int I) {
10076- llvm::Value *MFunc = nullptr;
10076+ llvm::Function *MFunc = nullptr;
1007710077 if (CombinedInfo.Mappers[I]) {
1007810078 Info.HasMapper = true;
1007910079 MFunc = CGF.CGM.getOpenMPRuntime().getOrCreateUserDefinedMapperFunc(
@@ -10093,7 +10093,8 @@ void CGOpenMPRuntime::emitTargetDataCalls(
1009310093 llvm::OpenMPIRBuilder::InsertPointTy AfterIP =
1009410094 cantFail(OMPBuilder.createTargetData(
1009510095 OmpLoc, AllocaIP, CodeGenIP, DeviceID, IfCondVal, Info, GenMapInfoCB,
10096- /*MapperFunc=*/nullptr, BodyCB, DeviceAddrCB, CustomMapperCB, RTLoc));
10096+ CustomMapperCB,
10097+ /*MapperFunc=*/nullptr, BodyCB, DeviceAddrCB, RTLoc));
1009710098 CGF.Builder.restoreIP(AfterIP);
1009810099}
1009910100
0 commit comments