Lines Matching refs:CGM
38 CodeGenModule &CGM; member in __anonf87f0b7c0111::ConstStructBuilder
46 static llvm::Constant *BuildStruct(CodeGenModule &CGM, CodeGenFunction *CFG,
50 static llvm::Constant *BuildStruct(CodeGenModule &CGM, CodeGenFunction *CGF,
52 static llvm::Constant *BuildStruct(CodeGenModule &CGM, CodeGenFunction *CGF,
56 ConstStructBuilder(CodeGenModule &CGM, CodeGenFunction *CGF) in ConstStructBuilder() argument
57 : CGM(CGM), CGF(CGF), Packed(false), in ConstStructBuilder()
85 CGM.getDataLayout().getABITypeAlignment(C->getType())); in getAlignment()
90 CGM.getDataLayout().getTypeAllocSize(C->getType())); in getSizeInChars()
97 const ASTContext &Context = CGM.getContext(); in AppendField()
159 const ASTContext &Context = CGM.getContext(); in AppendBitField()
202 if (CGM.getDataLayout().isBigEndian()) { in AppendBitField()
218 if (CGM.getDataLayout().isBigEndian()) { in AppendBitField()
258 Elements.back() = llvm::ConstantInt::get(CGM.getLLVMContext(), Tmp); in AppendBitField()
267 if (CGM.getDataLayout().isBigEndian()) { in AppendBitField()
278 Elements.push_back(llvm::ConstantInt::get(CGM.getLLVMContext(), Tmp)); in AppendBitField()
290 if (CGM.getDataLayout().isBigEndian()) { in AppendBitField()
299 Elements.push_back(llvm::ConstantInt::get(CGM.getLLVMContext(), in AppendBitField()
308 llvm::Type *Ty = CGM.Int8Ty; in AppendPadding()
335 CGM.getDataLayout().getABITypeAlignment(C->getType())); in ConvertStructToPacked()
344 llvm::Type *Ty = CGM.Int8Ty; in ConvertStructToPacked()
367 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD); in Build()
393 EltInit = CGM.EmitConstantExpr(ILE->getInit(ElementNo++), in Build()
396 EltInit = CGM.EmitNullConstant(Field->getType()); in Build()
437 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD); in Build()
443 CGM.getCXXABI().getVTableAddressPointForConstExpr( in Build()
472 uint64_t OffsetBits = CGM.getContext().toBits(Offset); in Build()
488 CGM.EmitConstantValueForMemory(FieldValue, Field->getType(), CGF); in Build()
504 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD); in Finalize()
544 llvm::ConstantStruct::getTypeForElements(CGM.getLLVMContext(), in Finalize()
546 llvm::Type *ValTy = CGM.getTypes().ConvertType(Ty); in Finalize()
561 llvm::Constant *ConstStructBuilder::BuildStruct(CodeGenModule &CGM, in BuildStruct() argument
566 ConstStructBuilder Builder(CGM, CGF); in BuildStruct()
572 llvm::Constant *ConstStructBuilder::BuildStruct(CodeGenModule &CGM, in BuildStruct() argument
575 ConstStructBuilder Builder(CGM, CGF); in BuildStruct()
583 llvm::Constant *ConstStructBuilder::BuildStruct(CodeGenModule &CGM, in BuildStruct() argument
587 ConstStructBuilder Builder(CGM, CGF); in BuildStruct()
607 CodeGenModule &CGM; member in __anonf87f0b7c0111::ConstExprEmitter
612 : CGM(cgm), CGF(cgf), VMContext(cgm.getLLVMContext()) { in ConstExprEmitter()
646 CGM.EmitExplicitCastExprType(ECE, CGF); in VisitCastExpr()
648 llvm::Constant *C = CGM.EmitConstantExpr(subExpr, subExpr->getType(), CGF); in VisitCastExpr()
665 unsigned CurSize = CGM.getDataLayout().getTypeAllocSize(C->getType()); in VisitCastExpr()
666 unsigned TotalSize = CGM.getDataLayout().getTypeAllocSize(destType); in VisitCastExpr()
670 llvm::Type *Ty = CGM.Int8Ty; in VisitCastExpr()
701 return CGM.getCXXABI().EmitMemberPointerConversion(E, C); in VisitCastExpr()
795 fillC = CGM.EmitConstantExpr(filler, filler->getType(), CGF); in EmitArrayInitialization()
812 llvm::Constant *C = CGM.EmitConstantExpr(Init, Init->getType(), CGF); in EmitArrayInitialization()
837 return ConstStructBuilder::BuildStruct(CGM, CGF, ILE); in EmitRecordInitialization()
841 return CGM.EmitNullConstant(E->getType()); in VisitImplicitValueInitExpr()
882 fillC = CGM.EmitConstantExpr(filler, filler->getType(), CGF); in EmitDesignatedInitUpdater()
897 Elts[i] = CGM.EmitConstantExpr(Init, Init->getType(), CGF); in EmitDesignatedInitUpdater()
918 return ConstStructBuilder::BuildStruct(CGM, CGF, this, in EmitDesignatedInitUpdater()
926 CGM.EmitConstantExpr(E->getBase(), E->getType(), CGF), in VisitDesignatedInitUpdateExpr()
938 CGM.getContext().getBaseElementType(Ty)->getAs<RecordType>(); in VisitCXXConstructExpr()
955 assert(CGM.getContext().hasSameUnqualifiedType(Ty, Arg->getType()) && in VisitCXXConstructExpr()
961 return CGM.EmitNullConstant(Ty); in VisitCXXConstructExpr()
965 return CGM.GetConstantArrayFromStringLiteral(E); in VisitStringLiteral()
973 CGM.getContext().getObjCEncodingForType(E->getEncodedType(), Str); in VisitObjCEncodeExpr()
991 return CGM.getTypes().ConvertType(T); in ConvertType()
998 return CGM.GetWeakRefReference(Decl); in EmitLValue()
1000 return ConstantAddress(CGM.GetAddrOfFunction(FD), CharUnits::One()); in EmitLValue()
1004 CharUnits Align = CGM.getContext().getDeclAlign(VD); in EmitLValue()
1006 return ConstantAddress(CGM.GetAddrOfGlobalVar(VD), Align); in EmitLValue()
1008 auto Ptr = CGM.getOrCreateStaticVarDecl( in EmitLValue()
1009 *VD, CGM.getLLVMLinkageVarDefinition(VD, /*isConstant=*/false)); in EmitLValue()
1024 llvm::Constant* C = CGM.EmitConstantExpr(CLE->getInitializer(), in EmitLValue()
1029 CharUnits Align = CGM.getContext().getTypeAlignInChars(E->getType()); in EmitLValue()
1031 auto GV = new llvm::GlobalVariable(CGM.getModule(), C->getType(), in EmitLValue()
1032 E->getType().isConstant(CGM.getContext()), in EmitLValue()
1036 CGM.getContext().getTargetAddressSpace(E->getType())); in EmitLValue()
1041 return CGM.GetAddrOfConstantStringFromLiteral(cast<StringLiteral>(E)); in EmitLValue()
1043 return CGM.GetAddrOfConstantStringFromObjCEncode(cast<ObjCEncodeExpr>(E)); in EmitLValue()
1047 CGM.getObjCRuntime().GenerateConstantString(SL->getString()); in EmitLValue()
1056 return CGM.GetAddrOfConstantCString("top level", ".tmp"); in EmitLValue()
1059 return CGM.GetAddrOfConstantCString("", ".tmp"); in EmitLValue()
1080 return CGM.getObjCRuntime().GenerateConstantString(Literal); in EmitLValue()
1083 return CGM.GetAddrOfConstantCFString(Literal); in EmitLValue()
1094 CGM.GetAddrOfGlobalBlock(cast<BlockExpr>(E), FunctionName.c_str()); in EmitLValue()
1095 return ConstantAddress(Ptr, CGM.getPointerAlign()); in EmitLValue()
1101 T = Typeid->getTypeOperand(CGM.getContext()); in EmitLValue()
1104 return ConstantAddress(CGM.GetAddrOfRTTIDescriptor(T), in EmitLValue()
1105 CGM.getPointerAlign()); in EmitLValue()
1108 return CGM.GetAddrOfUuidDescriptor(cast<CXXUuidofExpr>(E)); in EmitLValue()
1117 return CGM.GetAddrOfGlobalTemporary(MTE, Inner); in EmitLValue()
1134 const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD); in Build()
1135 const llvm::StructLayout *BaseLayout = CGM.getDataLayout().getStructLayout( in Build()
1161 if (CGM.getTypes().ConvertType(Field->getType()) != EltInit->getType() || in Build()
1177 EltInit = CGM.EmitConstantExpr(Init, Field->getType(), CGF); in Build()
1505 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM,
1509 static llvm::Constant *EmitNullConstant(CodeGenModule &CGM, in EmitNullConstant() argument
1512 const CGRecordLayout &layout = CGM.getTypes().getCGRecordLayout(record); in EmitNullConstant()
1537 elements[fieldIndex] = EmitNullConstantForBase(CGM, baseType, base); in EmitNullConstant()
1546 elements[fieldIndex] = CGM.EmitNullConstant(Field->getType()); in EmitNullConstant()
1576 elements[fieldIndex] = EmitNullConstantForBase(CGM, baseType, base); in EmitNullConstant()
1590 static llvm::Constant *EmitNullConstantForBase(CodeGenModule &CGM, in EmitNullConstantForBase() argument
1593 const CGRecordLayout &baseLayout = CGM.getTypes().getCGRecordLayout(base); in EmitNullConstantForBase()
1600 return EmitNullConstant(CGM, base, /*asCompleteObject=*/false); in EmitNullConstantForBase()