Lines Matching refs:CGF
37 CodeGenFunction &CGF; member in __anonbbc685050111::AggExprEmitter
44 return CGF.CreateAggTemp(T, "agg.tmp.ensured"); in EnsureSlot()
48 Dest = CGF.CreateAggTemp(T, "agg.tmp.ensured"); in EnsureDest()
62 : CGF(cgf), Builder(CGF.Builder), Dest(Dest), in AggExprEmitter()
93 if (CGF.getLangOpts().getGC() && TypeRequiresGCollection(T)) in needsGC()
105 ApplyDebugLocation DL(CGF, E); in Visit()
110 CGF.ErrorUnsupported(S, "aggregate expression"); in VisitStmt()
117 CGF.EmitCoawaitExpr(*E, Dest, IsResultUnused); in VisitCoawaitExpr()
120 CGF.EmitCoyieldExpr(*E, Dest, IsResultUnused); in VisitCoyieldExpr()
172 CodeGenFunction::CXXDefaultInitExprScope Scope(CGF); in VisitCXXDefaultInitExpr()
188 LValue LV = CGF.EmitPseudoObjectLValue(E); in VisitPseudoObjectExpr()
192 CGF.EmitPseudoObjectRValue(E, EnsureSlot(E->getType())); in VisitPseudoObjectExpr()
200 void VisitCXXThrowExpr(const CXXThrowExpr *E) { CGF.EmitCXXThrowExpr(E); } in VisitCXXThrowExpr()
202 RValue Res = CGF.EmitAtomicExpr(E); in VisitAtomicExpr()
216 LValue LV = CGF.EmitLValue(E); in EmitAggLoadOfLValue()
219 if (LV.getType()->isAtomicType() || CGF.LValueIsSuitableForInlineAtomic(LV)) { in EmitAggLoadOfLValue()
220 CGF.EmitAtomicLoad(LV, E->getExprLoc(), Dest); in EmitAggLoadOfLValue()
268 RetAddr = CGF.CreateMemTemp(RetTy, "tmp", &RetAllocaAddr); in withReturnValueSlot()
270 CGF.CGM.getDataLayout().getTypeAllocSize(CGF.ConvertTypeForMem(RetTy)); in withReturnValueSlot()
271 LifetimeSizePtr = CGF.EmitLifetimeStart(Size, RetAllocaAddr.getPointer()); in withReturnValueSlot()
279 CGF.pushFullExprCleanup<CodeGenFunction::CallLifetimeEnd>( in withReturnValueSlot()
281 LifetimeEndBlock = CGF.EHStack.stable_begin(); in withReturnValueSlot()
289 CGF.pushDestroy(RetTy.isDestructedType(), Src.getAggregateAddress(), RetTy); in withReturnValueSlot()
301 CGF.DeactivateCleanupBlock(LifetimeEndBlock, LifetimeStartInst); in withReturnValueSlot()
302 CGF.EmitLifetimeEnd(LifetimeSizePtr, RetAllocaAddr.getPointer()); in withReturnValueSlot()
309 LValue srcLV = CGF.MakeAddrLValue(src.getAggregateAddress(), type); in EmitFinalDestCopy()
324 LValue DstLV = CGF.MakeAddrLValue( in EmitFinalDestCopy()
330 CGF.callCStructMoveAssignmentOperator(DstLV, src); in EmitFinalDestCopy()
332 CGF.callCStructMoveConstructor(DstLV, src); in EmitFinalDestCopy()
338 CGF.callCStructCopyAssignmentOperator(DstLV, src); in EmitFinalDestCopy()
340 CGF.callCStructCopyConstructor(DstLV, src); in EmitFinalDestCopy()
359 CharUnits sz = dest.getPreferredSize(CGF.getContext(), type); in EmitCopy()
360 llvm::Value *size = llvm::ConstantInt::get(CGF.SizeTy, sz.getQuantity()); in EmitCopy()
361 CGF.CGM.getObjCRuntime().EmitGCMemmoveCollectable(CGF, in EmitCopy()
371 LValue DestLV = CGF.MakeAddrLValue(dest.getAddress(), type); in EmitCopy()
372 LValue SrcLV = CGF.MakeAddrLValue(src.getAddress(), type); in EmitCopy()
373 CGF.EmitAggregateCopy(DestLV, SrcLV, type, dest.mayOverlap(), in EmitCopy()
383 ASTContext &Ctx = CGF.getContext(); in VisitCXXStdInitializerListExpr()
384 LValue Array = CGF.EmitLValue(E->getSubExpr()); in VisitCXXStdInitializerListExpr()
396 CGF.ErrorUnsupported(E, "weird std::initializer_list"); in VisitCXXStdInitializerListExpr()
404 CGF.ErrorUnsupported(E, "weird std::initializer_list"); in VisitCXXStdInitializerListExpr()
409 LValue DestLV = CGF.MakeAddrLValue(Dest.getAddress(), E->getType()); in VisitCXXStdInitializerListExpr()
410 LValue Start = CGF.EmitLValueForFieldInitialization(DestLV, *Field); in VisitCXXStdInitializerListExpr()
411 llvm::Value *Zero = llvm::ConstantInt::get(CGF.PtrDiffTy, 0); in VisitCXXStdInitializerListExpr()
415 CGF.EmitStoreThroughLValue(RValue::get(ArrayStart), Start); in VisitCXXStdInitializerListExpr()
419 CGF.ErrorUnsupported(E, "weird std::initializer_list"); in VisitCXXStdInitializerListExpr()
424 LValue EndOrLength = CGF.EmitLValueForFieldInitialization(DestLV, *Field); in VisitCXXStdInitializerListExpr()
432 CGF.EmitStoreThroughLValue(RValue::get(ArrayEnd), EndOrLength); in VisitCXXStdInitializerListExpr()
435 CGF.EmitStoreThroughLValue(RValue::get(Size), EndOrLength); in VisitCXXStdInitializerListExpr()
437 CGF.ErrorUnsupported(E, "weird std::initializer_list"); in VisitCXXStdInitializerListExpr()
474 CGF.getContext().getAsArrayType(ArrayQTy)->getElementType(); in EmitArrayInit()
478 llvm::Value *zero = llvm::ConstantInt::get(CGF.SizeTy, 0); in EmitArrayInit()
483 CharUnits elementSize = CGF.getContext().getTypeSizeInChars(elementType); in EmitArrayInit()
491 elementType.isTriviallyCopyableType(CGF.getContext())) { in EmitArrayInit()
492 CodeGen::CodeGenModule &CGM = CGF.CGM; in EmitArrayInit()
505 EmitFinalDestCopy(ArrayQTy, CGF.MakeAddrLValue(GV, ArrayQTy, Align)); in EmitArrayInit()
517 if (CGF.needsEHCleanup(dtorKind)) { in EmitArrayInit()
522 endOfInit = CGF.CreateTempAlloca(begin->getType(), CGF.getPointerAlign(), in EmitArrayInit()
525 CGF.pushIrregularPartialArrayCleanup(begin, endOfInit, elementType, in EmitArrayInit()
527 CGF.getDestroyer(dtorKind)); in EmitArrayInit()
528 cleanup = CGF.EHStack.stable_begin(); in EmitArrayInit()
535 llvm::Value *one = llvm::ConstantInt::get(CGF.SizeTy, 1); in EmitArrayInit()
557 CGF.MakeAddrLValue(Address(element, elementAlign), elementType); in EmitArrayInit()
570 CGF.getTypes().isZeroInitializable(elementType))) { in EmitArrayInit()
583 llvm::ConstantInt::get(CGF.SizeTy, NumArrayElements), in EmitArrayInit()
587 llvm::BasicBlock *bodyBB = CGF.createBasicBlock("arrayinit.body"); in EmitArrayInit()
590 CGF.EmitBlock(bodyBB); in EmitArrayInit()
602 CodeGenFunction::RunCleanupsScope CleanupsScope(CGF); in EmitArrayInit()
604 CGF.MakeAddrLValue(Address(currentElement, elementAlign), elementType); in EmitArrayInit()
621 llvm::BasicBlock *endBB = CGF.createBasicBlock("arrayinit.end"); in EmitArrayInit()
625 CGF.EmitBlock(endBB); in EmitArrayInit()
629 if (dtorKind) CGF.DeactivateCleanupBlock(cleanup, cleanupDominator); in EmitArrayInit()
645 EmitFinalDestCopy(e->getType(), CGF.getOrCreateOpaqueLValueMapping(e)); in VisitOpaqueValueExpr()
651 E->getType().isPODType(CGF.getContext())) { in VisitCompoundLiteralExpr()
659 CGF.EmitAggExpr(E->getInitializer(), Slot); in VisitCompoundLiteralExpr()
679 CGF.CGM.EmitExplicitCastExprType(ECE, &CGF); in VisitCastExpr()
684 LValue LV = CGF.EmitCheckedLValue(E->getSubExpr(), in VisitCastExpr()
688 CGF.EmitDynamicCast(LV.getAddress(), cast<CXXDynamicCastExpr>(E)); in VisitCastExpr()
690 CGF.CGM.ErrorUnsupported(E, "non-simple lvalue dynamic_cast"); in VisitCastExpr()
693 CGF.CGM.ErrorUnsupported(E, "lvalue dynamic_cast with a destination"); in VisitCastExpr()
700 CGF.EmitAnyExpr(E->getSubExpr(), AggValueSlot::ignored(), in VisitCastExpr()
708 Builder.CreateElementBitCast(Dest.getAddress(), CGF.ConvertType(Ty)); in VisitCastExpr()
710 CGF.MakeAddrLValue(CastPtr, Ty)); in VisitCastExpr()
731 assert(CGF.getContext().hasSameUnqualifiedType(valueType, in VisitCastExpr()
736 if (Dest.isIgnored() || !CGF.CGM.isPaddedAtomicType(atomicType)) { in VisitCastExpr()
745 assert(CGF.getContext().hasSameUnqualifiedType(op->getType(), in VisitCastExpr()
755 if (!valueDest.isIgnored() && CGF.CGM.isPaddedAtomicType(atomicType)) { in VisitCastExpr()
759 CGF.EmitNullInitialization(Dest.getAddress(), atomicType); in VisitCastExpr()
763 CGF.Builder.CreateStructGEP(valueDest.getAddress(), 0, in VisitCastExpr()
774 CGF.EmitAggExpr(E->getSubExpr(), valueDest); in VisitCastExpr()
781 CGF.CreateAggTemp(atomicType, "atomic-to-nonatomic.temp"); in VisitCastExpr()
782 CGF.EmitAggExpr(E->getSubExpr(), atomicSlot); in VisitCastExpr()
803 assert(CGF.getContext().hasSameUnqualifiedType(E->getSubExpr()->getType(), in VisitCastExpr()
864 if (E->getCallReturnType(CGF.getContext())->isReferenceType()) { in VisitCallExpr()
870 return CGF.EmitCallExpr(E, Slot); in VisitCallExpr()
876 return CGF.EmitObjCMessageExpr(E, Slot); in VisitObjCMessageExpr()
881 CGF.EmitIgnoredExpr(E->getLHS()); in VisitBinComma()
886 CodeGenFunction::StmtExprEvaluation eval(CGF); in VisitStmtExpr()
887 CGF.EmitCompoundStmt(*E->getSubStmt(), true, Dest); in VisitStmtExpr()
896 static llvm::Value *EmitCompare(CGBuilderTy &Builder, CodeGenFunction &CGF, in EmitCompare() argument
907 return CGF.CGM.getCXXABI().EmitMemberPointerComparison( in EmitCompare()
908 CGF, LHS, RHS, MPT, /*IsInequality*/ false); in EmitCompare()
950 assert(CGF.getContext().hasSameType(E->getLHS()->getType(), in VisitBinCmp()
953 CGF.getContext().CompCategories.getInfoForType(E->getType()); in VisitBinCmp()
961 return CGF.ErrorUnsupported( in VisitBinCmp()
966 return CGF.ErrorUnsupported(E, "aggregate three-way comparison"); in VisitBinCmp()
972 RValue RV = CGF.EmitAnyExpr(E); in VisitBinCmp()
984 Value *Cmp = EmitCompare(Builder, CGF, E, LHSValues.first, RHSValues.first, in VisitBinCmp()
989 Value *CmpImag = EmitCompare(Builder, CGF, E, LHSValues.second, in VisitBinCmp()
1023 LValue DestLV = CGF.MakeAddrLValue(Dest.getAddress(), E->getType()); in VisitBinCmp()
1027 LValue FieldLV = CGF.EmitLValueForFieldInitialization( in VisitBinCmp()
1029 CGF.EmitStoreThroughLValue(RValue::get(Select), FieldLV, /*IsInit*/ true); in VisitBinCmp()
1038 CGF.ErrorUnsupported(E, "aggregate binary expression"); in VisitBinaryOperator()
1043 LValue LV = CGF.EmitPointerToDataMemberBinaryExpr(E); in VisitPointerToDataMemberBinaryOperator()
1116 assert(CGF.getContext().hasSameUnqualifiedType(E->getLHS()->getType(), in VisitBinAssign()
1125 E->getRHS()->HasSideEffects(CGF.getContext())) { in VisitBinAssign()
1131 LValue LHS = CGF.EmitCheckedLValue(E->getLHS(), CodeGenFunction::TCK_Store); in VisitBinAssign()
1135 CGF.LValueIsSuitableForInlineAtomic(LHS)) { in VisitBinAssign()
1136 CGF.EmitAtomicStore(Dest.asRValue(), LHS, /*isInit*/ false); in VisitBinAssign()
1149 LValue LHS = CGF.EmitLValue(E->getLHS()); in VisitBinAssign()
1154 CGF.LValueIsSuitableForInlineAtomic(LHS)) { in VisitBinAssign()
1157 CGF.EmitAtomicStore(Dest.asRValue(), LHS, /*isInit*/ false); in VisitBinAssign()
1169 CGF.hasVolatileMember(E->getLHS()->getType())) in VisitBinAssign()
1172 CGF.EmitAggExpr(E->getRHS(), LHSSlot); in VisitBinAssign()
1180 llvm::BasicBlock *LHSBlock = CGF.createBasicBlock("cond.true"); in VisitAbstractConditionalOperator()
1181 llvm::BasicBlock *RHSBlock = CGF.createBasicBlock("cond.false"); in VisitAbstractConditionalOperator()
1182 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("cond.end"); in VisitAbstractConditionalOperator()
1185 CodeGenFunction::OpaqueValueMapping binding(CGF, E); in VisitAbstractConditionalOperator()
1187 CodeGenFunction::ConditionalEvaluation eval(CGF); in VisitAbstractConditionalOperator()
1188 CGF.EmitBranchOnBoolExpr(E->getCond(), LHSBlock, RHSBlock, in VisitAbstractConditionalOperator()
1189 CGF.getProfileCount(E)); in VisitAbstractConditionalOperator()
1194 eval.begin(CGF); in VisitAbstractConditionalOperator()
1195 CGF.EmitBlock(LHSBlock); in VisitAbstractConditionalOperator()
1196 CGF.incrementProfileCounter(E); in VisitAbstractConditionalOperator()
1198 eval.end(CGF); in VisitAbstractConditionalOperator()
1200 assert(CGF.HaveInsertPoint() && "expression evaluation ended with no IP!"); in VisitAbstractConditionalOperator()
1201 CGF.Builder.CreateBr(ContBlock); in VisitAbstractConditionalOperator()
1209 eval.begin(CGF); in VisitAbstractConditionalOperator()
1210 CGF.EmitBlock(RHSBlock); in VisitAbstractConditionalOperator()
1212 eval.end(CGF); in VisitAbstractConditionalOperator()
1214 CGF.EmitBlock(ContBlock); in VisitAbstractConditionalOperator()
1223 Address ArgPtr = CGF.EmitVAArg(VE, ArgValue); in VisitVAArgExpr()
1227 CGF.ErrorUnsupported(VE, "aggregate va_arg expression"); in VisitVAArgExpr()
1231 EmitFinalDestCopy(VE->getType(), CGF.MakeAddrLValue(ArgPtr, VE->getType())); in VisitVAArgExpr()
1247 CGF.EmitCXXTemporary(E->getTemporary(), E->getType(), Dest.getAddress()); in VisitCXXBindTemporaryExpr()
1253 CGF.EmitCXXConstructExpr(E, Slot); in VisitCXXConstructExpr()
1259 CGF.EmitInheritedCXXConstructorCall( in VisitCXXInheritedCtorInitExpr()
1267 CGF.EmitLambdaExpr(E, Slot); in VisitLambdaExpr()
1271 CGF.enterFullExpression(E); in VisitExprWithCleanups()
1272 CodeGenFunction::RunCleanupsScope cleanups(CGF); in VisitExprWithCleanups()
1279 EmitNullInitializationToLValue(CGF.MakeAddrLValue(Slot.getAddress(), T)); in VisitCXXScalarValueInitExpr()
1285 EmitNullInitializationToLValue(CGF.MakeAddrLValue(Slot.getAddress(), T)); in VisitImplicitValueInitExpr()
1291 static bool isSimpleZero(const Expr *E, CodeGenFunction &CGF) { in isSimpleZero() argument
1302 CGF.getTypes().isZeroInitializable(E->getType())) in isSimpleZero()
1307 CGF.getTypes().isPointerZeroInitializable(E->getType()); in isSimpleZero()
1322 if (Dest.isZeroed() && isSimpleZero(E, CGF)) { in EmitInitializationToLValue()
1331 RValue RV = CGF.EmitReferenceBindingToExpr(E); in EmitInitializationToLValue()
1332 return CGF.EmitStoreThroughLValue(RV, LV); in EmitInitializationToLValue()
1335 switch (CGF.getEvaluationKind(type)) { in EmitInitializationToLValue()
1337 CGF.EmitComplexExprIntoLValue(E, LV, /*isInit*/ true); in EmitInitializationToLValue()
1340 CGF.EmitAggExpr(E, AggValueSlot::forLValue(LV, in EmitInitializationToLValue()
1349 CGF.EmitScalarInit(E, /*D=*/nullptr, LV, /*Captured=*/false); in EmitInitializationToLValue()
1351 CGF.EmitStoreThroughLValue(RValue::get(CGF.EmitScalarExpr(E)), LV); in EmitInitializationToLValue()
1363 if (Dest.isZeroed() && CGF.getTypes().isZeroInitializable(type)) in EmitNullInitializationToLValue()
1366 if (CGF.hasScalarEvaluationKind(type)) { in EmitNullInitializationToLValue()
1368 llvm::Value *null = CGF.CGM.EmitNullConstant(type); in EmitNullInitializationToLValue()
1372 CGF.EmitStoreThroughBitfieldLValue(RValue::get(null), lv); in EmitNullInitializationToLValue()
1375 CGF.EmitStoreOfScalar(null, lv, /* isInitialization */ true); in EmitNullInitializationToLValue()
1381 CGF.EmitNullInitialization(lv.getAddress(), lv.getType()); in EmitNullInitializationToLValue()
1392 if (llvm::Constant* C = CGF.CGM.EmitConstantExpr(E, E->getType(), &CGF)) { in VisitInitListExpr()
1394 new llvm::GlobalVariable(CGF.CGM.getModule(), C->getType(), true, in VisitInitListExpr()
1396 EmitFinalDestCopy(E->getType(), CGF.MakeAddrLValue(GV, E->getType())); in VisitInitListExpr()
1401 CGF.ErrorUnsupported(E, "GNU array range designator extension"); in VisitInitListExpr()
1408 LValue DestLV = CGF.MakeAddrLValue(Dest.getAddress(), E->getType()); in VisitInitListExpr()
1440 Address V = CGF.GetAddressOfDirectBaseInCompleteClass( in VisitInitListExpr()
1448 CGF.overlapForBaseInit(CXXRD, BaseRD, Base.isVirtual())); in VisitInitListExpr()
1449 CGF.EmitAggExpr(E->getInit(curInitIndex++), AggSlot); in VisitInitListExpr()
1453 CGF.pushDestroy(dtorKind, V, Base.getType()); in VisitInitListExpr()
1454 cleanups.push_back(CGF.EHStack.stable_begin()); in VisitInitListExpr()
1460 CodeGenFunction::FieldConstructionScope FCS(CGF, Dest.getAddress()); in VisitInitListExpr()
1480 LValue FieldLoc = CGF.EmitLValueForFieldInitialization(DestLV, Field); in VisitInitListExpr()
1507 CGF.getTypes().isZeroInitializable(E->getType())) in VisitInitListExpr()
1511 LValue LV = CGF.EmitLValueForFieldInitialization(DestLV, field); in VisitInitListExpr()
1530 if (CGF.needsEHCleanup(dtorKind)) { in VisitInitListExpr()
1532 cleanupDominator = CGF.Builder.CreateAlignedLoad( in VisitInitListExpr()
1533 CGF.Int8Ty, in VisitInitListExpr()
1534 llvm::Constant::getNullValue(CGF.Int8PtrTy), in VisitInitListExpr()
1537 CGF.pushDestroy(EHCleanup, LV.getAddress(), field->getType(), in VisitInitListExpr()
1538 CGF.getDestroyer(dtorKind), false); in VisitInitListExpr()
1539 cleanups.push_back(CGF.EHStack.stable_begin()); in VisitInitListExpr()
1556 CGF.DeactivateCleanupBlock(cleanups[i-1], cleanupDominator); in VisitInitListExpr()
1566 CodeGenFunction::OpaqueValueMapping binding(CGF, E->getCommonExpr()); in VisitArrayInitLoopExpr()
1575 llvm::Value *zero = llvm::ConstantInt::get(CGF.SizeTy, 0); in VisitArrayInitLoopExpr()
1587 CGF.getContext().getAsArrayType(E->getType())->getElementType(); in VisitArrayInitLoopExpr()
1588 CharUnits elementSize = CGF.getContext().getTypeSizeInChars(elementType); in VisitArrayInitLoopExpr()
1593 llvm::BasicBlock *bodyBB = CGF.createBasicBlock("arrayinit.body"); in VisitArrayInitLoopExpr()
1596 CGF.EmitBlock(bodyBB); in VisitArrayInitLoopExpr()
1605 if (CGF.needsEHCleanup(dtorKind) && !InnerLoop) { in VisitArrayInitLoopExpr()
1608 CGF.pushRegularPartialArrayCleanup(outerBegin, element, elementType, in VisitArrayInitLoopExpr()
1610 CGF.getDestroyer(dtorKind)); in VisitArrayInitLoopExpr()
1611 cleanup = CGF.EHStack.stable_begin(); in VisitArrayInitLoopExpr()
1620 CodeGenFunction::RunCleanupsScope CleanupsScope(CGF); in VisitArrayInitLoopExpr()
1621 CodeGenFunction::ArrayInitLoopExprScope Scope(CGF, index); in VisitArrayInitLoopExpr()
1623 CGF.MakeAddrLValue(Address(element, elementAlign), elementType); in VisitArrayInitLoopExpr()
1632 AggExprEmitter(CGF, elementSlot, false) in VisitArrayInitLoopExpr()
1640 index, llvm::ConstantInt::get(CGF.SizeTy, 1), "arrayinit.next"); in VisitArrayInitLoopExpr()
1645 nextIndex, llvm::ConstantInt::get(CGF.SizeTy, numElements), in VisitArrayInitLoopExpr()
1647 llvm::BasicBlock *endBB = CGF.createBasicBlock("arrayinit.end"); in VisitArrayInitLoopExpr()
1650 CGF.EmitBlock(endBB); in VisitArrayInitLoopExpr()
1654 CGF.DeactivateCleanupBlock(cleanup, index); in VisitArrayInitLoopExpr()
1660 LValue DestLV = CGF.MakeAddrLValue(Dest.getAddress(), E->getType()); in VisitDesignatedInitUpdateExpr()
1672 static CharUnits GetNumNonZeroBytesInInit(const Expr *E, CodeGenFunction &CGF) { in GetNumNonZeroBytesInInit() argument
1676 if (isSimpleZero(E, CGF)) return CharUnits::Zero(); in GetNumNonZeroBytesInInit()
1683 if (!ILE || !CGF.getTypes().isZeroInitializable(ILE->getType())) in GetNumNonZeroBytesInInit()
1684 return CGF.getContext().getTypeSizeInChars(E->getType()); in GetNumNonZeroBytesInInit()
1698 GetNumNonZeroBytesInInit(ILE->getInit(ILEElement++), CGF); in GetNumNonZeroBytesInInit()
1712 NumNonZeroBytes += CGF.getContext().toCharUnitsFromBits( in GetNumNonZeroBytesInInit()
1713 CGF.getTarget().getPointerWidth(0)); in GetNumNonZeroBytesInInit()
1715 NumNonZeroBytes += GetNumNonZeroBytesInInit(E, CGF); in GetNumNonZeroBytesInInit()
1725 NumNonZeroBytes += GetNumNonZeroBytesInInit(ILE->getInit(i), CGF); in GetNumNonZeroBytesInInit()
1733 CodeGenFunction &CGF) { in CheckAggExprForMemSetUse() argument
1740 if (CGF.getLangOpts().CPlusPlus) in CheckAggExprForMemSetUse()
1741 if (const RecordType *RT = CGF.getContext() in CheckAggExprForMemSetUse()
1749 CharUnits Size = Slot.getPreferredSize(CGF.getContext(), E->getType()); in CheckAggExprForMemSetUse()
1755 CharUnits NumNonZeroBytes = GetNumNonZeroBytesInInit(E, CGF); in CheckAggExprForMemSetUse()
1760 llvm::Constant *SizeVal = CGF.Builder.getInt64(Size.getQuantity()); in CheckAggExprForMemSetUse()
1763 Loc = CGF.Builder.CreateElementBitCast(Loc, CGF.Int8Ty); in CheckAggExprForMemSetUse()
1764 CGF.Builder.CreateMemSet(Loc, CGF.Builder.getInt8(0), SizeVal, false); in CheckAggExprForMemSetUse()