Lines Matching defs:CGM

37   CodeGenModule &CGM;
45 static llvm::Constant *BuildStruct(CodeGenModule &CGM, CodeGenFunction *CGF,
47 static llvm::Constant *BuildStruct(CodeGenModule &CGM, CodeGenFunction *CGF,
51 ConstStructBuilder(CodeGenModule &CGM, CodeGenFunction *CGF)
52 : CGM(CGM), CGF(CGF), Packed(false),
78 CGM.getDataLayout().getABITypeAlignment(C->getType()));
83 CGM.getDataLayout().getTypeAllocSize(C->getType()));
90 const ASTContext &Context = CGM.getContext();
143 const ASTContext &Context = CGM.getContext();
186 if (CGM.getDataLayout().isBigEndian()) {
202 if (CGM.getDataLayout().isBigEndian()) {
242 Elements.back() = llvm::ConstantInt::get(CGM.getLLVMContext(), Tmp);
251 if (CGM.getDataLayout().isBigEndian()) {
262 Elements.push_back(llvm::ConstantInt::get(CGM.getLLVMContext(), Tmp));
274 if (CGM.getDataLayout().isBigEndian()) {
283 Elements.push_back(llvm::ConstantInt::get(CGM.getLLVMContext(),
292 llvm::Type *Ty = CGM.Int8Ty;
319 CGM.getDataLayout().getABITypeAlignment(C->getType()));
328 llvm::Type *Ty = CGM.Int8Ty;
351 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
370 EltInit = CGM.EmitConstantExpr(ILE->getInit(ElementNo++),
373 EltInit = CGM.EmitNullConstant(Field->getType());
409 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
415 CGM.getCXXABI().getVTableAddressPointForConstExpr(
444 uint64_t OffsetBits = CGM.getContext().toBits(Offset);
460 CGM.EmitConstantValueForMemory(FieldValue, Field->getType(), CGF);
476 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
511 llvm::ConstantStruct::getTypeForElements(CGM.getLLVMContext(),
513 llvm::Type *ValTy = CGM.getTypes().ConvertType(Ty);
527 llvm::Constant *ConstStructBuilder::BuildStruct(CodeGenModule &CGM,
530 ConstStructBuilder Builder(CGM, CGF);
538 llvm::Constant *ConstStructBuilder::BuildStruct(CodeGenModule &CGM,
542 ConstStructBuilder Builder(CGM, CGF);
562 CodeGenModule &CGM;
567 : CGM(cgm), CGF(cgf), VMContext(cgm.getLLVMContext()) {
601 llvm::Constant *C = CGM.EmitConstantExpr(subExpr, subExpr->getType(), CGF);
618 unsigned CurSize = CGM.getDataLayout().getTypeAllocSize(C->getType());
619 unsigned TotalSize = CGM.getDataLayout().getTypeAllocSize(destType);
623 llvm::Type *Ty = CGM.Int8Ty;
654 return CGM.getCXXABI().EmitMemberPointerConversion(E, C);
744 llvm::Constant *C = CGM.EmitConstantExpr(Init, Init->getType(), CGF);
755 fillC = CGM.EmitConstantExpr(filler, filler->getType(), CGF);
778 return ConstStructBuilder::BuildStruct(CGM, CGF, ILE);
782 return CGM.EmitNullConstant(E->getType());
803 CGM.getContext().getBaseElementType(Ty)->getAs<RecordType>();
820 assert(CGM.getContext().hasSameUnqualifiedType(Ty, Arg->getType()) &&
826 return CGM.EmitNullConstant(Ty);
830 return CGM.GetConstantArrayFromStringLiteral(E);
838 CGM.getContext().getObjCEncodingForType(E->getEncodedType(), Str);
856 return CGM.getTypes().ConvertType(T);
863 return CGM.GetWeakRefReference(Decl);
865 return CGM.GetAddrOfFunction(FD);
870 return CGM.GetAddrOfGlobalVar(VD);
872 return CGM.getStaticLocalDeclAddress(VD);
885 llvm::Constant* C = CGM.EmitConstantExpr(CLE->getInitializer(),
889 C = new llvm::GlobalVariable(CGM.getModule(), C->getType(),
890 E->getType().isConstant(CGM.getContext()),
894 CGM.getContext().getTargetAddressSpace(E->getType()));
898 return CGM.GetAddrOfConstantStringFromLiteral(cast<StringLiteral>(E));
900 return CGM.GetAddrOfConstantStringFromObjCEncode(cast<ObjCEncodeExpr>(E));
904 CGM.getObjCRuntime().GenerateConstantString(SL->getString());
913 return CGM.GetAddrOfConstantCString("top level", ".tmp");
916 return CGM.GetAddrOfConstantCString("", ".tmp");
936 return CGM.getObjCRuntime().GenerateConstantString(Literal);
939 return CGM.GetAddrOfConstantCFString(Literal);
948 return CGM.GetAddrOfGlobalBlock(cast<BlockExpr>(E), FunctionName.c_str());
954 T = Typeid->getTypeOperand(CGM.getContext());
957 return CGM.GetAddrOfRTTIDescriptor(T);
960 return CGM.GetAddrOfUuidDescriptor(cast<CXXUuidofExpr>(E));
969 return CGM.GetAddrOfGlobalTemporary(MTE, Inner);
1253 FillInNullDataMemberPointers(CodeGenModule &CGM, QualType T,
1256 assert(StartOffset % CGM.getContext().getCharWidth() == 0 &&
1259 if (CGM.getTypes().isZeroInitializable(T))
1263 CGM.getContext().getAsConstantArrayType(T)) {
1265 uint64_t ElementSize = CGM.getContext().getTypeSize(ElementTy);
1268 FillInNullDataMemberPointers(CGM, ElementTy, Elements,
1273 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
1290 if (CGM.getTypes().isZeroInitializable(BaseDecl))
1294 CGM.getContext().toBits(Layout.getBaseClassOffset(BaseDecl));
1295 FillInNullDataMemberPointers(CGM, I.getType(),
1305 if (CGM.getTypes().isZeroInitializable(FieldType))
1309 FillInNullDataMemberPointers(CGM, FieldType, Elements, FieldOffset);
1316 CharUnits StartIndex = CGM.getContext().toCharUnitsFromBits(StartOffset);
1317 CharUnits EndIndex = StartIndex + CGM.getContext().getTypeSizeInChars(T);
1321 llvm::ConstantInt::get(CGM.Int8Ty, -1ULL, /*isSigned*/true);
1329 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM,
1333 static llvm::Constant *EmitNullConstant(CodeGenModule &CGM,
1336 const CGRecordLayout &layout = CGM.getTypes().getCGRecordLayout(record);
1361 elements[fieldIndex] = EmitNullConstantForBase(CGM, baseType, base);
1370 elements[fieldIndex] = CGM.EmitNullConstant(Field->getType());
1394 elements[fieldIndex] = EmitNullConstantForBase(CGM, baseType, base);
1408 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM,
1411 const CGRecordLayout &baseLayout = CGM.getTypes().getCGRecordLayout(base);
1419 return EmitNullConstant(CGM, base, /*complete*/ false);
1430 FillInNullDataMemberPointers(CGM, CGM.getContext().getTypeDeclType(base),
1435 llvm::Constant *i8_zero = llvm::Constant::getNullValue(CGM.Int8Ty);