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])...}}; 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 Address BC = CGF.Builder.CreateElementBitCast(DstAddr, CGF.CGM.Int8Ty); in visitArray()
370 CGF.Builder.CreateInBoundsGEP(CGF.Int8Ty, BC.getPointer(), SizeInBytes); in visitArray()
371 DstArrayEnd = CGF.Builder.CreateBitCast( in visitArray()
372 DstArrayEnd, CGF.CGM.Int8PtrPtrTy, "dstarray.end"); in visitArray()
373 llvm::BasicBlock *PreheaderBB = CGF.Builder.GetInsertBlock(); in visitArray()
376 llvm::BasicBlock *HeaderBB = CGF.createBasicBlock("loop.header"); in visitArray()
377 CGF.EmitBlock(HeaderBB); in visitArray()
381 PHIs[I] = CGF.Builder.CreatePHI(CGF.CGM.Int8PtrPtrTy, 2, "addr.cur"); in visitArray()
386 llvm::BasicBlock *ExitBB = CGF.createBasicBlock("loop.exit"); in visitArray()
387 llvm::BasicBlock *LoopBB = CGF.createBasicBlock("loop.body"); in visitArray()
392 CGF.Builder.CreateICmpEQ(PHIs[DstIdx], DstArrayEnd, "done"); in visitArray()
393 CGF.Builder.CreateCondBr(Done, ExitBB, LoopBB); in visitArray()
396 CGF.EmitBlock(LoopBB); in visitArray()
403 Address(PHIs[I], CGF.Int8PtrTy, 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.CreateElementBitCast(Addr, CGF->CGM.Int8Ty); in getAddrWithOffset()
430 Addr = CGF->Builder.CreateConstInBoundsGEP(Addr, Offset.getQuantity()); in getAddrWithOffset()
431 return CGF->Builder.CreateElementBitCast(Addr, CGF->CGM.Int8PtrTy); 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()
505 void setCGF(CodeGenFunction *F) { CGF = F; } in setCGF()
507 CodeGenFunction *CGF = nullptr; member
527 llvm::ConstantInt::get(this->CGF->SizeTy, Size.getQuantity()); in flushTrivialFields()
529 this->CGF->Builder.CreateElementBitCast(DstAddr, this->CGF->Int8Ty); in flushTrivialFields()
531 this->CGF->Builder.CreateElementBitCast(SrcAddr, this->CGF->Int8Ty); in flushTrivialFields()
532 this->CGF->Builder.CreateMemCpy(DstAddr, SrcAddr, SizeVal, false); in flushTrivialFields()
535 this->CGF->getLLVMContext(), in flushTrivialFields()
536 Size.getQuantity() * this->CGF->getContext().getCharWidth()); in flushTrivialFields()
537 DstAddr = this->CGF->Builder.CreateElementBitCast(DstAddr, Ty); in flushTrivialFields()
538 SrcAddr = this->CGF->Builder.CreateElementBitCast(SrcAddr, Ty); in flushTrivialFields()
539 llvm::Value *SrcVal = this->CGF->Builder.CreateLoad(SrcAddr, false); in flushTrivialFields()
540 this->CGF->Builder.CreateStore(SrcVal, DstAddr, false); in flushTrivialFields()
552 if (FD->isZeroLengthBitField(this->CGF->getContext())) in visitVolatileTrivial()
556 llvm::Type *Ty = this->CGF->ConvertType(RT); in visitVolatileTrivial()
558 LValue DstBase = this->CGF->MakeAddrLValue( in visitVolatileTrivial()
559 this->CGF->Builder.CreateElementBitCast(DstAddr, Ty), FT); in visitVolatileTrivial()
560 DstLV = this->CGF->EmitLValueForField(DstBase, FD); in visitVolatileTrivial()
562 LValue SrcBase = this->CGF->MakeAddrLValue( in visitVolatileTrivial()
563 this->CGF->Builder.CreateElementBitCast(SrcAddr, Ty), FT); in visitVolatileTrivial()
564 SrcLV = this->CGF->EmitLValueForField(SrcBase, FD); in visitVolatileTrivial()
566 llvm::Type *Ty = this->CGF->ConvertTypeForMem(FT); in visitVolatileTrivial()
568 this->CGF->Builder.CreateElementBitCast(Addrs[DstIdx], Ty); in visitVolatileTrivial()
570 this->CGF->Builder.CreateElementBitCast(Addrs[SrcIdx], Ty); in visitVolatileTrivial()
571 DstLV = this->CGF->MakeAddrLValue(DstAddr, FT); in visitVolatileTrivial()
572 SrcLV = this->CGF->MakeAddrLValue(SrcAddr, FT); in visitVolatileTrivial()
574 RValue SrcVal = this->CGF->EmitLoadOfLValue(SrcLV, SourceLocation()); in visitVolatileTrivial()
575 this->CGF->EmitStoreThroughLValue(SrcVal, DstLV); in visitVolatileTrivial()
599 CGF->destroyARCStrongImprecise( in visitARCStrong()
600 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT); in visitARCStrong()
605 CGF->destroyARCWeak( in visitARCWeak()
606 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStructOffset, FD), QT); in visitARCWeak()
611 CGF->callCStructDestructor( in callSpecialFunction()
612 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
640 CGF->EmitNullInitialization( in visitARCStrong()
646 CGF->EmitNullInitialization( in visitARCWeak()
666 llvm::Constant *SizeVal = CGF->Builder.getInt64(Size.getQuantity()); in visitArray()
668 Address Loc = CGF->Builder.CreateElementBitCast(DstAddr, CGF->Int8Ty); in visitArray()
669 CGF->Builder.CreateMemSet(Loc, CGF->Builder.getInt8(0), SizeVal, in visitArray()
675 CGF->callCStructDefaultConstructor( in callSpecialFunction()
676 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
688 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
690 llvm::Value *Val = CGF->EmitARCRetain(QT, SrcVal); in visitARCStrong()
691 CGF->EmitStoreOfScalar(Val, CGF->MakeAddrLValue(Addrs[DstIdx], QT), true); in visitARCStrong()
698 CGF->EmitARCCopyWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
705 CGF->callCStructCopyConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
706 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
718 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
720 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
721 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress(*CGF)), SrcLV); in visitARCStrong()
722 CGF->EmitStoreOfScalar(SrcVal, CGF->MakeAddrLValue(Addrs[DstIdx], QT), in visitARCStrong()
730 CGF->EmitARCMoveWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
737 CGF->callCStructMoveConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
738 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
750 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
752 CGF->EmitARCStoreStrong(CGF->MakeAddrLValue(Addrs[DstIdx], QT), SrcVal, in visitARCStrong()
760 CGF->emitARCCopyAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
767 CGF->callCStructCopyAssignmentOperator( in callSpecialFunction()
768 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
769 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
781 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
783 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
784 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress(*CGF)), SrcLV); in visitARCStrong()
785 LValue DstLV = CGF->MakeAddrLValue(Addrs[DstIdx], QT); in visitARCStrong()
787 CGF->EmitLoadOfLValue(DstLV, SourceLocation()).getScalarVal(); in visitARCStrong()
788 CGF->EmitStoreOfScalar(SrcVal, DstLV); in visitARCStrong()
789 CGF->EmitARCRelease(DstVal, ARCImpreciseLifetime); in visitARCStrong()
796 CGF->emitARCMoveAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
803 CGF->callCStructMoveAssignmentOperator( in callSpecialFunction()
804 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
805 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
811 void CodeGenFunction::destroyNonTrivialCStruct(CodeGenFunction &CGF, in destroyNonTrivialCStruct() argument
813 CGF.callCStructDestructor(CGF.MakeAddrLValue(Addr, Type)); in destroyNonTrivialCStruct()
830 bool IsVolatile, CodeGenFunction &CGF, in callSpecialFunction() argument
832 auto SetArtificialLoc = ApplyDebugLocation::CreateArtificial(CGF); in callSpecialFunction()
834 Addrs[I] = CGF.Builder.CreateElementBitCast(Addrs[I], CGF.CGM.Int8PtrTy); in callSpecialFunction()
836 Gen.callFunc(FuncName, QT, Addrs, CGF); in callSpecialFunction()