Lines Matching refs:CGF

327                                             CodeGenFunction *CGF) {  in getParamAddrs()  argument
329 {Address(CGF->Builder.CreateLoad(CGF->GetAddrOfLocalVar(Args[Ints])), in getParamAddrs()
330 CGF->VoidPtrTy, Alignments[Ints], KnownNonNull)...}}; in getParamAddrs()
353 CodeGenFunction &CGF = *this->CGF; in visitArray() local
354 ASTContext &Ctx = CGF.getContext(); in visitArray()
362 llvm::Value *NumElts = CGF.emitArrayLength(AT, BaseEltQT, DstAddr); in visitArray()
367 CGF.Builder.CreateNUWMul(BaseEltSizeVal, NumElts); in visitArray()
368 llvm::Value *DstArrayEnd = CGF.Builder.CreateInBoundsGEP( in visitArray()
369 CGF.Int8Ty, DstAddr.emitRawPointer(CGF), SizeInBytes); in visitArray()
370 llvm::BasicBlock *PreheaderBB = CGF.Builder.GetInsertBlock(); in visitArray()
373 llvm::BasicBlock *HeaderBB = CGF.createBasicBlock("loop.header"); in visitArray()
374 CGF.EmitBlock(HeaderBB); in visitArray()
378 PHIs[I] = CGF.Builder.CreatePHI(CGF.CGM.Int8PtrPtrTy, 2, "addr.cur"); in visitArray()
379 PHIs[I]->addIncoming(StartAddrs[I].emitRawPointer(CGF), PreheaderBB); in visitArray()
383 llvm::BasicBlock *ExitBB = CGF.createBasicBlock("loop.exit"); in visitArray()
384 llvm::BasicBlock *LoopBB = CGF.createBasicBlock("loop.body"); in visitArray()
389 CGF.Builder.CreateICmpEQ(PHIs[DstIdx], DstArrayEnd, "done"); in visitArray()
390 CGF.Builder.CreateCondBr(Done, ExitBB, LoopBB); in visitArray()
393 CGF.EmitBlock(LoopBB); in visitArray()
400 Address(PHIs[I], CGF.Int8PtrTy, in visitArray()
407 LoopBB = CGF.Builder.GetInsertBlock(); in visitArray()
413 PHIs[I]->addIncoming(NewAddrs[I].emitRawPointer(CGF), LoopBB); in visitArray()
417 CGF.Builder.CreateBr(HeaderBB); in visitArray()
418 CGF.EmitBlock(ExitBB); in visitArray()
426 Addr = Addr.withElementType(CGF->CGM.Int8Ty); in getAddrWithOffset()
427 Addr = CGF->Builder.CreateConstInBoundsGEP(Addr, Offset.getQuantity()); in getAddrWithOffset()
428 return Addr.withElementType(CGF->CGM.Int8PtrTy); in getAddrWithOffset()
474 CGF->StartFunction(GlobalDecl(), Ctx.VoidTy, F, FI, Args); in getFunction()
475 auto AL = ApplyDebugLocation::CreateArtificial(*CGF); in getFunction()
477 getParamAddrs<N>(std::make_index_sequence<N>{}, Alignments, Args, CGF); in getFunction()
479 CGF->FinishFunction(); in getFunction()
501 void setCGF(CodeGenFunction *F) { CGF = F; } in setCGF()
503 CodeGenFunction *CGF = nullptr; member
524 llvm::ConstantInt::get(this->CGF->SizeTy, Size.getQuantity()); in flushTrivialFields()
525 DstAddr = DstAddr.withElementType(this->CGF->Int8Ty); in flushTrivialFields()
526 SrcAddr = SrcAddr.withElementType(this->CGF->Int8Ty); in flushTrivialFields()
527 this->CGF->Builder.CreateMemCpy(DstAddr, SrcAddr, SizeVal, false); in flushTrivialFields()
530 this->CGF->getLLVMContext(), in flushTrivialFields()
531 Size.getQuantity() * this->CGF->getContext().getCharWidth()); in flushTrivialFields()
534 llvm::Value *SrcVal = this->CGF->Builder.CreateLoad(SrcAddr, false); in flushTrivialFields()
535 this->CGF->Builder.CreateStore(SrcVal, DstAddr, false); in flushTrivialFields()
547 if (FD->isZeroLengthBitField(this->CGF->getContext())) in visitVolatileTrivial()
551 llvm::Type *Ty = this->CGF->ConvertType(RT); in visitVolatileTrivial()
554 this->CGF->MakeAddrLValue(DstAddr.withElementType(Ty), FT); in visitVolatileTrivial()
555 DstLV = this->CGF->EmitLValueForField(DstBase, FD); in visitVolatileTrivial()
558 this->CGF->MakeAddrLValue(SrcAddr.withElementType(Ty), FT); in visitVolatileTrivial()
559 SrcLV = this->CGF->EmitLValueForField(SrcBase, FD); in visitVolatileTrivial()
561 llvm::Type *Ty = this->CGF->ConvertTypeForMem(FT); in visitVolatileTrivial()
564 DstLV = this->CGF->MakeAddrLValue(DstAddr, FT); in visitVolatileTrivial()
565 SrcLV = this->CGF->MakeAddrLValue(SrcAddr, FT); in visitVolatileTrivial()
567 RValue SrcVal = this->CGF->EmitLoadOfLValue(SrcLV, SourceLocation()); in visitVolatileTrivial()
568 this->CGF->EmitStoreThroughLValue(SrcVal, DstLV); in visitVolatileTrivial()
592 CGF->destroyARCStrongImprecise( in visitARCStrong()
593 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT); in visitARCStrong()
598 CGF->destroyARCWeak( in visitARCWeak()
599 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT); in visitARCWeak()
604 CGF->callCStructDestructor( in callSpecialFunction()
605 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
633 CGF->EmitNullInitialization( in visitARCStrong()
639 CGF->EmitNullInitialization( in visitARCWeak()
659 llvm::Constant *SizeVal = CGF->Builder.getInt64(Size.getQuantity()); in visitArray()
661 Address Loc = DstAddr.withElementType(CGF->Int8Ty); in visitArray()
662 CGF->Builder.CreateMemSet(Loc, CGF->Builder.getInt8(0), SizeVal, in visitArray()
668 CGF->callCStructDefaultConstructor( in callSpecialFunction()
669 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
681 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
683 llvm::Value *Val = CGF->EmitARCRetain(QT, SrcVal); in visitARCStrong()
684 CGF->EmitStoreOfScalar(Val, CGF->MakeAddrLValue(Addrs[DstIdx], QT), true); in visitARCStrong()
691 CGF->EmitARCCopyWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
698 CGF->callCStructCopyConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
699 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
711 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
713 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
714 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress()), SrcLV); in visitARCStrong()
715 CGF->EmitStoreOfScalar(SrcVal, CGF->MakeAddrLValue(Addrs[DstIdx], QT), in visitARCStrong()
723 CGF->EmitARCMoveWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
730 CGF->callCStructMoveConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
731 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
743 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
745 CGF->EmitARCStoreStrong(CGF->MakeAddrLValue(Addrs[DstIdx], QT), SrcVal, in visitARCStrong()
753 CGF->emitARCCopyAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
760 CGF->callCStructCopyAssignmentOperator( in callSpecialFunction()
761 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
762 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
774 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
776 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
777 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress()), SrcLV); in visitARCStrong()
778 LValue DstLV = CGF->MakeAddrLValue(Addrs[DstIdx], QT); in visitARCStrong()
780 CGF->EmitLoadOfLValue(DstLV, SourceLocation()).getScalarVal(); in visitARCStrong()
781 CGF->EmitStoreOfScalar(SrcVal, DstLV); in visitARCStrong()
782 CGF->EmitARCRelease(DstVal, ARCImpreciseLifetime); in visitARCStrong()
789 CGF->emitARCMoveAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
796 CGF->callCStructMoveAssignmentOperator( in callSpecialFunction()
797 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
798 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
804 void CodeGenFunction::destroyNonTrivialCStruct(CodeGenFunction &CGF, in destroyNonTrivialCStruct() argument
806 CGF.callCStructDestructor(CGF.MakeAddrLValue(Addr, Type)); in destroyNonTrivialCStruct()
822 bool IsVolatile, CodeGenFunction &CGF, in callSpecialFunction() argument
824 auto SetArtificialLoc = ApplyDebugLocation::CreateArtificial(CGF); in callSpecialFunction()
826 Addrs[I] = Addrs[I].withElementType(CGF.CGM.Int8PtrTy); in callSpecialFunction()
828 Gen.callFunc(FuncName, QT, Addrs, CGF); in callSpecialFunction()