class ABIInfo

Declaration

class ABIInfo { /* full declaration omitted */ };

Description

ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.

Declared at: clang/lib/CodeGen/ABIInfo.h:46

Member Variables

public CodeGen::CodeGenTypes& CGT
protected llvm::CallingConv::ID RuntimeCC

Method Overview

Methods

ABIInfo(CodeGen::CodeGenTypes& cgt)

Declared at: clang/lib/CodeGen/ABIInfo.h:52

Parameters

CodeGen::CodeGenTypes& cgt

virtual CodeGen::Address EmitMSVAArg(
    CodeGen::CodeGenFunction& CGF,
    CodeGen::Address VAListAddr,
    clang::QualType Ty) const

Description

Emit the target dependent code to load a value of

Declared at: clang/lib/CodeGen/ABIInfo.h:91

Parameters

CodeGen::CodeGenFunction& CGF
CodeGen::Address VAListAddr
clang::QualType Ty

virtual CodeGen::Address EmitVAArg(
    CodeGen::CodeGenFunction& CGF,
    CodeGen::Address VAListAddr,
    clang::QualType Ty) const

Declared at: clang/lib/CodeGen/ABIInfo.h:83

Parameters

CodeGen::CodeGenFunction& CGF
CodeGen::Address VAListAddr
clang::QualType Ty

virtual bool allowBFloatArgsAndRet() const

Declared at: clang/lib/CodeGen/ABIInfo.h:59

virtual void computeInfo(
    CodeGen::CGFunctionInfo& FI) const

Declared at: clang/lib/CodeGen/ABIInfo.h:74

Parameters

CodeGen::CGFunctionInfo& FI

CodeGen::CGCXXABI& getCXXABI() const

Declared at: clang/lib/CodeGen/ABIInfo.h:61

const clang::CodeGenOptions& getCodeGenOpts()
    const

Declared at: clang/lib/CodeGen/ABIInfo.h:66

clang::ASTContext& getContext() const

Declared at: clang/lib/CodeGen/ABIInfo.h:62

const llvm::DataLayout& getDataLayout() const

Declared at: clang/lib/CodeGen/ABIInfo.h:64

CodeGen::ABIArgInfo getNaturalAlignIndirect(
    clang::QualType Ty,
    bool ByVal = true,
    bool Realign = false,
    llvm::Type* Padding = nullptr) const

Description

A convenience method to return an indirect ABIArgInfo with an expected alignment equal to the ABI alignment of the given type.

Declared at: clang/lib/CodeGen/ABIInfo.h:111

Parameters

clang::QualType Ty
bool ByVal = true
bool Realign = false
llvm::Type* Padding = nullptr

CodeGen::ABIArgInfo getNaturalAlignIndirectInReg(
    clang::QualType Ty,
    bool Realign = false) const

Declared at: clang/lib/CodeGen/ABIInfo.h:116

Parameters

clang::QualType Ty
bool Realign = false

llvm::CallingConv::ID getRuntimeCC() const

Description

Return the calling convention to use for system runtime functions.

Declared at: clang/lib/CodeGen/ABIInfo.h:70

const clang::TargetInfo& getTarget() const

Declared at: clang/lib/CodeGen/ABIInfo.h:65

llvm::LLVMContext& getVMContext() const

Declared at: clang/lib/CodeGen/ABIInfo.h:63

bool isAndroid() const

Declared at: clang/lib/CodeGen/ABIInfo.h:87

bool isHomogeneousAggregate(
    clang::QualType Ty,
    const clang::Type*& Base,
    uint64_t& Members) const

Description

isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate. Base is set to the base element type, and Members is set to the number of base elements.

Declared at: clang/lib/CodeGen/ABIInfo.h:101

Parameters

clang::QualType Ty
const clang::Type*& Base
uint64_t& Members

virtual bool isHomogeneousAggregateBaseType(
    clang::QualType Ty) const

Declared at: clang/lib/CodeGen/ABIInfo.h:95

Parameters

clang::QualType Ty

virtual bool isHomogeneousAggregateSmallEnough(
    const clang::Type* Base,
    uint64_t Members) const

Declared at: clang/lib/CodeGen/ABIInfo.h:97

Parameters

const clang::Type* Base
uint64_t Members

bool isPromotableIntegerTypeForABI(
    clang::QualType Ty) const

Declared at: clang/lib/CodeGen/ABIInfo.h:106

Parameters

clang::QualType Ty

virtual bool
isZeroLengthBitfieldPermittedInHomogeneousAggregate()
    const

Declared at: clang/lib/CodeGen/ABIInfo.h:99

virtual bool supportsSwift() const

Declared at: clang/lib/CodeGen/ABIInfo.h:57

virtual ~ABIInfo()

Declared at: clang/lib/CodeGen/ABIInfo.h:55