LLVM
15.0.0git
|
#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 | |
llvm | |
This is an optimization pass for GlobalISel generic memory operations. | |
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 | |
RegisterBankInfo::PartialMapping | llvm::Mips::PartMappings [] |
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 675 of file MipsRegisterBankInfo.cpp.
|
static |
Definition at line 717 of file MipsRegisterBankInfo.cpp.
References MI, and llvm::LegalizationArtifactCombiner::tryCombineUnmergeValues().
Referenced by llvm::MipsRegisterBankInfo::applyMappingImpl().
|
static |
Definition at line 406 of file MipsRegisterBankInfo.cpp.
References llvm::Mips::DPRIdx, llvm::Mips::SPRIdx, and llvm::Mips::ValueMappings.
Referenced by llvm::MipsRegisterBankInfo::getInstrMapping().
|
static |
Definition at line 416 of file MipsRegisterBankInfo.cpp.
References CustomMappingID, llvm::Mips::DPRIdx, llvm::Mips::GPRIdx, and llvm::Mips::ValueMappings.
Referenced by llvm::MipsRegisterBankInfo::getInstrMapping().
|
static |
Definition at line 400 of file MipsRegisterBankInfo.cpp.
References assert(), llvm::MachineFunction::getSubtarget(), llvm::MipsSubtarget::hasMSA(), llvm::Mips::MSAIdx, and llvm::Mips::ValueMappings.
Referenced by llvm::MipsRegisterBankInfo::getInstrMapping().
|
static |
Definition at line 165 of file MipsRegisterBankInfo.cpp.
|
static |
Definition at line 108 of file MipsRegisterBankInfo.cpp.
Referenced by isFloatingPointOpcodeDef(), and isFloatingPointOpcodeUse().
|
static |
Definition at line 142 of file MipsRegisterBankInfo.cpp.
References isFloatingPointOpcode().
|
static |
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().
|
static |
Definition at line 411 of file MipsRegisterBankInfo.cpp.
Referenced by getGprbOrCustomMapping(), and llvm::MipsRegisterBankInfo::getInstrMapping().