Lines Matching refs:CGF
328 CodeGenFunction *CGF) { in getParamAddrs() argument
330 Address(CGF->Builder.CreateLoad(CGF->GetAddrOfLocalVar(Args[Ints])), in getParamAddrs()
354 CodeGenFunction &CGF = *this->CGF; in visitArray() local
355 ASTContext &Ctx = CGF.getContext(); in visitArray()
363 llvm::Value *NumElts = CGF.emitArrayLength(AT, BaseEltQT, DstAddr); in visitArray()
368 CGF.Builder.CreateNUWMul(BaseEltSizeVal, NumElts); in visitArray()
369 Address BC = CGF.Builder.CreateBitCast(DstAddr, CGF.CGM.Int8PtrTy); in visitArray()
371 CGF.Builder.CreateInBoundsGEP(CGF.Int8Ty, BC.getPointer(), SizeInBytes); in visitArray()
372 DstArrayEnd = CGF.Builder.CreateBitCast(DstArrayEnd, CGF.CGM.Int8PtrPtrTy, in visitArray()
374 llvm::BasicBlock *PreheaderBB = CGF.Builder.GetInsertBlock(); in visitArray()
377 llvm::BasicBlock *HeaderBB = CGF.createBasicBlock("loop.header"); in visitArray()
378 CGF.EmitBlock(HeaderBB); in visitArray()
382 PHIs[I] = CGF.Builder.CreatePHI(CGF.CGM.Int8PtrPtrTy, 2, "addr.cur"); in visitArray()
387 llvm::BasicBlock *ExitBB = CGF.createBasicBlock("loop.exit"); in visitArray()
388 llvm::BasicBlock *LoopBB = CGF.createBasicBlock("loop.body"); in visitArray()
393 CGF.Builder.CreateICmpEQ(PHIs[DstIdx], DstArrayEnd, "done"); in visitArray()
394 CGF.Builder.CreateCondBr(Done, ExitBB, LoopBB); in visitArray()
397 CGF.EmitBlock(LoopBB); in visitArray()
410 LoopBB = CGF.Builder.GetInsertBlock(); in visitArray()
420 CGF.Builder.CreateBr(HeaderBB); in visitArray()
421 CGF.EmitBlock(ExitBB); in visitArray()
429 Addr = CGF->Builder.CreateBitCast(Addr, CGF->CGM.Int8PtrTy); in getAddrWithOffset()
430 Addr = CGF->Builder.CreateConstInBoundsGEP(Addr, Offset.getQuantity()); in getAddrWithOffset()
431 return CGF->Builder.CreateBitCast(Addr, CGF->CGM.Int8PtrPtrTy); in getAddrWithOffset()
477 CGF->StartFunction(GlobalDecl(), Ctx.VoidTy, F, FI, Args); in getFunction()
478 auto AL = ApplyDebugLocation::CreateArtificial(*CGF); in getFunction()
480 getParamAddrs<N>(std::make_index_sequence<N>{}, Alignments, Args, CGF); in getFunction()
482 CGF->FinishFunction(); in getFunction()
506 void setCGF(CodeGenFunction *F) { CGF = F; } in setCGF()
508 CodeGenFunction *CGF = nullptr; member
528 llvm::ConstantInt::get(this->CGF->SizeTy, Size.getQuantity()); in flushTrivialFields()
530 this->CGF->Builder.CreateElementBitCast(DstAddr, this->CGF->Int8Ty); in flushTrivialFields()
532 this->CGF->Builder.CreateElementBitCast(SrcAddr, this->CGF->Int8Ty); in flushTrivialFields()
533 this->CGF->Builder.CreateMemCpy(DstAddr, SrcAddr, SizeVal, false); in flushTrivialFields()
536 this->CGF->getLLVMContext(), in flushTrivialFields()
537 Size.getQuantity() * this->CGF->getContext().getCharWidth()); in flushTrivialFields()
538 DstAddr = this->CGF->Builder.CreateElementBitCast(DstAddr, Ty); in flushTrivialFields()
539 SrcAddr = this->CGF->Builder.CreateElementBitCast(SrcAddr, Ty); in flushTrivialFields()
540 llvm::Value *SrcVal = this->CGF->Builder.CreateLoad(SrcAddr, false); in flushTrivialFields()
541 this->CGF->Builder.CreateStore(SrcVal, DstAddr, false); in flushTrivialFields()
553 if (FD->isZeroLengthBitField(this->CGF->getContext())) in visitVolatileTrivial()
557 llvm::PointerType *PtrTy = this->CGF->ConvertType(RT)->getPointerTo(); in visitVolatileTrivial()
559 LValue DstBase = this->CGF->MakeAddrLValue( in visitVolatileTrivial()
560 this->CGF->Builder.CreateBitCast(DstAddr, PtrTy), FT); in visitVolatileTrivial()
561 DstLV = this->CGF->EmitLValueForField(DstBase, FD); in visitVolatileTrivial()
563 LValue SrcBase = this->CGF->MakeAddrLValue( in visitVolatileTrivial()
564 this->CGF->Builder.CreateBitCast(SrcAddr, PtrTy), FT); in visitVolatileTrivial()
565 SrcLV = this->CGF->EmitLValueForField(SrcBase, FD); in visitVolatileTrivial()
567 llvm::PointerType *Ty = this->CGF->ConvertTypeForMem(FT)->getPointerTo(); in visitVolatileTrivial()
568 Address DstAddr = this->CGF->Builder.CreateBitCast(Addrs[DstIdx], Ty); in visitVolatileTrivial()
569 Address SrcAddr = this->CGF->Builder.CreateBitCast(Addrs[SrcIdx], Ty); in visitVolatileTrivial()
570 DstLV = this->CGF->MakeAddrLValue(DstAddr, FT); in visitVolatileTrivial()
571 SrcLV = this->CGF->MakeAddrLValue(SrcAddr, FT); in visitVolatileTrivial()
573 RValue SrcVal = this->CGF->EmitLoadOfLValue(SrcLV, SourceLocation()); in visitVolatileTrivial()
574 this->CGF->EmitStoreThroughLValue(SrcVal, DstLV); in visitVolatileTrivial()
598 CGF->destroyARCStrongImprecise( in visitARCStrong()
599 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT); in visitARCStrong()
604 CGF->destroyARCWeak( in visitARCWeak()
605 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT); in visitARCWeak()
610 CGF->callCStructDestructor( in callSpecialFunction()
611 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
639 CGF->EmitNullInitialization( in visitARCStrong()
645 CGF->EmitNullInitialization( in visitARCWeak()
665 llvm::Constant *SizeVal = CGF->Builder.getInt64(Size.getQuantity()); in visitArray()
667 Address Loc = CGF->Builder.CreateElementBitCast(DstAddr, CGF->Int8Ty); in visitArray()
668 CGF->Builder.CreateMemSet(Loc, CGF->Builder.getInt8(0), SizeVal, in visitArray()
674 CGF->callCStructDefaultConstructor( in callSpecialFunction()
675 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
687 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
689 llvm::Value *Val = CGF->EmitARCRetain(QT, SrcVal); in visitARCStrong()
690 CGF->EmitStoreOfScalar(Val, CGF->MakeAddrLValue(Addrs[DstIdx], QT), true); in visitARCStrong()
697 CGF->EmitARCCopyWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
704 CGF->callCStructCopyConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
705 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
717 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
719 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
720 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress(*CGF)), SrcLV); in visitARCStrong()
721 CGF->EmitStoreOfScalar(SrcVal, CGF->MakeAddrLValue(Addrs[DstIdx], QT), in visitARCStrong()
729 CGF->EmitARCMoveWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
736 CGF->callCStructMoveConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
737 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
749 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
751 CGF->EmitARCStoreStrong(CGF->MakeAddrLValue(Addrs[DstIdx], QT), SrcVal, in visitARCStrong()
759 CGF->emitARCCopyAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
766 CGF->callCStructCopyAssignmentOperator( in callSpecialFunction()
767 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
768 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
780 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
782 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
783 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress(*CGF)), SrcLV); in visitARCStrong()
784 LValue DstLV = CGF->MakeAddrLValue(Addrs[DstIdx], QT); in visitARCStrong()
786 CGF->EmitLoadOfLValue(DstLV, SourceLocation()).getScalarVal(); in visitARCStrong()
787 CGF->EmitStoreOfScalar(SrcVal, DstLV); in visitARCStrong()
788 CGF->EmitARCRelease(DstVal, ARCImpreciseLifetime); in visitARCStrong()
795 CGF->emitARCMoveAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
802 CGF->callCStructMoveAssignmentOperator( in callSpecialFunction()
803 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
804 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
810 void CodeGenFunction::destroyNonTrivialCStruct(CodeGenFunction &CGF, in destroyNonTrivialCStruct() argument
812 CGF.callCStructDestructor(CGF.MakeAddrLValue(Addr, Type)); in destroyNonTrivialCStruct()
829 bool IsVolatile, CodeGenFunction &CGF, in callSpecialFunction() argument
831 auto SetArtificialLoc = ApplyDebugLocation::CreateArtificial(CGF); in callSpecialFunction()
833 Addrs[I] = CGF.Builder.CreateBitCast(Addrs[I], CGF.CGM.Int8PtrPtrTy); in callSpecialFunction()
835 Gen.callFunc(FuncName, QT, Addrs, CGF); in callSpecialFunction()