LLVM: lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp File Reference (original) (raw)

This file implements the targeting of the RegisterBankInfo class for AArch64. More...

Go to the source code of this file.

Macros
#define GET_TARGET_REGBANK_IMPL
#define CHECK_PARTIALMAP(Idx, ValStartIdx, ValLength, RB)
#define CHECK_VALUEMAP_IMPL(RBName, Size, Offset)
#define CHECK_VALUEMAP(RBName, Size)
#define CHECK_VALUEMAP_3OPS(RBName, Size)
#define CHECK_VALUEMAP_CROSSREGCPY(RBNameDst, RBNameSrc, Size)
#define CHECK_VALUEMAP_FPEXT(DstSize, SrcSize)

This file implements the targeting of the RegisterBankInfo class for AArch64.

Todo

This should be generated by TableGen.

Definition in file AArch64RegisterBankInfo.cpp.

CHECK_PARTIALMAP

#define CHECK_PARTIALMAP ( Idx,
ValStartIdx,
ValLength,
RB )

CHECK_VALUEMAP

#define CHECK_VALUEMAP ( RBName,
Size )

CHECK_VALUEMAP_3OPS

#define CHECK_VALUEMAP_3OPS ( RBName,
Size )

CHECK_VALUEMAP_CROSSREGCPY

#define CHECK_VALUEMAP_CROSSREGCPY ( RBNameDst,
RBNameSrc,
Size )

Value:

do { \

unsigned PartialMapDstIdx = PMI_##RBNameDst##Size - PMI_Min; \

unsigned PartialMapSrcIdx = PMI_##RBNameSrc##Size - PMI_Min; \

(void)PartialMapDstIdx; \

(void)PartialMapSrcIdx; \

const ValueMapping *Map = getCopyMapping(AArch64::RBNameDst##RegBankID, \

AArch64::RBNameSrc##RegBankID, \

(void)Map; \

assert(Map[0].BreakDown == \

Map[0].NumBreakDowns == 1 && \

#RBNameDst #Size " Dst is incorrectly initialized"); \

assert(Map[1].BreakDown == \

Map[1].NumBreakDowns == 1 && \

#RBNameSrc #Size " Src is incorrectly initialized"); \

\

} while (false)

static const RegisterBankInfo::PartialMapping PartMappings[]

static constexpr TypeSize getFixed(ScalarTy ExactSize)

Referenced by llvm::AArch64RegisterBankInfo::AArch64RegisterBankInfo().

CHECK_VALUEMAP_FPEXT

#define CHECK_VALUEMAP_FPEXT ( DstSize,
SrcSize )

Value:

do { \

unsigned PartialMapDstIdx = PMI_FPR##DstSize - PMI_Min; \

unsigned PartialMapSrcIdx = PMI_FPR##SrcSize - PMI_Min; \

(void)PartialMapDstIdx; \

(void)PartialMapSrcIdx; \

const ValueMapping *Map = getFPExtMapping(DstSize, SrcSize); \

(void)Map; \

assert(Map[0].BreakDown == \

Map[0].NumBreakDowns == 1 && "FPR" #DstSize \

" Dst is incorrectly initialized"); \

assert(Map[1].BreakDown == \

Map[1].NumBreakDowns == 1 && "FPR" #SrcSize \

" Src is incorrectly initialized"); \

\

} while (false)

Referenced by llvm::AArch64RegisterBankInfo::AArch64RegisterBankInfo().

CHECK_VALUEMAP_IMPL

#define CHECK_VALUEMAP_IMPL ( RBName,
Size,
Offset )

Value:

do { \

assert(checkValueMapImpl(PartialMappingIdx::PMI_##RBName##Size, \

PartialMappingIdx::PMI_First##RBName, Size, \

#RBName #Size " " #Offset " is incorrectly initialized"); \

} while (false)

GET_TARGET_REGBANK_IMPL

#define GET_TARGET_REGBANK_IMPL

isFPIntrinsic()

CustomMappingID