LLVM 20.0.0git
|
This file implements the targeting of the RegisterBankInfo class for AArch64. More...
#include "AArch64RegisterBankInfo.h"
#include "AArch64RegisterInfo.h"
#include "MCTargetDesc/AArch64MCTargetDesc.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/CodeGen/GlobalISel/GenericMachineInstrs.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/GlobalISel/Utils.h"
#include "llvm/CodeGen/LowLevelTypeUtils.h"
#include "llvm/CodeGen/MachineFunction.h"
#include "llvm/CodeGen/MachineInstr.h"
#include "llvm/CodeGen/MachineOperand.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "llvm/CodeGen/RegisterBank.h"
#include "llvm/CodeGen/RegisterBankInfo.h"
#include "llvm/CodeGen/TargetOpcodes.h"
#include "llvm/CodeGen/TargetRegisterInfo.h"
#include "llvm/CodeGen/TargetSubtargetInfo.h"
#include "llvm/IR/IntrinsicsAArch64.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Threading.h"
#include <algorithm>
#include <cassert>
#include "AArch64GenRegisterBank.inc"
#include "AArch64GenRegisterBankInfo.def"
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) CHECK_VALUEMAP_IMPL(RBName, Size, 0) |
#define | CHECK_VALUEMAP_3OPS(RBName, Size) |
#define | CHECK_VALUEMAP_CROSSREGCPY(RBNameDst, RBNameSrc, Size) |
#define | CHECK_VALUEMAP_FPEXT(DstSize, SrcSize) |
Functions | |
static bool | isFPIntrinsic (const MachineRegisterInfo &MRI, const MachineInstr &MI) |
Variables | |
static const unsigned | CustomMappingID = 1 |
This file implements the targeting of the RegisterBankInfo class for AArch64.
Definition in file AArch64RegisterBankInfo.cpp.
#define CHECK_PARTIALMAP | ( | Idx, | |
ValStartIdx, | |||
ValLength, | |||
RB | |||
) |
#define CHECK_VALUEMAP | ( | RBName, | |
Size | |||
) | CHECK_VALUEMAP_IMPL(RBName, Size, 0) |
#define CHECK_VALUEMAP_3OPS | ( | RBName, | |
Size | |||
) |
#define CHECK_VALUEMAP_CROSSREGCPY | ( | RBNameDst, | |
RBNameSrc, | |||
Size | |||
) |
#define CHECK_VALUEMAP_FPEXT | ( | DstSize, | |
SrcSize | |||
) |
#define GET_TARGET_REGBANK_IMPL |
Definition at line 38 of file AArch64RegisterBankInfo.cpp.
|
static |
Definition at line 452 of file AArch64RegisterBankInfo.cpp.
References llvm::LLT::getElementCount(), llvm::LLT::getElementType(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), getIntrinsicID(), llvm::LLT::getSizeInBits(), MI, and MRI.
Definition at line 45 of file AArch64RegisterBankInfo.cpp.
Referenced by getGprbOrCustomMapping(), llvm::AArch64RegisterBankInfo::getInstrMapping(), and llvm::MipsRegisterBankInfo::getInstrMapping().