LLVM 18.0.0git
|
This file implements the targeting of the RegisterBankInfo class for Mips. More...
#include "MipsRegisterBankInfo.h"
#include "MipsInstrInfo.h"
#include "MipsTargetMachine.h"
#include "llvm/CodeGen/GlobalISel/GISelChangeObserver.h"
#include "llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h"
#include "llvm/CodeGen/GlobalISel/LegalizerHelper.h"
#include "llvm/CodeGen/MachineRegisterInfo.h"
#include "MipsGenRegisterBank.inc"
Go to the source code of this file.
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::Mips |
Macros | |
#define | GET_TARGET_REGBANK_IMPL |
Typedefs | |
using | InstListTy = GISelWorkList< 4 > |
Enumerations | |
enum | llvm::Mips::PartialMappingIdx { llvm::Mips::PMI_GPR , llvm::Mips::PMI_SPR , llvm::Mips::PMI_DPR , llvm::Mips::PMI_MSA , llvm::Mips::PMI_Min = PMI_GPR } |
enum | llvm::Mips::ValueMappingIdx { llvm::Mips::InvalidIdx = 0 , llvm::Mips::GPRIdx = 1 , llvm::Mips::SPRIdx = 4 , llvm::Mips::DPRIdx = 7 , llvm::Mips::MSAIdx = 10 } |
Functions | |
static bool | isFloatingPointOpcode (unsigned Opc) |
static bool | isFloatingPointOpcodeUse (unsigned Opc) |
static bool | isFloatingPointOpcodeDef (unsigned Opc) |
static bool | isGprbTwoInstrUnalignedLoadOrStore (const MachineInstr *MI) |
static bool | isAmbiguous (unsigned Opc) |
static const MipsRegisterBankInfo::ValueMapping * | getMSAMapping (const MachineFunction &MF) |
static const MipsRegisterBankInfo::ValueMapping * | getFprbMapping (unsigned Size) |
static const MipsRegisterBankInfo::ValueMapping * | getGprbOrCustomMapping (unsigned Size, unsigned &MappingID) |
static void | combineAwayG_UNMERGE_VALUES (LegalizationArtifactCombiner &ArtCombiner, GUnmerge &MI, GISelChangeObserver &Observer) |
Variables | |
const RegisterBankInfo::PartialMapping | llvm::Mips::PartMappings [] |
const RegisterBankInfo::ValueMapping | llvm::Mips::ValueMappings [] |
static const unsigned | CustomMappingID = 1 |
This file implements the targeting of the RegisterBankInfo class for Mips.
Definition in file MipsRegisterBankInfo.cpp.
#define GET_TARGET_REGBANK_IMPL |
Definition at line 21 of file MipsRegisterBankInfo.cpp.
using InstListTy = GISelWorkList<4> |
Definition at line 674 of file MipsRegisterBankInfo.cpp.
|
static |
Definition at line 722 of file MipsRegisterBankInfo.cpp.
References MI, and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().
Referenced by llvm::MipsRegisterBankInfo::applyMappingImpl().
Definition at line 405 of file MipsRegisterBankInfo.cpp.
References llvm::Mips::DPRIdx, Size, llvm::Mips::SPRIdx, and llvm::Mips::ValueMappings.
Referenced by llvm::MipsRegisterBankInfo::getInstrMapping().
|
static |
Definition at line 415 of file MipsRegisterBankInfo.cpp.
References CustomMappingID, llvm::Mips::DPRIdx, llvm::Mips::GPRIdx, Size, and llvm::Mips::ValueMappings.
Referenced by llvm::MipsRegisterBankInfo::getInstrMapping().
|
static |
Definition at line 399 of file MipsRegisterBankInfo.cpp.
References assert(), llvm::MachineFunction::getSubtarget(), llvm::MipsSubtarget::hasMSA(), llvm::Mips::MSAIdx, and llvm::Mips::ValueMappings.
Referenced by llvm::MipsRegisterBankInfo::getInstrMapping().
Definition at line 164 of file MipsRegisterBankInfo.cpp.
Definition at line 108 of file MipsRegisterBankInfo.cpp.
Referenced by isFloatingPointOpcodeDef(), and isFloatingPointOpcodeUse().
Definition at line 142 of file MipsRegisterBankInfo.cpp.
References isFloatingPointOpcode().
Definition at line 129 of file MipsRegisterBankInfo.cpp.
References isFloatingPointOpcode().
|
static |
Definition at line 152 of file MipsRegisterBankInfo.cpp.
References MI, and llvm::MipsSubtarget::systemSupportsUnalignedAccess().
Definition at line 410 of file MipsRegisterBankInfo.cpp.
Referenced by getGprbOrCustomMapping(), and llvm::MipsRegisterBankInfo::getInstrMapping().