Lines Matching defs:blockInfo

52                                         const CGBlockInfo &blockInfo,
57 const CGBlockInfo &blockInfo) {
58 return CodeGenFunction(CGM).GenerateCopyHelperFunction(blockInfo);
63 const CGBlockInfo &blockInfo) {
64 return CodeGenFunction(CGM).GenerateDestroyHelperFunction(blockInfo);
152 const CGBlockInfo &blockInfo) {
169 descName = getBlockDescriptorName(blockInfo, CGM);
186 elements.addInt(ulong, blockInfo.BlockSize.getQuantity());
190 if (blockInfo.NeedsCopyDispose) {
192 llvm::Constant *copyHelper = buildCopyHelper(CGM, blockInfo);
196 llvm::Constant *disposeHelper = buildDisposeHelper(CGM, blockInfo);
211 CGM.getContext().getObjCEncodingForBlock(blockInfo.getBlockExpr());
218 elements.add(CGM.getObjCRuntime().BuildGCBlockLayout(CGM, blockInfo));
220 elements.add(CGM.getObjCRuntime().BuildRCBlockLayout(CGM, blockInfo));
775 CGBlockInfo blockInfo(blockExpr->getBlockDecl(), CurFn->getName());
776 computeBlockInfo(CGM, this, blockInfo);
777 blockInfo.BlockExpression = blockExpr;
778 if (!blockInfo.CanBeGlobal)
779 blockInfo.LocalAddress = CreateTempAlloca(blockInfo.StructureType,
780 blockInfo.BlockAlign, "block");
781 return EmitBlockLiteral(blockInfo);
784 llvm::Value *CodeGenFunction::EmitBlockLiteral(const CGBlockInfo &blockInfo) {
792 bool isLambdaConv = blockInfo.getBlockDecl()->isConversionFromLambda();
796 CurGD, blockInfo, LocalDeclMap, isLambdaConv, blockInfo.CanBeGlobal);
800 if (blockInfo.CanBeGlobal)
801 return CGM.getAddrOfGlobalBlockIfEmitted(blockInfo.BlockExpression);
805 RawAddress blockAddr = blockInfo.LocalAddress;
815 llvm::Constant *blockISA = blockInfo.NoEscape
821 descriptor = buildBlockDescriptor(CGM, blockInfo);
826 if (blockInfo.HasCapturedVariableLayout)
828 if (blockInfo.NeedsCopyDispose)
830 if (blockInfo.HasCXXObject)
832 if (blockInfo.UsesStret)
834 if (blockInfo.NoEscape)
865 llvm::ConstantInt::get(IntTy, blockInfo.BlockSize.getQuantity()),
868 llvm::ConstantInt::get(IntTy, blockInfo.BlockAlign.getQuantity()),
876 for (auto I : Helper->getCustomFieldValues(*this, blockInfo)) {
887 const BlockDecl *blockDecl = blockInfo.getBlockDecl();
892 projectField(blockInfo.CXXThisIndex, "block.captured-this.addr");
899 const CGBlockInfo::Capture &capture = blockInfo.getCapture(variable);
1023 if (!blockInfo.NoEscape && !blockInfo.NeedsCopyDispose)
1085 blockAddr.getPointer(), ConvertType(blockInfo.getBlockExpr()->getType()));
1088 CGM.getOpenCLRuntime().recordBlockInfo(blockInfo.BlockExpression, InvokeFn,
1089 result, blockInfo.StructureType);
1271 CGBlockInfo blockInfo(BE->getBlockDecl(), Name);
1272 blockInfo.BlockExpression = BE;
1275 computeBlockInfo(*this, nullptr, blockInfo);
1281 GlobalDecl(), blockInfo, LocalDeclMap,
1289 const CGBlockInfo &blockInfo,
1291 assert(blockInfo.CanBeGlobal);
1295 assert(!CGM.getAddrOfGlobalBlockIfEmitted(blockInfo.BlockExpression) &&
1315 if (blockInfo.UsesStret)
1323 fields.addInt(CGM.IntTy, blockInfo.BlockSize.getQuantity());
1324 fields.addInt(CGM.IntTy, blockInfo.BlockAlign.getQuantity());
1332 fields.add(buildBlockDescriptor(CGM, blockInfo));
1335 for (auto *I : Helper->getCustomFieldValues(CGM, blockInfo)) {
1345 "__block_literal_global", blockInfo.BlockAlign,
1373 CGM.getTypes().ConvertType(blockInfo.getBlockExpr()->getType());
1376 CGM.setAddrOfGlobalBlock(blockInfo.BlockExpression, Result);
1379 blockInfo.BlockExpression,
1426 GlobalDecl GD, const CGBlockInfo &blockInfo, const DeclMapTy &ldm,
1428 const BlockDecl *blockDecl = blockInfo.getBlockDecl();
1432 CurEHLocation = blockInfo.getBlockExpr()->getEndLoc();
1434 BlockInfo = &blockInfo;
1473 const FunctionProtoType *fnType = blockInfo.getBlockExpr()->getFunctionType();
1477 blockInfo.UsesStret = true;
1490 buildGlobalBlock(CGM, blockInfo,
1497 blockInfo.getBlockExpr()->getBody()->getBeginLoc());
1520 LoadBlockStruct(), blockInfo.CXXThisIndex, "block.captured-this");
1527 const CGBlockInfo::Capture &capture = blockInfo.getCapture(variable);
1570 const CGBlockInfo::Capture &capture = blockInfo.getCapture(variable);
1579 variable, BlockPointerDbgLoc, Builder, blockInfo,
1880 CodeGenFunction::GenerateCopyHelperFunction(const CGBlockInfo &blockInfo) {
1882 blockInfo.SortedCaptures, blockInfo.BlockAlign,
1915 setBlockHelperAttributesVisibility(blockInfo.CapturesNonExternalType, Fn, FI,
1921 src = Address(Builder.CreateLoad(src), blockInfo.StructureType,
1922 blockInfo.BlockAlign);
1925 dst = Address(Builder.CreateLoad(dst), blockInfo.StructureType,
1926 blockInfo.BlockAlign);
1928 for (auto &capture : blockInfo.SortedCaptures) {
2069 CodeGenFunction::GenerateDestroyHelperFunction(const CGBlockInfo &blockInfo) {
2071 blockInfo.SortedCaptures, blockInfo.BlockAlign,
2101 setBlockHelperAttributesVisibility(blockInfo.CapturesNonExternalType, Fn, FI,
2109 src = Address(Builder.CreateLoad(src), blockInfo.StructureType,
2110 blockInfo.BlockAlign);
2114 for (auto &capture : blockInfo.SortedCaptures) {