Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:CGF

345                                  CodeGenFunction &CGF) const;
355 CodeGenFunction &CGF) const {
402 static llvm::Type* X86AdjustInlineAsmType(CodeGen::CodeGenFunction &CGF,
406 return llvm::Type::getX86_MMXTy(CGF.getLLVMContext());
452 CodeGenFunction &CGF) const;
475 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
478 llvm::Type* adjustInlineAsmType(CodeGen::CodeGenFunction &CGF,
481 return X86AdjustInlineAsmType(CGF, Constraint, Ty);
757 CodeGenFunction &CGF) const {
758 llvm::Type *BPP = CGF.Int8PtrPtrTy;
760 CGBuilderTy &Builder = CGF.Builder;
766 unsigned Align = CGF.getContext().getTypeAlignInChars(Ty).getQuantity();
772 llvm::ConstantInt::get(CGF.Int32Ty, Align - 1);
773 Addr = CGF.Builder.CreateGEP(Addr, Offset);
774 llvm::Value *AsInt = CGF.Builder.CreatePtrToInt(Addr,
775 CGF.Int32Ty);
776 llvm::Value *Mask = llvm::ConstantInt::get(CGF.Int32Ty, -Align);
777 Addr = CGF.Builder.CreateIntToPtr(CGF.Builder.CreateAnd(AsInt, Mask),
783 llvm::PointerType::getUnqual(CGF.ConvertType(Ty));
787 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, Align);
789 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset),
811 CodeGen::CodeGenFunction &CGF,
813 CodeGen::CGBuilderTy &Builder = CGF.Builder;
815 llvm::Value *Four8 = llvm::ConstantInt::get(CGF.Int8Ty, 4);
822 if (CGF.CGM.isTargetDarwin()) {
826 llvm::Value *Sixteen8 = llvm::ConstantInt::get(CGF.Int8Ty, 16);
837 llvm::Value *Twelve8 = llvm::ConstantInt::get(CGF.Int8Ty, 12);
971 CodeGenFunction &CGF) const;
985 CodeGenFunction &CGF) const;
1001 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
1003 llvm::Value *Eight8 = llvm::ConstantInt::get(CGF.Int8Ty, 8);
1007 AssignToArrayRange(CGF.Builder, Address, Eight8, 0, 16);
1011 llvm::Type* adjustInlineAsmType(CodeGen::CodeGenFunction &CGF,
1014 return X86AdjustInlineAsmType(CGF, Constraint, Ty);
1053 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
1055 llvm::Value *Eight8 = llvm::ConstantInt::get(CGF.Int8Ty, 8);
1059 AssignToArrayRange(CGF.Builder, Address, Eight8, 0, 16);
2082 CodeGenFunction &CGF) {
2084 CGF.Builder.CreateStructGEP(VAListAddr, 2, "overflow_arg_area_p");
2086 CGF.Builder.CreateLoad(overflow_arg_area_p, "overflow_arg_area");
2092 uint64_t Align = CGF.getContext().getTypeAlign(Ty) / 8;
2096 llvm::ConstantInt::get(CGF.Int64Ty, Align - 1);
2097 overflow_arg_area = CGF.Builder.CreateGEP(overflow_arg_area, Offset);
2098 llvm::Value *AsInt = CGF.Builder.CreatePtrToInt(overflow_arg_area,
2099 CGF.Int64Ty);
2100 llvm::Value *Mask = llvm::ConstantInt::get(CGF.Int64Ty, -(uint64_t)Align);
2102 CGF.Builder.CreateIntToPtr(CGF.Builder.CreateAnd(AsInt, Mask),
2108 llvm::Type *LTy = CGF.ConvertTypeForMem(Ty);
2110 CGF.Builder.CreateBitCast(overflow_arg_area,
2118 uint64_t SizeInBytes = (CGF.getContext().getTypeSize(Ty) + 7) / 8;
2120 llvm::ConstantInt::get(CGF.Int32Ty, (SizeInBytes + 7) & ~7);
2121 overflow_arg_area = CGF.Builder.CreateGEP(overflow_arg_area, Offset,
2123 CGF.Builder.CreateStore(overflow_arg_area, overflow_arg_area_p);
2130 CodeGenFunction &CGF) const {
2140 Ty = CGF.getContext().getCanonicalType(Ty);
2146 return EmitVAArgFromMemory(VAListAddr, Ty, CGF);
2163 gp_offset_p = CGF.Builder.CreateStructGEP(VAListAddr, 0, "gp_offset_p");
2164 gp_offset = CGF.Builder.CreateLoad(gp_offset_p, "gp_offset");
2165 InRegs = llvm::ConstantInt::get(CGF.Int32Ty, 48 - neededInt * 8);
2166 InRegs = CGF.Builder.CreateICmpULE(gp_offset, InRegs, "fits_in_gp");
2170 fp_offset_p = CGF.Builder.CreateStructGEP(VAListAddr, 1, "fp_offset_p");
2171 fp_offset = CGF.Builder.CreateLoad(fp_offset_p, "fp_offset");
2173 llvm::ConstantInt::get(CGF.Int32Ty, 176 - neededSSE * 16);
2174 FitsInFP = CGF.Builder.CreateICmpULE(fp_offset, FitsInFP, "fits_in_fp");
2175 InRegs = InRegs ? CGF.Builder.CreateAnd(InRegs, FitsInFP) : FitsInFP;
2178 llvm::BasicBlock *InRegBlock = CGF.createBasicBlock("vaarg.in_reg");
2179 llvm::BasicBlock *InMemBlock = CGF.createBasicBlock("vaarg.in_mem");
2180 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("vaarg.end");
2181 CGF.Builder.CreateCondBr(InRegs, InRegBlock, InMemBlock);
2185 CGF.EmitBlock(InRegBlock);
2197 llvm::Type *LTy = CGF.ConvertTypeForMem(Ty);
2199 CGF.Builder.CreateLoad(CGF
2205 llvm::Value *Tmp = CGF.CreateTempAlloca(ST);
2213 llvm::Value *GPAddr = CGF.Builder.CreateGEP(RegAddr, gp_offset);
2214 llvm::Value *FPAddr = CGF.Builder.CreateGEP(RegAddr, fp_offset);
2218 CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegLoAddr, PTyLo));
2219 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0));
2220 V = CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegHiAddr, PTyHi));
2221 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
2223 RegAddr = CGF.Builder.CreateBitCast(Tmp,
2226 RegAddr = CGF.Builder.CreateGEP(RegAddr, gp_offset);
2227 RegAddr = CGF.Builder.CreateBitCast(RegAddr,
2230 RegAddr = CGF.Builder.CreateGEP(RegAddr, fp_offset);
2231 RegAddr = CGF.Builder.CreateBitCast(RegAddr,
2237 llvm::Value *RegAddrLo = CGF.Builder.CreateGEP(RegAddr, fp_offset);
2238 llvm::Value *RegAddrHi = CGF.Builder.CreateConstGEP1_32(RegAddrLo, 16);
2239 llvm::Type *DoubleTy = CGF.DoubleTy;
2244 llvm::Value *V, *Tmp = CGF.CreateTempAlloca(ST);
2245 V = CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegAddrLo,
2247 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 0));
2248 V = CGF.Builder.CreateLoad(CGF.Builder.CreateBitCast(RegAddrHi,
2250 CGF.Builder.CreateStore(V, CGF.Builder.CreateStructGEP(Tmp, 1));
2251 RegAddr = CGF.Builder.CreateBitCast(Tmp,
2259 llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, neededInt * 8);
2260 CGF.Builder.CreateStore(CGF.Builder.CreateAdd(gp_offset, Offset),
2264 llvm::Value *Offset = llvm::ConstantInt::get(CGF.Int32Ty, neededSSE * 16);
2265 CGF.Builder.CreateStore(CGF.Builder.CreateAdd(fp_offset, Offset),
2268 CGF.EmitBranch(ContBlock);
2272 CGF.EmitBlock(InMemBlock);
2273 llvm::Value *MemAddr = EmitVAArgFromMemory(VAListAddr, Ty, CGF);
2277 CGF.EmitBlock(ContBlock);
2278 llvm::PHINode *ResAddr = CGF.Builder.CreatePHI(RegAddr->getType(), 2,
2334 CodeGenFunction &CGF) const {
2335 llvm::Type *BPP = CGF.Int8PtrPtrTy;
2337 CGBuilderTy &Builder = CGF.Builder;
2342 llvm::PointerType::getUnqual(CGF.ConvertType(Ty));
2346 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, 8);
2348 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset),
2367 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
2374 PPC32TargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
2379 CodeGen::CGBuilderTy &Builder = CGF.Builder;
2381 llvm::IntegerType *i8 = CGF.Int8Ty;
2450 CodeGenFunction &CGF) const;
2470 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
2472 llvm::Value *Four8 = llvm::ConstantInt::get(CGF.Int8Ty, 4);
2475 AssignToArrayRange(CGF.Builder, Address, Four8, 0, 15);
2804 CodeGenFunction &CGF) const {
2805 llvm::Type *BP = CGF.Int8PtrTy;
2806 llvm::Type *BPP = CGF.Int8PtrPtrTy;
2808 CGBuilderTy &Builder = CGF.Builder;
2812 uint64_t TyAlign = CGF.getContext().getTypeAlign(Ty) / 8;
2816 llvm::Value *AddrAsInt = Builder.CreatePtrToInt(Addr, CGF.Int32Ty);
2822 llvm::PointerType::getUnqual(CGF.ConvertType(Ty));
2826 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, 4);
2828 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset),
2966 CodeGenFunction &CGF) const;
2998 CodeGenFunction &CGF) const {
3112 CodeGenFunction &CGF) const;
3126 bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
3338 CodeGenFunction &CGF) const {
3339 llvm::Type *BP = CGF.Int8PtrTy;
3340 llvm::Type *BPP = CGF.Int8PtrPtrTy;
3342 CGBuilderTy &Builder = CGF.Builder;
3346 llvm::Type *PTy = llvm::PointerType::getUnqual(CGF.ConvertType(Ty));
3349 llvm::IntegerType *IntTy = (PtrWidth == 32) ? CGF.Int32Ty : CGF.Int64Ty;
3352 llvm::Value *AddrAsInt = CGF.Builder.CreatePtrToInt(Addr, IntTy);
3355 llvm::Value *Add = CGF.Builder.CreateAdd(AddrAsInt, Inc);
3356 llvm::Value *And = CGF.Builder.CreateAnd(Add, Mask);
3357 AddrTyped = CGF.Builder.CreateIntToPtr(And, PTy);
3365 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, TypeAlign);
3375 MIPSTargetCodeGenInfo::initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF,
3382 llvm::Value *Four8 = llvm::ConstantInt::get(CGF.Int8Ty, 4);
3388 AssignToArrayRange(CGF.Builder, Address, Four8, 0, 65);
3398 AssignToArrayRange(CGF.Builder, Address, Four8, 80, 181);
3484 CodeGenFunction &CGF) const;
3582 CodeGenFunction &CGF
3584 llvm::Type *BPP = CGF.Int8PtrPtrTy;
3586 CGBuilderTy &Builder = CGF.Builder;
3591 llvm::PointerType::getUnqual(CGF.ConvertType(Ty));
3595 llvm::RoundUpToAlignment(CGF.getContext().getTypeSize(Ty) / 8, 4);
3597 Builder.CreateGEP(Addr, llvm::ConstantInt::get(CGF.Int32Ty, Offset),