Lines Matching refs:CGF
364 CodeGenFunction &CGF) const override;
374 CodeGenFunction &CGF) const { in EmitVAArg()
421 CodeGenFunction &CGF) const override;
439 CodeGenFunction &CGF) const { in EmitVAArg()
485 static llvm::Type* X86AdjustInlineAsmType(CodeGen::CodeGenFunction &CGF, in X86AdjustInlineAsmType() argument
494 return llvm::Type::getX86_MMXTy(CGF.getLLVMContext()); in X86AdjustInlineAsmType()
561 CodeGenFunction &CGF) const override;
587 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
590 llvm::Type* adjustInlineAsmType(CodeGen::CodeGenFunction &CGF, in adjustInlineAsmType() argument
593 return X86AdjustInlineAsmType(CGF, Constraint, Ty); in adjustInlineAsmType()
1054 CodeGenFunction &CGF) const { in EmitVAArg()
1055 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
1057 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
1063 unsigned Align = CGF.getContext().getTypeAlignInChars(Ty).getQuantity(); in EmitVAArg()
1069 llvm::ConstantInt::get(CGF.Int32Ty, Align - 1); in EmitVAArg()
1070 Addr = CGF.Builder.CreateGEP(Addr, Offset); in EmitVAArg()
1071 llvm::Value *AsInt = CGF.Builder.CreatePtrToInt(Addr, in EmitVAArg()
1072 CGF.Int32Ty); in EmitVAArg()
1073 llvm::Value *Mask = llvm::ConstantInt::get(CGF.Int32Ty, -Align); in EmitVAArg()
1074 Addr = CGF.Builder.CreateIntToPtr(CGF.Builder.CreateAnd(AsInt, Mask), in EmitVAArg()
1080 llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
1084 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, Align); in EmitVAArg()
1086 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset), in EmitVAArg()
1151 CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
1153 CodeGen::CGBuilderTy &Builder = CGF.Builder; in initDwarfEHRegSizeTable()
1155 llvm::Value *Four8 = llvm::ConstantInt::get(CGF.Int8Ty, 4); in initDwarfEHRegSizeTable()
1162 if (CGF.CGM.getTarget().getTriple().isOSDarwin()) { in initDwarfEHRegSizeTable()
1166 llvm::Value *Sixteen8 = llvm::ConstantInt::get(CGF.Int8Ty, 16); in initDwarfEHRegSizeTable()
1177 llvm::Value *Twelve8 = llvm::ConstantInt::get(CGF.Int8Ty, 12); in initDwarfEHRegSizeTable()
1322 CodeGenFunction &CGF) const override;
1336 CodeGenFunction &CGF) const override;
1352 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
1354 llvm::Value *Eight8 = llvm::ConstantInt::get(CGF.Int8Ty, 8); in initDwarfEHRegSizeTable()
1358 AssignToArrayRange(CGF.Builder, Address, Eight8, 0, 16); in initDwarfEHRegSizeTable()
1362 llvm::Type* adjustInlineAsmType(CodeGen::CodeGenFunction &CGF, in adjustInlineAsmType() argument
1365 return X86AdjustInlineAsmType(CGF, Constraint, Ty); in adjustInlineAsmType()
1441 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
1443 llvm::Value *Eight8 = llvm::ConstantInt::get(CGF.Int8Ty, 8); in initDwarfEHRegSizeTable()
1447 AssignToArrayRange(CGF.Builder, Address, Eight8, 0, 16); in initDwarfEHRegSizeTable()
2504 CodeGenFunction &CGF) { in EmitVAArgFromMemory() argument
2506 CGF.Builder.CreateStructGEP(VAListAddr, 2, "overflow_arg_area_p"); in EmitVAArgFromMemory()
2508 CGF.Builder.CreateLoad(overflow_arg_area_p, "overflow_arg_area"); in EmitVAArgFromMemory()
2514 uint64_t Align = CGF.getContext().getTypeAlign(Ty) / 8; in EmitVAArgFromMemory()
2518 llvm::ConstantInt::get(CGF.Int64Ty, Align - 1); in EmitVAArgFromMemory()
2519 overflow_arg_area = CGF.Builder.CreateGEP(overflow_arg_area, Offset); in EmitVAArgFromMemory()
2520 llvm::Value *AsInt = CGF.Builder.CreatePtrToInt(overflow_arg_area, in EmitVAArgFromMemory()
2521 CGF.Int64Ty); in EmitVAArgFromMemory()
2522 llvm::Value *Mask = llvm::ConstantInt::get(CGF.Int64Ty, -(uint64_t)Align); in EmitVAArgFromMemory()
2524 CGF.Builder.CreateIntToPtr(CGF.Builder.CreateAnd(AsInt, Mask), in EmitVAArgFromMemory()
2530 llvm::Type *LTy = CGF.ConvertTypeForMem(Ty); in EmitVAArgFromMemory()
2532 CGF.Builder.CreateBitCast(overflow_arg_area, in EmitVAArgFromMemory()
2540 uint64_t SizeInBytes = (CGF.getContext().getTypeSize(Ty) + 7) / 8; in EmitVAArgFromMemory()
2542 llvm::ConstantInt::get(CGF.Int32Ty, (SizeInBytes + 7) & ~7); in EmitVAArgFromMemory()
2543 overflow_arg_area = CGF.Builder.CreateGEP(overflow_arg_area, Offset, in EmitVAArgFromMemory()
2545 CGF.Builder.CreateStore(overflow_arg_area, overflow_arg_area_p); in EmitVAArgFromMemory()
2552 CodeGenFunction &CGF) const { in EmitVAArg()
2562 Ty = CGF.getContext().getCanonicalType(Ty); in EmitVAArg()
2569 return EmitVAArgFromMemory(VAListAddr, Ty, CGF); in EmitVAArg()
2586 gp_offset_p = CGF.Builder.CreateStructGEP(VAListAddr, 0, "gp_offset_p"); in EmitVAArg()
2587 gp_offset = CGF.Builder.CreateLoad(gp_offset_p, "gp_offset"); in EmitVAArg()
2588 InRegs = llvm::ConstantInt::get(CGF.Int32Ty, 48 - neededInt * 8); in EmitVAArg()
2589 InRegs = CGF.Builder.CreateICmpULE(gp_offset, InRegs, "fits_in_gp"); in EmitVAArg()
2593 fp_offset_p = CGF.Builder.CreateStructGEP(VAListAddr, 1, "fp_offset_p"); in EmitVAArg()
2594 fp_offset = CGF.Builder.CreateLoad(fp_offset_p, "fp_offset"); in EmitVAArg()
2596 llvm::ConstantInt::get(CGF.Int32Ty, 176 - neededSSE * 16); in EmitVAArg()
2597 FitsInFP = CGF.Builder.CreateICmpULE(fp_offset, FitsInFP, "fits_in_fp"); in EmitVAArg()
2598 InRegs = InRegs ? CGF.Builder.CreateAnd(InRegs, FitsInFP) : FitsInFP; in EmitVAArg()
2601 llvm::BasicBlock *InRegBlock = CGF.createBasicBlock("vaarg.in_reg"); in EmitVAArg()
2602 llvm::BasicBlock *InMemBlock = CGF.createBasicBlock("vaarg.in_mem"); in EmitVAArg()
2603 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("vaarg.end"); in EmitVAArg()
2604 CGF.Builder.CreateCondBr(InRegs, InRegBlock, InMemBlock); in EmitVAArg()
2608 CGF.EmitBlock(InRegBlock); in EmitVAArg()
2620 llvm::Type *LTy = CGF.ConvertTypeForMem(Ty); in EmitVAArg()
2622 CGF.Builder.CreateLoad(CGF.Builder.CreateStructGEP(VAListAddr, 3), in EmitVAArg()
2628 llvm::Value *Tmp = CGF.CreateMemTemp(Ty); in EmitVAArg()
2629 Tmp = CGF.Builder.CreateBitCast(Tmp, ST->getPointerTo()); in EmitVAArg()
2637 llvm::Value *GPAddr = CGF.Builder.CreateGEP(RegAddr, gp_offset); in EmitVAArg()
2638 llvm::Value *FPAddr = CGF.Builder.CreateGEP(RegAddr, fp_offset); in EmitVAArg()
2642 CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegLoAddr, PTyLo)); in EmitVAArg()
2643 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0)); in EmitVAArg()
2644 V = CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegHiAddr, PTyHi)); in EmitVAArg()
2645 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1)); in EmitVAArg()
2647 RegAddr = CGF.Builder.CreateBitCast(Tmp, in EmitVAArg()
2650 RegAddr = CGF.Builder.CreateGEP(RegAddr, gp_offset); in EmitVAArg()
2651 RegAddr = CGF.Builder.CreateBitCast(RegAddr, in EmitVAArg()
2656 CGF.getContext().getTypeInfoInChars(Ty); in EmitVAArg()
2660 llvm::Value *Tmp = CGF.CreateMemTemp(Ty); in EmitVAArg()
2661 CGF.Builder.CreateMemCpy(Tmp, RegAddr, TySize, 8, false); in EmitVAArg()
2665 RegAddr = CGF.Builder.CreateGEP(RegAddr, fp_offset); in EmitVAArg()
2666 RegAddr = CGF.Builder.CreateBitCast(RegAddr, in EmitVAArg()
2672 llvm::Value *RegAddrLo = CGF.Builder.CreateGEP(RegAddr, fp_offset); in EmitVAArg()
2673 llvm::Value *RegAddrHi = CGF.Builder.CreateConstGEP1_32(RegAddrLo, 16); in EmitVAArg()
2674 llvm::Type *DoubleTy = CGF.DoubleTy; in EmitVAArg()
2678 llvm::Value *V, *Tmp = CGF.CreateMemTemp(Ty); in EmitVAArg()
2679 Tmp = CGF.Builder.CreateBitCast(Tmp, ST->getPointerTo()); in EmitVAArg()
2680 V = CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegAddrLo, in EmitVAArg()
2682 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0)); in EmitVAArg()
2683 V = CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegAddrHi, in EmitVAArg()
2685 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1)); in EmitVAArg()
2686 RegAddr = CGF.Builder.CreateBitCast(Tmp, in EmitVAArg()
2694 llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, neededInt * 8); in EmitVAArg()
2695 CGF.Builder.CreateStore(CGF.Builder.CreateAdd(gp_offset, Offset), in EmitVAArg()
2699 llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, neededSSE * 16); in EmitVAArg()
2700 CGF.Builder.CreateStore(CGF.Builder.CreateAdd(fp_offset, Offset), in EmitVAArg()
2703 CGF.EmitBranch(ContBlock); in EmitVAArg()
2707 CGF.EmitBlock(InMemBlock); in EmitVAArg()
2708 llvm::Value *MemAddr = EmitVAArgFromMemory(VAListAddr, Ty, CGF); in EmitVAArg()
2712 CGF.EmitBlock(ContBlock); in EmitVAArg()
2713 llvm::PHINode *ResAddr = CGF.Builder.CreatePHI(RegAddr->getType(), 2, in EmitVAArg()
2779 CodeGenFunction &CGF) const { in EmitVAArg()
2780 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
2782 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
2787 llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
2791 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, 8); in EmitVAArg()
2793 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset), in EmitVAArg()
2808 CodeGenFunction &CGF) const override;
2830 CodeGenFunction &CGF) const { in EmitVAArg()
2833 return NInfo.EmitVAArg(VAListAddr, Ty, CGF); in EmitVAArg()
2849 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
2856 PPC32TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
2861 CodeGen::CGBuilderTy &Builder = CGF.Builder; in initDwarfEHRegSizeTable()
2863 llvm::IntegerType *i8 = CGF.Int8Ty; in initDwarfEHRegSizeTable()
2939 CodeGenFunction &CGF) const override;
2952 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
2965 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
3095 CodeGenFunction &CGF) const { in EmitVAArg()
3096 llvm::Type *BP = CGF.Int8PtrTy; in EmitVAArg()
3097 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
3099 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
3105 llvm::Value *AddrAsInt = Builder.CreatePtrToInt(Addr, CGF.Int64Ty); in EmitVAArg()
3115 unsigned SizeInBytes = CGF.getContext().getTypeSize(Ty) / 8; in EmitVAArg()
3121 CplxBaseSize = CGF.getContext().getTypeSize(BaseTy) / 8; in EmitVAArg()
3128 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int64Ty, Offset), in EmitVAArg()
3139 llvm::Value *RealAddr = Builder.CreatePtrToInt(Addr, CGF.Int64Ty); in EmitVAArg()
3141 if (CGF.CGM.getDataLayout().isBigEndian()) { in EmitVAArg()
3147 llvm::Type *PBaseTy = llvm::PointerType::getUnqual(CGF.ConvertType(BaseTy)); in EmitVAArg()
3152 llvm::Value *Ptr = CGF.CreateTempAlloca(CGT.ConvertTypeForMem(Ty), in EmitVAArg()
3164 if (SizeInBytes < 8 && CGF.CGM.getDataLayout().isBigEndian()) { in EmitVAArg()
3165 llvm::Value *AddrAsInt = Builder.CreatePtrToInt(Addr, CGF.Int64Ty); in EmitVAArg()
3170 llvm::Type *PTy = llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
3175 PPC64_initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in PPC64_initDwarfEHRegSizeTable() argument
3180 CodeGen::CGBuilderTy &Builder = CGF.Builder; in PPC64_initDwarfEHRegSizeTable()
3182 llvm::IntegerType *i8 = CGF.Int8Ty; in PPC64_initDwarfEHRegSizeTable()
3217 CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
3220 return PPC64_initDwarfEHRegSizeTable(CGF, Address); in initDwarfEHRegSizeTable()
3224 PPC64TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
3227 return PPC64_initDwarfEHRegSizeTable(CGF, Address); in initDwarfEHRegSizeTable()
3327 CodeGenFunction &CGF) const;
3330 CodeGenFunction &CGF) const;
3333 CodeGenFunction &CGF) const { in EmitVAArg()
3334 return isDarwinPCS() ? EmitDarwinVAArg(VAListAddr, Ty, CGF) in EmitVAArg()
3335 : EmitAAPCSVAArg(VAListAddr, Ty, CGF); in EmitVAArg()
3531 bool IsIndirect, CodeGenFunction &CGF) { in EmitAArch64VAArg() argument
3543 llvm::BasicBlock *MaybeRegBlock = CGF.createBasicBlock("vaarg.maybe_reg"); in EmitAArch64VAArg()
3544 llvm::BasicBlock *InRegBlock = CGF.createBasicBlock("vaarg.in_reg"); in EmitAArch64VAArg()
3545 llvm::BasicBlock *OnStackBlock = CGF.createBasicBlock("vaarg.on_stack"); in EmitAArch64VAArg()
3546 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("vaarg.end"); in EmitAArch64VAArg()
3547 auto &Ctx = CGF.getContext(); in EmitAArch64VAArg()
3555 reg_offs_p = CGF.Builder.CreateStructGEP(VAListAddr, 3, "gr_offs_p"); in EmitAArch64VAArg()
3556 reg_offs = CGF.Builder.CreateLoad(reg_offs_p, "gr_offs"); in EmitAArch64VAArg()
3562 reg_offs_p = CGF.Builder.CreateStructGEP(VAListAddr, 4, "vr_offs_p"); in EmitAArch64VAArg()
3563 reg_offs = CGF.Builder.CreateLoad(reg_offs_p, "vr_offs"); in EmitAArch64VAArg()
3577 UsingStack = CGF.Builder.CreateICmpSGE( in EmitAArch64VAArg()
3578 reg_offs, llvm::ConstantInt::get(CGF.Int32Ty, 0)); in EmitAArch64VAArg()
3580 CGF.Builder.CreateCondBr(UsingStack, OnStackBlock, MaybeRegBlock); in EmitAArch64VAArg()
3584 CGF.EmitBlock(MaybeRegBlock); in EmitAArch64VAArg()
3592 reg_offs = CGF.Builder.CreateAdd( in EmitAArch64VAArg()
3593 reg_offs, llvm::ConstantInt::get(CGF.Int32Ty, Align - 1), in EmitAArch64VAArg()
3595 reg_offs = CGF.Builder.CreateAnd( in EmitAArch64VAArg()
3596 reg_offs, llvm::ConstantInt::get(CGF.Int32Ty, -Align), in EmitAArch64VAArg()
3602 NewOffset = CGF.Builder.CreateAdd( in EmitAArch64VAArg()
3603 reg_offs, llvm::ConstantInt::get(CGF.Int32Ty, RegSize), "new_reg_offs"); in EmitAArch64VAArg()
3604 CGF.Builder.CreateStore(NewOffset, reg_offs_p); in EmitAArch64VAArg()
3609 InRegs = CGF.Builder.CreateICmpSLE( in EmitAArch64VAArg()
3610 NewOffset, llvm::ConstantInt::get(CGF.Int32Ty, 0), "inreg"); in EmitAArch64VAArg()
3612 CGF.Builder.CreateCondBr(InRegs, InRegBlock, OnStackBlock); in EmitAArch64VAArg()
3620 CGF.EmitBlock(InRegBlock); in EmitAArch64VAArg()
3624 CGF.Builder.CreateStructGEP(VAListAddr, reg_top_index, "reg_top_p"); in EmitAArch64VAArg()
3625 reg_top = CGF.Builder.CreateLoad(reg_top_p, "reg_top"); in EmitAArch64VAArg()
3626 llvm::Value *BaseAddr = CGF.Builder.CreateGEP(reg_top, reg_offs); in EmitAArch64VAArg()
3628 llvm::Type *MemTy = llvm::PointerType::getUnqual(CGF.ConvertTypeForMem(Ty)); in EmitAArch64VAArg()
3645 llvm::Type *BaseTy = CGF.ConvertType(QualType(Base, 0)); in EmitAArch64VAArg()
3647 llvm::Value *Tmp = CGF.CreateTempAlloca(HFATy); in EmitAArch64VAArg()
3650 if (CGF.CGM.getDataLayout().isBigEndian() && Ctx.getTypeSize(Base) < 128) in EmitAArch64VAArg()
3654 llvm::ConstantInt::get(CGF.Int32Ty, 16 * i + Offset); in EmitAArch64VAArg()
3655 llvm::Value *LoadAddr = CGF.Builder.CreateGEP(BaseAddr, BaseOffset); in EmitAArch64VAArg()
3656 LoadAddr = CGF.Builder.CreateBitCast( in EmitAArch64VAArg()
3658 llvm::Value *StoreAddr = CGF.Builder.CreateStructGEP(Tmp, i); in EmitAArch64VAArg()
3660 llvm::Value *Elem = CGF.Builder.CreateLoad(LoadAddr); in EmitAArch64VAArg()
3661 CGF.Builder.CreateStore(Elem, StoreAddr); in EmitAArch64VAArg()
3664 RegAddr = CGF.Builder.CreateBitCast(Tmp, MemTy); in EmitAArch64VAArg()
3668 if (CGF.CGM.getDataLayout().isBigEndian() && in EmitAArch64VAArg()
3672 BaseAddr = CGF.Builder.CreatePtrToInt(BaseAddr, CGF.Int64Ty); in EmitAArch64VAArg()
3674 BaseAddr = CGF.Builder.CreateAdd( in EmitAArch64VAArg()
3675 BaseAddr, llvm::ConstantInt::get(CGF.Int64Ty, Offset), "align_be"); in EmitAArch64VAArg()
3677 BaseAddr = CGF.Builder.CreateIntToPtr(BaseAddr, CGF.Int8PtrTy); in EmitAArch64VAArg()
3680 RegAddr = CGF.Builder.CreateBitCast(BaseAddr, MemTy); in EmitAArch64VAArg()
3683 CGF.EmitBranch(ContBlock); in EmitAArch64VAArg()
3688 CGF.EmitBlock(OnStackBlock); in EmitAArch64VAArg()
3691 stack_p = CGF.Builder.CreateStructGEP(VAListAddr, 0, "stack_p"); in EmitAArch64VAArg()
3692 OnStackAddr = CGF.Builder.CreateLoad(stack_p, "stack"); in EmitAArch64VAArg()
3699 OnStackAddr = CGF.Builder.CreatePtrToInt(OnStackAddr, CGF.Int64Ty); in EmitAArch64VAArg()
3701 OnStackAddr = CGF.Builder.CreateAdd( in EmitAArch64VAArg()
3702 OnStackAddr, llvm::ConstantInt::get(CGF.Int64Ty, Align - 1), in EmitAArch64VAArg()
3704 OnStackAddr = CGF.Builder.CreateAnd( in EmitAArch64VAArg()
3705 OnStackAddr, llvm::ConstantInt::get(CGF.Int64Ty, -Align), in EmitAArch64VAArg()
3708 OnStackAddr = CGF.Builder.CreateIntToPtr(OnStackAddr, CGF.Int8PtrTy); in EmitAArch64VAArg()
3720 llvm::Value *StackSizeC = llvm::ConstantInt::get(CGF.Int32Ty, StackSize); in EmitAArch64VAArg()
3722 CGF.Builder.CreateGEP(OnStackAddr, StackSizeC, "new_stack"); in EmitAArch64VAArg()
3725 CGF.Builder.CreateStore(NewStack, stack_p); in EmitAArch64VAArg()
3727 if (CGF.CGM.getDataLayout().isBigEndian() && !isAggregateTypeForABI(Ty) && in EmitAArch64VAArg()
3730 OnStackAddr = CGF.Builder.CreatePtrToInt(OnStackAddr, CGF.Int64Ty); in EmitAArch64VAArg()
3732 OnStackAddr = CGF.Builder.CreateAdd( in EmitAArch64VAArg()
3733 OnStackAddr, llvm::ConstantInt::get(CGF.Int64Ty, Offset), "align_be"); in EmitAArch64VAArg()
3735 OnStackAddr = CGF.Builder.CreateIntToPtr(OnStackAddr, CGF.Int8PtrTy); in EmitAArch64VAArg()
3738 OnStackAddr = CGF.Builder.CreateBitCast(OnStackAddr, MemTy); in EmitAArch64VAArg()
3740 CGF.EmitBranch(ContBlock); in EmitAArch64VAArg()
3745 CGF.EmitBlock(ContBlock); in EmitAArch64VAArg()
3747 llvm::PHINode *ResAddr = CGF.Builder.CreatePHI(MemTy, 2, "vaarg.addr"); in EmitAArch64VAArg()
3752 return CGF.Builder.CreateLoad(ResAddr, "vaarg.addr"); in EmitAArch64VAArg()
3758 CodeGenFunction &CGF) const { in EmitAAPCSVAArg()
3766 AI.isIndirect(), CGF); in EmitAAPCSVAArg()
3770 CodeGenFunction &CGF) const { in EmitDarwinVAArg()
3777 uint64_t Size = CGF.getContext().getTypeSize(Ty) / 8; in EmitDarwinVAArg()
3778 uint64_t Align = CGF.getContext().getTypeAlign(Ty) / 8; in EmitDarwinVAArg()
3792 llvm::Type *BP = llvm::Type::getInt8PtrTy(CGF.getLLVMContext()); in EmitDarwinVAArg()
3795 CGBuilderTy &Builder = CGF.Builder; in EmitDarwinVAArg()
3801 llvm::Type *PTy = llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitDarwinVAArg()
3807 llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, Align - 1); in EmitDarwinVAArg()
3809 llvm::Value *AsInt = Builder.CreatePtrToInt(Addr, CGF.Int64Ty); in EmitDarwinVAArg()
3810 llvm::Value *Mask = llvm::ConstantInt::get(CGF.Int64Ty, ~(Align - 1)); in EmitDarwinVAArg()
3817 Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset), "ap.next"); in EmitDarwinVAArg()
3822 llvm::Type *PTy = llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitDarwinVAArg()
3891 CodeGenFunction &CGF) const override;
3919 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
3921 llvm::Value *Four8 = llvm::ConstantInt::get(CGF.Int8Ty, 4); in initDwarfEHRegSizeTable()
3924 AssignToArrayRange(CGF.Builder, Address, Four8, 0, 15); in initDwarfEHRegSizeTable()
4537 CodeGenFunction &CGF) const { in EmitVAArg()
4538 llvm::Type *BP = CGF.Int8PtrTy; in EmitVAArg()
4539 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
4541 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
4547 llvm::Type *PTy = llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
4551 uint64_t Size = CGF.getContext().getTypeSize(Ty) / 8; in EmitVAArg()
4552 uint64_t TyAlign = CGF.getContext().getTypeAlign(Ty) / 8; in EmitVAArg()
4573 llvm::Value *AddrAsInt = Builder.CreatePtrToInt(Addr, CGF.Int32Ty); in EmitVAArg()
4582 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset), in EmitVAArg()
4588 else if (TyAlign < CGF.getContext().getTypeAlign(Ty) / 8) { in EmitVAArg()
4596 llvm::Value *AlignedTemp = CGF.CreateTempAlloca(CGF.ConvertType(Ty), in EmitVAArg()
4601 llvm::ConstantInt::get(CGF.IntPtrTy, CharSize.getQuantity()), in EmitVAArg()
4606 llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
4620 CodeGenFunction &CGF) const override;
4642 CodeGenFunction &CGF) const { in EmitVAArg()
4645 return static_cast<const ABIInfo&>(NInfo).EmitVAArg(VAListAddr, Ty, CGF); in EmitVAArg()
4810 CodeGenFunction &CGF) const override;
4902 CodeGenFunction &CGF) const { in EmitVAArg()
4913 Ty = CGF.getContext().getCanonicalType(Ty); in EmitVAArg()
4917 llvm::Type *APTy = llvm::PointerType::getUnqual(CGF.ConvertTypeForMem(Ty)); in EmitVAArg()
4945 CGF.Builder.CreateStructGEP(VAListAddr, RegCountField, "reg_count_ptr"); in EmitVAArg()
4946 llvm::Value *RegCount = CGF.Builder.CreateLoad(RegCountPtr, "reg_count"); in EmitVAArg()
4949 llvm::Value *InRegs = CGF.Builder.CreateICmpULT(RegCount, MaxRegsV, in EmitVAArg()
4952 llvm::BasicBlock *InRegBlock = CGF.createBasicBlock("vaarg.in_reg"); in EmitVAArg()
4953 llvm::BasicBlock *InMemBlock = CGF.createBasicBlock("vaarg.in_mem"); in EmitVAArg()
4954 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("vaarg.end"); in EmitVAArg()
4955 CGF.Builder.CreateCondBr(InRegs, InRegBlock, InMemBlock); in EmitVAArg()
4958 CGF.EmitBlock(InRegBlock); in EmitVAArg()
4963 CGF.Builder.CreateMul(RegCount, PaddedSizeV, "scaled_reg_count"); in EmitVAArg()
4967 CGF.Builder.CreateAdd(ScaledRegCount, RegBase, "reg_offset"); in EmitVAArg()
4969 CGF.Builder.CreateStructGEP(VAListAddr, 3, "reg_save_area_ptr"); in EmitVAArg()
4971 CGF.Builder.CreateLoad(RegSaveAreaPtr, "reg_save_area"); in EmitVAArg()
4973 CGF.Builder.CreateGEP(RegSaveArea, RegOffset, "raw_reg_addr"); in EmitVAArg()
4975 CGF.Builder.CreateBitCast(RawRegAddr, APTy, "reg_addr"); in EmitVAArg()
4980 CGF.Builder.CreateAdd(RegCount, One, "reg_count"); in EmitVAArg()
4981 CGF.Builder.CreateStore(NewRegCount, RegCountPtr); in EmitVAArg()
4982 CGF.EmitBranch(ContBlock); in EmitVAArg()
4985 CGF.EmitBlock(InMemBlock); in EmitVAArg()
4989 CGF.Builder.CreateStructGEP(VAListAddr, 2, "overflow_arg_area_ptr"); in EmitVAArg()
4991 CGF.Builder.CreateLoad(OverflowArgAreaPtr, "overflow_arg_area"); in EmitVAArg()
4994 CGF.Builder.CreateGEP(OverflowArgArea, PaddingV, "raw_mem_addr"); in EmitVAArg()
4996 CGF.Builder.CreateBitCast(RawMemAddr, APTy, "mem_addr"); in EmitVAArg()
5000 CGF.Builder.CreateGEP(OverflowArgArea, PaddedSizeV, "overflow_arg_area"); in EmitVAArg()
5001 CGF.Builder.CreateStore(NewOverflowArgArea, OverflowArgAreaPtr); in EmitVAArg()
5002 CGF.EmitBranch(ContBlock); in EmitVAArg()
5005 CGF.EmitBlock(ContBlock); in EmitVAArg()
5006 llvm::PHINode *ResAddr = CGF.Builder.CreatePHI(APTy, 2, "va_arg.addr"); in EmitVAArg()
5011 return CGF.Builder.CreateLoad(ResAddr, "indirect_arg"); in EmitVAArg()
5128 CodeGenFunction &CGF) const override;
5155 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
5370 CodeGenFunction &CGF) const { in EmitVAArg()
5371 llvm::Type *BP = CGF.Int8PtrTy; in EmitVAArg()
5372 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
5374 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
5378 llvm::Type *PTy = llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
5381 llvm::IntegerType *IntTy = (PtrWidth == 32) ? CGF.Int32Ty : CGF.Int64Ty; in EmitVAArg()
5384 llvm::Value *AddrAsInt = CGF.Builder.CreatePtrToInt(Addr, IntTy); in EmitVAArg()
5387 llvm::Value *Add = CGF.Builder.CreateAdd(AddrAsInt, Inc); in EmitVAArg()
5388 llvm::Value *And = CGF.Builder.CreateAnd(Add, Mask); in EmitVAArg()
5389 AddrTyped = CGF.Builder.CreateIntToPtr(And, PTy); in EmitVAArg()
5397 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, TypeAlign); in EmitVAArg()
5407 MIPSTargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
5414 llvm::Value *Four8 = llvm::ConstantInt::get(CGF.Int8Ty, 4); in initDwarfEHRegSizeTable()
5420 AssignToArrayRange(CGF.Builder, Address, Four8, 0, 65); in initDwarfEHRegSizeTable()
5430 AssignToArrayRange(CGF.Builder, Address, Four8, 80, 181); in initDwarfEHRegSizeTable()
5512 CodeGenFunction &CGF) const override;
5603 CodeGenFunction &CGF) const { in EmitVAArg()
5605 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
5607 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
5612 llvm::PointerType::getUnqual(CGF.ConvertType(Ty)); in EmitVAArg()
5616 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, 4); in EmitVAArg()
5618 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset), in EmitVAArg()
5661 CodeGenFunction &CGF) const override;
5825 CodeGenFunction &CGF) const { in EmitVAArg()
5831 llvm::Type *BPP = CGF.Int8PtrPtrTy; in EmitVAArg()
5832 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
5891 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
5897 SparcV9TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable() argument
5902 CodeGen::CGBuilderTy &Builder = CGF.Builder; in initDwarfEHRegSizeTable()
5904 llvm::IntegerType *i8 = CGF.Int8Ty; in initDwarfEHRegSizeTable()
6033 CodeGenFunction &CGF) const override;
6048 CodeGenFunction &CGF) const { in EmitVAArg()
6049 CGBuilderTy &Builder = CGF.Builder; in EmitVAArg()
6053 CGF.Int8PtrPtrTy); in EmitVAArg()