LLVM 20.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 | 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 626 of file MipsRegisterBankInfo.cpp.
|
static |
Definition at line 674 of file MipsRegisterBankInfo.cpp.
References MI, and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().
Referenced by llvm::MipsRegisterBankInfo::applyMappingImpl().
Definition at line 357 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 367 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 351 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 116 of file MipsRegisterBankInfo.cpp.
Definition at line 93 of file MipsRegisterBankInfo.cpp.
References llvm::isPreISelGenericFloatingPointOpcode().
Definition at line 80 of file MipsRegisterBankInfo.cpp.
References llvm::isPreISelGenericFloatingPointOpcode().
|
static |
Definition at line 103 of file MipsRegisterBankInfo.cpp.
References MI, and llvm::MipsSubtarget::systemSupportsUnalignedAccess().
Definition at line 362 of file MipsRegisterBankInfo.cpp.