LLVM 18.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/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 <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 | isPreISelGenericFloatingPointOpcode (unsigned Opc) |
Returns whether opcode Opc is a pre-isel generic floating-point opcode, having only floating-point operands. | |
static bool | isFPIntrinsic (const MachineRegisterInfo &MRI, const MachineInstr &MI) |
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 36 of file AArch64RegisterBankInfo.cpp.
|
static |
Definition at line 488 of file AArch64RegisterBankInfo.cpp.
References llvm::LLT::getElementCount(), llvm::LLT::getElementType(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), getIntrinsicID(), llvm::LLT::getSizeInBits(), MI, and MRI.
Returns whether opcode Opc
is a pre-isel generic floating-point opcode, having only floating-point operands.
Definition at line 409 of file AArch64RegisterBankInfo.cpp.
Referenced by llvm::AArch64RegisterBankInfo::getInstrMapping().