10#include "TargetInfo.h"
67 Ty = EnumTy->getDecl()->getIntegerType();
74 if (EIT->getNumBits() > 64)
93 if (EIT->getNumBits() > 64)
100 RetTy = EnumTy->getDecl()->getIntegerType();
106std::unique_ptr<TargetCodeGenInfo>
108 return std::make_unique<PNaClTargetCodeGenInfo>(CGM.
getTypes());
void computeInfo(CGFunctionInfo &FI) const override
PNaClABIInfo(CodeGen::CodeGenTypes &CGT)
ABIArgInfo classifyReturnType(QualType RetTy) const
Address EmitVAArg(CodeGenFunction &CGF, Address VAListAddr, QualType Ty) const override
EmitVAArg - Emit the target dependent code to load a value of.
ABIArgInfo classifyArgumentType(QualType RetTy) const
Classify argument of given type Ty.
PNaClTargetCodeGenInfo(CodeGen::CodeGenTypes &CGT)
A fixed int type of a specified bitwidth.
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to ...
static ABIArgInfo getIgnore()
static ABIArgInfo getDirect(llvm::Type *T=nullptr, unsigned Offset=0, llvm::Type *Padding=nullptr, bool CanBeFlattened=true, unsigned Align=0)
static ABIArgInfo getExtend(QualType Ty, llvm::Type *T=nullptr)
ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.
CodeGen::CodeGenTypes & CGT
CodeGen::CGCXXABI & getCXXABI() const
bool isPromotableIntegerTypeForABI(QualType Ty) const
CodeGen::ABIArgInfo getNaturalAlignIndirect(QualType Ty, bool ByVal=true, bool Realign=false, llvm::Type *Padding=nullptr) const
A convenience method to return an indirect ABIArgInfo with an expected alignment equal to the ABI ali...
RecordArgABI
Specify how one should pass an argument of a record type.
@ RAA_DirectInMemory
Pass it on the stack using its defined layout.
CGFunctionInfo - Class to encapsulate the information about a function definition.
ABIArgInfo & getReturnInfo()
CanQualType getReturnType() const
MutableArrayRef< ArgInfo > arguments()
CodeGenFunction - This class organizes the per-function state that is used while generating LLVM code...
This class organizes the cross-function state that is used while generating LLVM code.
CodeGenTypes & getTypes()
This class organizes the cross-module state that is used while lowering AST types to LLVM types.
TargetCodeGenInfo - This class organizes various target-specific codegeneration issues,...
A helper class that allows the use of isa/cast/dyncast to detect TagType objects of enums.
A (possibly-)qualified type.
bool isFloatingType() const
const T * getAs() const
Member-template getAs<specific type>'.
CGCXXABI::RecordArgABI getRecordArgABI(const RecordType *RT, CGCXXABI &CXXABI)
Address EmitVAArgInstr(CodeGenFunction &CGF, Address VAListAddr, QualType Ty, const ABIArgInfo &AI)
bool isAggregateTypeForABI(QualType T)
std::unique_ptr< TargetCodeGenInfo > createPNaClTargetCodeGenInfo(CodeGenModule &CGM)