Lines Matching defs:mapData
2882 MapInfoData &mapData, SmallVectorImpl<Value> &mapVars,
2908 mapData.OriginalValue.push_back(moduleTranslation.lookupValue(offloadPtr));
2909 mapData.Pointers.push_back(mapData.OriginalValue.back());
2914 mapData.IsDeclareTarget.push_back(true);
2915 mapData.BasePointers.push_back(refPtr);
2917 mapData.IsDeclareTarget.push_back(false);
2918 mapData.BasePointers.push_back(mapData.OriginalValue.back());
2921 mapData.BaseType.push_back(
2923 mapData.Sizes.push_back(
2924 getSizeInBytes(dl, mapOp.getVarType(), mapOp, mapData.Pointers.back(),
2925 mapData.BaseType.back(), builder, moduleTranslation));
2926 mapData.MapClause.push_back(mapOp.getOperation());
2927 mapData.Types.push_back(
2929 mapData.Names.push_back(LLVM::createMappingInformation(
2931 mapData.DevicePointers.push_back(llvm::OpenMPIRBuilder::DeviceInfoTy::None);
2932 mapData.IsAMapping.push_back(true);
2933 mapData.IsAMember.push_back(checkIsAMember(mapVars, mapOp));
2936 auto findMapInfo = [&mapData](llvm::Value *val,
2940 for (llvm::Value *basePtr : mapData.OriginalValue) {
2941 if (basePtr == val && mapData.IsAMapping[index]) {
2943 mapData.Types[index] |=
2945 mapData.DevicePointers[index] = devInfoTy;
2963 mapData.OriginalValue.push_back(origValue);
2964 mapData.Pointers.push_back(mapData.OriginalValue.back());
2965 mapData.IsDeclareTarget.push_back(false);
2966 mapData.BasePointers.push_back(mapData.OriginalValue.back());
2967 mapData.BaseType.push_back(
2969 mapData.Sizes.push_back(builder.getInt64(0));
2970 mapData.MapClause.push_back(mapOp.getOperation());
2971 mapData.Types.push_back(
2973 mapData.Names.push_back(LLVM::createMappingInformation(
2975 mapData.DevicePointers.push_back(devInfoTy);
2976 mapData.IsAMapping.push_back(false);
2977 mapData.IsAMember.push_back(checkIsAMember(useDevOperands, mapOp));
2986 static int getMapDataMemberIdx(MapInfoData &mapData, omp::MapInfoOp memberOp) {
2987 auto *res = llvm::find(mapData.MapClause, memberOp);
2988 assert(res != mapData.MapClause.end() &&
2990 return std::distance(mapData.MapClause.begin(), res);
3142 llvm::OpenMPIRBuilder::MapInfosTy &combinedInfo, MapInfoData &mapData,
3150 mapData.DevicePointers[mapDataIndex]);
3152 mapData.MapClause[mapDataIndex]->getLoc(), ompBuilder));
3153 combinedInfo.BasePointers.emplace_back(mapData.BasePointers[mapDataIndex]);
3163 llvm::cast<omp::MapInfoOp>(mapData.MapClause[mapDataIndex]);
3167 lowAddr = builder.CreatePointerCast(mapData.Pointers[mapDataIndex],
3170 builder.CreateConstGEP1_32(mapData.BaseType[mapDataIndex],
3171 mapData.Pointers[mapDataIndex], 1),
3173 combinedInfo.Pointers.emplace_back(mapData.Pointers[mapDataIndex]);
3175 auto mapOp = dyn_cast<omp::MapInfoOp>(mapData.MapClause[mapDataIndex]);
3177 mapData, getFirstOrLastMappedMemberPtr(mapOp, true));
3178 lowAddr = builder.CreatePointerCast(mapData.Pointers[firstMemberIdx],
3181 mapData, getFirstOrLastMappedMemberPtr(mapOp, false));
3183 builder.CreateGEP(mapData.BaseType[lastMemberIdx],
3184 mapData.Pointers[lastMemberIdx], builder.getInt64(1)),
3186 combinedInfo.Pointers.emplace_back(mapData.Pointers[firstMemberIdx]);
3209 llvm::omp::OpenMPOffloadMappingFlags mapFlag = mapData.Types[mapDataIndex];
3215 mapData.MapClause[mapDataIndex]->getLoc(), ompBuilder));
3216 combinedInfo.BasePointers.emplace_back(mapData.BasePointers[mapDataIndex]);
3217 combinedInfo.Pointers.emplace_back(mapData.Pointers[mapDataIndex]);
3218 combinedInfo.Sizes.emplace_back(mapData.Sizes[mapDataIndex]);
3248 llvm::OpenMPIRBuilder::MapInfosTy &combinedInfo, MapInfoData &mapData,
3252 llvm::cast<omp::MapInfoOp>(mapData.MapClause[mapDataIndex]);
3257 int memberDataIdx = getMapDataMemberIdx(mapData, memberClause);
3280 mapData.BasePointers[mapDataIndex]);
3281 combinedInfo.Pointers.emplace_back(mapData.BasePointers[memberDataIdx]);
3298 mapData.DevicePointers[memberDataIdx]);
3304 mapData.BasePointers[basePointerIndex]);
3305 combinedInfo.Pointers.emplace_back(mapData.Pointers[memberDataIdx]);
3307 llvm::Value *size = mapData.Sizes[memberDataIdx];
3310 builder.CreateIsNull(mapData.Pointers[memberDataIdx]),
3319 processIndividualMap(MapInfoData &mapData, size_t mapDataIdx,
3325 auto mapFlag = mapData.Types[mapDataIdx];
3326 auto mapInfoOp = llvm::cast<omp::MapInfoOp>(mapData.MapClause[mapDataIdx]);
3332 if (isTargetParams && !mapData.IsDeclareTarget[mapDataIdx])
3345 mapData.BasePointers[mapDataParentIdx]);
3347 combinedInfo.BasePointers.emplace_back(mapData.BasePointers[mapDataIdx]);
3349 combinedInfo.Pointers.emplace_back(mapData.Pointers[mapDataIdx]);
3350 combinedInfo.DevicePointers.emplace_back(mapData.DevicePointers[mapDataIdx]);
3351 combinedInfo.Names.emplace_back(mapData.Names[mapDataIdx]);
3353 combinedInfo.Sizes.emplace_back(mapData.Sizes[mapDataIdx]);
3359 llvm::OpenMPIRBuilder::MapInfosTy &combinedInfo, MapInfoData &mapData,
3362 llvm::cast<omp::MapInfoOp>(mapData.MapClause[mapDataIndex]);
3370 int memberDataIdx = getMapDataMemberIdx(mapData, memberClause);
3381 processIndividualMap(mapData, memberDataIdx, combinedInfo, isTargetParams,
3388 combinedInfo, mapData, mapDataIndex, isTargetParams);
3390 combinedInfo, mapData, mapDataIndex,
3399 createAlteredByCaptureMap(MapInfoData &mapData,
3402 for (size_t i = 0; i < mapData.MapClause.size(); ++i) {
3404 if (!mapData.IsDeclareTarget[i]) {
3405 auto mapOp = cast<omp::MapInfoOp>(mapData.MapClause[i]);
3419 llvm::Value *newV = mapData.Pointers[i];
3421 moduleTranslation, builder, mapData.BaseType[i]->isArrayTy(),
3427 newV = builder.CreateInBoundsGEP(mapData.BaseType[i], newV, offsetIdx,
3429 mapData.Pointers[i] = newV;
3432 llvm::Type *type = mapData.BaseType[i];
3434 if (mapData.Pointers[i]->getType()->isPointerTy())
3435 newV = builder.CreateLoad(type, mapData.Pointers[i]);
3437 newV = mapData.Pointers[i];
3450 mapData.Pointers[i] = newV;
3451 mapData.BasePointers[i] = newV;
3455 mapData.MapClause[i]->emitOpError("Unhandled capture kind");
3467 MapInfoData &mapData, bool isTargetParams = false) {
3480 createAlteredByCaptureMap(mapData, moduleTranslation, builder);
3489 for (size_t i = 0; i < mapData.MapClause.size(); ++i) {
3492 if (mapData.IsAMember[i])
3495 auto mapInfoOp = dyn_cast<omp::MapInfoOp>(mapData.MapClause[i]);
3498 combinedInfo, mapData, i, isTargetParams);
3502 processIndividualMap(mapData, i, combinedInfo, isTargetParams);
3612 MapInfoData mapData;
3613 collectMapDataFromMapOperands(mapData, mapVars, moduleTranslation, DL,
3621 genMapInfos(builder, moduleTranslation, DL, combinedInfo, mapData);
3674 useDeviceAddrVars, mapData,
3684 mapData, [&](llvm::Value *basePointer) {
3704 useDeviceAddrVars, mapData);
3707 useDevicePtrVars, mapData);
3800 handleDeclareTargetMapVar(MapInfoData &mapData,
3803 for (size_t i = 0; i < mapData.MapClause.size(); ++i) {
3816 if (mapData.IsDeclareTarget[i]) {
3823 if (auto *constant = dyn_cast<llvm::Constant>(mapData.OriginalValue[i]))
3831 for (llvm::User *user : mapData.OriginalValue[i]->users())
3837 auto *load = builder.CreateLoad(mapData.BasePointers[i]->getType(),
3838 mapData.BasePointers[i]);
3840 user->replaceUsesOfWith(mapData.OriginalValue[i], load);
3865 // \param mapData - A container containing vectors of information
3888 createDeviceArgumentAccessor(MapInfoData &mapData, llvm::Argument &arg,
3900 for (size_t i = 0; i < mapData.MapClause.size(); ++i)
3901 if (mapData.OriginalValue[i] == input) {
3902 auto mapOp = cast<omp::MapInfoOp>(mapData.MapClause[i]);
4327 MapInfoData mapData;
4328 collectMapDataFromMapOperands(mapData, mapVars, moduleTranslation, dl,
4335 genMapInfos(builder, moduleTranslation, dl, combinedInfos, mapData, true);
4353 return createDeviceArgumentAccessor(mapData, arg, input, retVal, builder,
4388 if (!mapData.IsDeclareTarget[i] && !mapData.IsAMember[i])
4389 kernelInput.push_back(mapData.OriginalValue[i]);
4418 handleDeclareTargetMapVar(mapData, moduleTranslation, builder,