Lines Matching refs:CGF

341     CodeGenFunction &CGF = *this->CGF;  in visitArray()  local
342 ASTContext &Ctx = CGF.getContext(); in visitArray()
350 llvm::Value *NumElts = CGF.emitArrayLength(AT, BaseEltQT, DstAddr); in visitArray()
355 CGF.Builder.CreateNUWMul(BaseEltSizeVal, NumElts); in visitArray()
356 Address BC = CGF.Builder.CreateBitCast(DstAddr, CGF.CGM.Int8PtrTy); in visitArray()
358 CGF.Builder.CreateInBoundsGEP(BC.getPointer(), SizeInBytes); in visitArray()
359 DstArrayEnd = CGF.Builder.CreateBitCast(DstArrayEnd, CGF.CGM.Int8PtrPtrTy, in visitArray()
361 llvm::BasicBlock *PreheaderBB = CGF.Builder.GetInsertBlock(); in visitArray()
364 llvm::BasicBlock *HeaderBB = CGF.createBasicBlock("loop.header"); in visitArray()
365 CGF.EmitBlock(HeaderBB); in visitArray()
369 PHIs[I] = CGF.Builder.CreatePHI(CGF.CGM.Int8PtrPtrTy, 2, "addr.cur"); in visitArray()
374 llvm::BasicBlock *ExitBB = CGF.createBasicBlock("loop.exit"); in visitArray()
375 llvm::BasicBlock *LoopBB = CGF.createBasicBlock("loop.body"); in visitArray()
380 CGF.Builder.CreateICmpEQ(PHIs[DstIdx], DstArrayEnd, "done"); in visitArray()
381 CGF.Builder.CreateCondBr(Done, ExitBB, LoopBB); in visitArray()
384 CGF.EmitBlock(LoopBB); in visitArray()
397 LoopBB = CGF.Builder.GetInsertBlock(); in visitArray()
407 CGF.Builder.CreateBr(HeaderBB); in visitArray()
408 CGF.EmitBlock(ExitBB); in visitArray()
416 Addr = CGF->Builder.CreateBitCast(Addr, CGF->CGM.Int8PtrTy); in getAddrWithOffset()
417 Addr = CGF->Builder.CreateConstInBoundsGEP(Addr, Offset.getQuantity(), in getAddrWithOffset()
419 return CGF->Builder.CreateBitCast(Addr, CGF->CGM.Int8PtrPtrTy); in getAddrWithOffset()
470 CGF->StartFunction(FD, Ctx.VoidTy, F, FI, Args); in getFunction()
473 llvm::Value *V = CGF->Builder.CreateLoad(CGF->GetAddrOfLocalVar(Args[I])); in getFunction()
478 CGF->FinishFunction(); in getFunction()
502 void setCGF(CodeGenFunction *F) { CGF = F; } in setCGF()
504 CodeGenFunction *CGF = nullptr; member
524 llvm::ConstantInt::get(this->CGF->SizeTy, Size.getQuantity()); in flushTrivialFields()
526 this->CGF->Builder.CreateElementBitCast(DstAddr, this->CGF->Int8Ty); in flushTrivialFields()
528 this->CGF->Builder.CreateElementBitCast(SrcAddr, this->CGF->Int8Ty); in flushTrivialFields()
529 this->CGF->Builder.CreateMemCpy(DstAddr, SrcAddr, SizeVal, false); in flushTrivialFields()
532 this->CGF->getLLVMContext(), in flushTrivialFields()
533 Size.getQuantity() * this->CGF->getContext().getCharWidth()); in flushTrivialFields()
534 DstAddr = this->CGF->Builder.CreateElementBitCast(DstAddr, Ty); in flushTrivialFields()
535 SrcAddr = this->CGF->Builder.CreateElementBitCast(SrcAddr, Ty); in flushTrivialFields()
536 llvm::Value *SrcVal = this->CGF->Builder.CreateLoad(SrcAddr, false); in flushTrivialFields()
537 this->CGF->Builder.CreateStore(SrcVal, DstAddr, false); in flushTrivialFields()
549 llvm::PointerType *PtrTy = this->CGF->ConvertType(RT)->getPointerTo(); in visitVolatileTrivial()
551 LValue DstBase = this->CGF->MakeAddrLValue( in visitVolatileTrivial()
552 this->CGF->Builder.CreateBitCast(DstAddr, PtrTy), FT); in visitVolatileTrivial()
553 DstLV = this->CGF->EmitLValueForField(DstBase, FD); in visitVolatileTrivial()
555 LValue SrcBase = this->CGF->MakeAddrLValue( in visitVolatileTrivial()
556 this->CGF->Builder.CreateBitCast(SrcAddr, PtrTy), FT); in visitVolatileTrivial()
557 SrcLV = this->CGF->EmitLValueForField(SrcBase, FD); in visitVolatileTrivial()
559 llvm::PointerType *Ty = this->CGF->ConvertType(FT)->getPointerTo(); in visitVolatileTrivial()
560 Address DstAddr = this->CGF->Builder.CreateBitCast(Addrs[DstIdx], Ty); in visitVolatileTrivial()
561 Address SrcAddr = this->CGF->Builder.CreateBitCast(Addrs[SrcIdx], Ty); in visitVolatileTrivial()
562 DstLV = this->CGF->MakeAddrLValue(DstAddr, FT); in visitVolatileTrivial()
563 SrcLV = this->CGF->MakeAddrLValue(SrcAddr, FT); in visitVolatileTrivial()
565 RValue SrcVal = this->CGF->EmitLoadOfLValue(SrcLV, SourceLocation()); in visitVolatileTrivial()
566 this->CGF->EmitStoreThroughLValue(SrcVal, DstLV); in visitVolatileTrivial()
590 CGF->destroyARCStrongImprecise( in visitARCStrong()
591 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStackOffset, FD), QT); in visitARCStrong()
596 CGF->destroyARCWeak( in visitARCWeak()
597 *CGF, getAddrWithOffset(Addrs[DstIdx], CurStackOffset, FD), QT); in visitARCWeak()
602 CGF->callCStructDestructor( in callSpecialFunction()
603 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
631 CGF->EmitNullInitialization( in visitARCStrong()
637 CGF->EmitNullInitialization( in visitARCWeak()
657 llvm::Constant *SizeVal = CGF->Builder.getInt64(Size.getQuantity()); in visitArray()
659 Address Loc = CGF->Builder.CreateElementBitCast(DstAddr, CGF->Int8Ty); in visitArray()
660 CGF->Builder.CreateMemSet(Loc, CGF->Builder.getInt8(0), SizeVal, in visitArray()
666 CGF->callCStructDefaultConstructor( in callSpecialFunction()
667 CGF->MakeAddrLValue(getAddrWithOffset(Addrs[DstIdx], Offset), FT)); in callSpecialFunction()
679 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
681 llvm::Value *Val = CGF->EmitARCRetain(QT, SrcVal); in visitARCStrong()
682 CGF->EmitStoreOfScalar(Val, CGF->MakeAddrLValue(Addrs[DstIdx], QT), true); in visitARCStrong()
689 CGF->EmitARCCopyWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
694 CGF->callCStructCopyConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
695 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
707 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
709 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
710 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress()), SrcLV); in visitARCStrong()
711 CGF->EmitStoreOfScalar(SrcVal, CGF->MakeAddrLValue(Addrs[DstIdx], QT), in visitARCStrong()
719 CGF->EmitARCMoveWeak(Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
724 CGF->callCStructMoveConstructor(CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
725 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
737 llvm::Value *SrcVal = CGF->EmitLoadOfScalar( in visitARCStrong()
739 CGF->EmitARCStoreStrong(CGF->MakeAddrLValue(Addrs[DstIdx], QT), SrcVal, in visitARCStrong()
747 CGF->emitARCCopyAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
752 CGF->callCStructCopyAssignmentOperator( in callSpecialFunction()
753 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
754 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
766 LValue SrcLV = CGF->MakeAddrLValue(Addrs[SrcIdx], QT); in visitARCStrong()
768 CGF->EmitLoadOfLValue(SrcLV, SourceLocation()).getScalarVal(); in visitARCStrong()
769 CGF->EmitStoreOfScalar(getNullForVariable(SrcLV.getAddress()), SrcLV); in visitARCStrong()
770 LValue DstLV = CGF->MakeAddrLValue(Addrs[DstIdx], QT); in visitARCStrong()
772 CGF->EmitLoadOfLValue(DstLV, SourceLocation()).getScalarVal(); in visitARCStrong()
773 CGF->EmitStoreOfScalar(SrcVal, DstLV); in visitARCStrong()
774 CGF->EmitARCRelease(DstVal, ARCImpreciseLifetime); in visitARCStrong()
781 CGF->emitARCMoveAssignWeak(QT, Addrs[DstIdx], Addrs[SrcIdx]); in visitARCWeak()
786 CGF->callCStructMoveAssignmentOperator( in callSpecialFunction()
787 CGF->MakeAddrLValue(Addrs[DstIdx], FT), in callSpecialFunction()
788 CGF->MakeAddrLValue(Addrs[SrcIdx], FT)); in callSpecialFunction()
794 void CodeGenFunction::destroyNonTrivialCStruct(CodeGenFunction &CGF, in destroyNonTrivialCStruct() argument
796 CGF.callCStructDestructor(CGF.MakeAddrLValue(Addr, Type)); in destroyNonTrivialCStruct()
812 bool IsVolatile, CodeGenFunction &CGF, in callSpecialFunction() argument
815 Addrs[I] = CGF.Builder.CreateBitCast(Addrs[I], CGF.CGM.Int8PtrPtrTy); in callSpecialFunction()
817 Gen.callFunc(FuncName, QT, Addrs, CGF); in callSpecialFunction()