10#include "TargetInfo.h"
21 VEABIInfo(CodeGenTypes &CGT) : DefaultABIInfo(CGT) {}
26 void computeInfo(CGFunctionInfo &FI)
const override;
34 if (Size < 64 && Ty->isIntegerType())
39ABIArgInfo VEABIInfo::classifyArgumentType(QualType Ty)
const {
43 if (Size < 64 && Ty->isIntegerType())
48void VEABIInfo::computeInfo(CGFunctionInfo &FI)
const {
55class VETargetCodeGenInfo :
public TargetCodeGenInfo {
57 VETargetCodeGenInfo(CodeGenTypes &CGT)
58 : TargetCodeGenInfo(std::make_unique<VEABIInfo>(CGT)) {}
61 bool isNoProtoCallVariadic(
const CallArgList &args,
62 const FunctionNoProtoType *fnType)
const override {
68std::unique_ptr<TargetCodeGenInfo>
70 return std::make_unique<VETargetCodeGenInfo>(CGM.
getTypes());
ABIArgInfo - Helper class to encapsulate information about how a specific C type should be passed to ...
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)
ABIArgInfo & getReturnInfo()
CanQualType getReturnType() const
MutableArrayRef< ArgInfo > arguments()
This class organizes the cross-function state that is used while generating LLVM code.
CodeGenTypes & getTypes()
DefaultABIInfo - The default implementation for ABI specific details.
ABIArgInfo classifyArgumentType(QualType RetTy) const
ABIArgInfo classifyReturnType(QualType RetTy) const
A (possibly-)qualified type.
bool isAnyComplexType() const
ABIArgInfo classifyArgumentType(CodeGenModule &CGM, CanQualType type)
Classify the rules for how to pass a particular type.
bool classifyReturnType(const CGCXXABI &CXXABI, CGFunctionInfo &FI, const ABIInfo &Info)
std::unique_ptr< TargetCodeGenInfo > createVETargetCodeGenInfo(CodeGenModule &CGM)
The JSON file list parser is used to communicate input to InstallAPI.