clang  6.0.0svn
Functions
SwiftCallingConv.cpp File Reference
#include "clang/CodeGen/SwiftCallingConv.h"
#include "clang/Basic/TargetInfo.h"
#include "CodeGenModule.h"
#include "TargetInfo.h"
Include dependency graph for SwiftCallingConv.cpp:

Go to the source code of this file.

Functions

static const SwiftABIInfogetSwiftABIInfo (CodeGenModule &CGM)
 
static bool isPowerOf2 (unsigned n)
 
static llvm::Type * getCommonType (llvm::Type *first, llvm::Type *second)
 Given two types with the same size, try to find a common type. More...
 
static CharUnits getTypeStoreSize (CodeGenModule &CGM, llvm::Type *type)
 
static CharUnits getTypeAllocSize (CodeGenModule &CGM, llvm::Type *type)
 
static CharUnits getOffsetAtStartOfUnit (CharUnits offset, CharUnits unitSize)
 Given a power-of-two unit size, return the offset of the aligned unit of that size which contains the given offset. More...
 
static bool areBytesInSameUnit (CharUnits first, CharUnits second, CharUnits chunkSize)
 
static ABIArgInfo classifyExpandedType (SwiftAggLowering &lowering, bool forReturn, CharUnits alignmentForIndirect)
 
static ABIArgInfo classifyType (CodeGenModule &CGM, CanQualType type, bool forReturn)
 

Function Documentation

◆ areBytesInSameUnit()

static bool areBytesInSameUnit ( CharUnits  first,
CharUnits  second,
CharUnits  chunkSize 
)
static

◆ classifyExpandedType()

static ABIArgInfo classifyExpandedType ( SwiftAggLowering lowering,
bool  forReturn,
CharUnits  alignmentForIndirect 
)
static

◆ classifyType()

static ABIArgInfo classifyType ( CodeGenModule CGM,
CanQualType  type,
bool  forReturn 
)
static

◆ getCommonType()

static llvm::Type* getCommonType ( llvm::Type *  first,
llvm::Type *  second 
)
static

Given two types with the same size, try to find a common type.

Definition at line 32 of file SwiftCallingConv.cpp.

Referenced by clang::CodeGen::swiftcall::SwiftAggLowering::addTypedData().

◆ getOffsetAtStartOfUnit()

static CharUnits getOffsetAtStartOfUnit ( CharUnits  offset,
CharUnits  unitSize 
)
static

Given a power-of-two unit size, return the offset of the aligned unit of that size which contains the given offset.

In other words, round down to the nearest multiple of the unit size.

Definition at line 406 of file SwiftCallingConv.cpp.

References clang::CharUnits::fromQuantity(), clang::CharUnits::getQuantity(), and isPowerOf2().

Referenced by areBytesInSameUnit(), and clang::CodeGen::swiftcall::SwiftAggLowering::finish().

◆ getSwiftABIInfo()

static const SwiftABIInfo& getSwiftABIInfo ( CodeGenModule CGM)
static

◆ getTypeAllocSize()

static CharUnits getTypeAllocSize ( CodeGenModule CGM,
llvm::Type *  type 
)
static

◆ getTypeStoreSize()

static CharUnits getTypeStoreSize ( CodeGenModule CGM,
llvm::Type *  type 
)
static

◆ isPowerOf2()

static bool isPowerOf2 ( unsigned  n)
static