================ @@ -9536,18 +9506,65 @@ static void emitTargetCallKernelLaunch( MEHandler.adjustMemberOfForLambdaCaptures( OMPBuilder, LambdaPointers, CombinedInfo.BasePointers, CombinedInfo.Pointers, CombinedInfo.Types); +} +static void +genMapInfo(MappableExprsHandler &MEHandler, CodeGenFunction &CGF, + MappableExprsHandler::MapCombinedInfoTy &CombinedInfo, + llvm::OpenMPIRBuilder &OMPBuilder, + const llvm::DenseSet<CanonicalDeclPtr<const Decl>> &SkippedVarSet = + llvm::DenseSet<CanonicalDeclPtr<const Decl>>()) { + + CodeGenModule &CGM = CGF.CGM; // Map any list items in a map clause that were not captures because they // weren't referenced within the construct. - MEHandler.generateAllInfo(CombinedInfo, OMPBuilder, MappedVarSet); + MEHandler.generateAllInfo(CombinedInfo, OMPBuilder, SkippedVarSet); + + auto FillInfoMap = [&](MappableExprsHandler::MappingExprInfo &MapExpr) { + return emitMappingInformation(CGF, OMPBuilder, MapExpr); + }; + if (CGM.getCodeGenOpts().getDebugInfo() != + llvm::codegenoptions::NoDebugInfo) { + CombinedInfo.Names.resize(CombinedInfo.Exprs.size()); + llvm::transform(CombinedInfo.Exprs, CombinedInfo.Names.begin(), + FillInfoMap); + } +} + +static void genMapInfo(const OMPExecutableDirective &D, CodeGenFunction &CGF, + const CapturedStmt &CS, + llvm::SmallVectorImpl<llvm::Value *> &CapturedVars, + llvm::OpenMPIRBuilder &OMPBuilder, + MappableExprsHandler::MapCombinedInfoTy &CombinedInfo) { + // Get mappable expression information. + MappableExprsHandler MEHandler(D, CGF); + llvm::DenseMap<llvm::Value *, llvm::Value *> LambdaPointers; ---------------- jsjodin wrote:
Instead of passing in LambdaPointers, can it be internal to getMapInfoForCaptures? It doesn't seem to be used outside this function. https://github.com/llvm/llvm-project/pull/97088 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits