Lines Matching refs:CGF

74 Address DefaultABIInfo::EmitVAArg(CodeGenFunction &CGF, Address VAListAddr,  in EmitVAArg()  argument
76 return EmitVAArgInstr(CGF, VAListAddr, Ty, classifyArgumentType(Ty)); in EmitVAArg()
105 llvm::Type *CodeGen::getVAListElementType(CodeGenFunction &CGF) { in getVAListElementType() argument
106 return CGF.ConvertTypeForMem( in getVAListElementType()
107 CGF.getContext().getBuiltinVaListType()->getPointeeType()); in getVAListElementType()
153 llvm::Value *CodeGen::emitRoundPointerUpToAlignment(CodeGenFunction &CGF, in emitRoundPointerUpToAlignment() argument
157 llvm::Value *RoundUp = CGF.Builder.CreateConstInBoundsGEP1_32( in emitRoundPointerUpToAlignment()
158 CGF.Builder.getInt8Ty(), Ptr, Align.getQuantity() - 1); in emitRoundPointerUpToAlignment()
159 return CGF.Builder.CreateIntrinsic( in emitRoundPointerUpToAlignment()
160 llvm::Intrinsic::ptrmask, {CGF.AllocaInt8PtrTy, CGF.IntPtrTy}, in emitRoundPointerUpToAlignment()
161 {RoundUp, llvm::ConstantInt::get(CGF.IntPtrTy, -Align.getQuantity())}, in emitRoundPointerUpToAlignment()
166 CodeGen::emitVoidPtrDirectVAArg(CodeGenFunction &CGF, Address VAListAddr, in emitVoidPtrDirectVAArg() argument
172 if (VAListAddr.getElementType() != CGF.Int8PtrTy) in emitVoidPtrDirectVAArg()
173 VAListAddr = VAListAddr.withElementType(CGF.Int8PtrTy); in emitVoidPtrDirectVAArg()
175 llvm::Value *Ptr = CGF.Builder.CreateLoad(VAListAddr, "argp.cur"); in emitVoidPtrDirectVAArg()
180 Addr = Address(emitRoundPointerUpToAlignment(CGF, Ptr, DirectAlign), in emitVoidPtrDirectVAArg()
181 CGF.Int8Ty, DirectAlign); in emitVoidPtrDirectVAArg()
183 Addr = Address(Ptr, CGF.Int8Ty, SlotSize); in emitVoidPtrDirectVAArg()
189 CGF.Builder.CreateConstInBoundsByteGEP(Addr, FullDirectSize, "argp.next"); in emitVoidPtrDirectVAArg()
190 CGF.Builder.CreateStore(NextPtr.getPointer(), VAListAddr); in emitVoidPtrDirectVAArg()
194 if (DirectSize < SlotSize && CGF.CGM.getDataLayout().isBigEndian() && in emitVoidPtrDirectVAArg()
196 Addr = CGF.Builder.CreateConstInBoundsByteGEP(Addr, SlotSize - DirectSize); in emitVoidPtrDirectVAArg()
202 Address CodeGen::emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr, in emitVoidPtrVAArg() argument
211 DirectSize = CGF.getPointerSize(); in emitVoidPtrVAArg()
212 DirectAlign = CGF.getPointerAlign(); in emitVoidPtrVAArg()
219 llvm::Type *DirectTy = CGF.ConvertTypeForMem(ValueTy), *ElementTy = DirectTy; in emitVoidPtrVAArg()
221 unsigned AllocaAS = CGF.CGM.getDataLayout().getAllocaAddrSpace(); in emitVoidPtrVAArg()
222 DirectTy = llvm::PointerType::get(CGF.getLLVMContext(), AllocaAS); in emitVoidPtrVAArg()
225 Address Addr = emitVoidPtrDirectVAArg(CGF, VAListAddr, DirectTy, DirectSize, in emitVoidPtrVAArg()
230 Addr = Address(CGF.Builder.CreateLoad(Addr), ElementTy, ValueInfo.Align); in emitVoidPtrVAArg()
236 Address CodeGen::emitMergePHI(CodeGenFunction &CGF, Address Addr1, in emitMergePHI() argument
241 llvm::PHINode *PHI = CGF.Builder.CreatePHI(Addr1.getType(), 2, Name); in emitMergePHI()
377 Address CodeGen::EmitVAArgInstr(CodeGenFunction &CGF, Address VAListAddr, in EmitVAArgInstr() argument
397 auto TyInfo = CGF.getContext().getTypeInfoInChars(Ty); in EmitVAArgInstr()
400 llvm::Type *ElementTy = CGF.ConvertTypeForMem(Ty); in EmitVAArgInstr()
403 CGF.Builder.CreateVAArg(VAListAddr.getPointer(), BaseTy); in EmitVAArgInstr()
418 Address Temp = CGF.CreateMemTemp(Ty, "varet"); in EmitVAArgInstr()
419 Val = CGF.Builder.CreateVAArg(VAListAddr.getPointer(), in EmitVAArgInstr()
420 CGF.ConvertTypeForMem(Ty)); in EmitVAArgInstr()
421 CGF.Builder.CreateStore(Val, Temp); in EmitVAArgInstr()