LLVM 22.0.0git
MipsRegisterBankInfo.cpp File Reference

This file implements the targeting of the RegisterBankInfo class for Mips. More...

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

Detailed Description

This file implements the targeting of the RegisterBankInfo class for Mips.

Todo
This should be generated by TableGen.

Definition in file MipsRegisterBankInfo.cpp.

Macro Definition Documentation

◆ GET_TARGET_REGBANK_IMPL

#define GET_TARGET_REGBANK_IMPL

Definition at line 21 of file MipsRegisterBankInfo.cpp.

Typedef Documentation

◆ InstListTy

Definition at line 626 of file MipsRegisterBankInfo.cpp.

Function Documentation

◆ combineAwayG_UNMERGE_VALUES()

void combineAwayG_UNMERGE_VALUES ( LegalizationArtifactCombiner & ArtCombiner,
GUnmerge & MI,
GISelChangeObserver & Observer )
static

◆ getFprbMapping()

const MipsRegisterBankInfo::ValueMapping * getFprbMapping ( unsigned Size)
static

◆ getGprbOrCustomMapping()

const MipsRegisterBankInfo::ValueMapping * getGprbOrCustomMapping ( unsigned Size,
unsigned & MappingID )
static

◆ getMSAMapping()

◆ isAmbiguous()

bool isAmbiguous ( unsigned Opc)
static

Definition at line 116 of file MipsRegisterBankInfo.cpp.

References Opc.

◆ isFloatingPointOpcodeDef()

bool isFloatingPointOpcodeDef ( unsigned Opc)
static

Definition at line 93 of file MipsRegisterBankInfo.cpp.

References llvm::isPreISelGenericFloatingPointOpcode(), and Opc.

◆ isFloatingPointOpcodeUse()

bool isFloatingPointOpcodeUse ( unsigned Opc)
static

Definition at line 80 of file MipsRegisterBankInfo.cpp.

References llvm::isPreISelGenericFloatingPointOpcode(), and Opc.

◆ isGprbTwoInstrUnalignedLoadOrStore()

bool isGprbTwoInstrUnalignedLoadOrStore ( const MachineInstr * MI)
static

Variable Documentation

◆ CustomMappingID

const unsigned CustomMappingID = 1
static

Definition at line 362 of file MipsRegisterBankInfo.cpp.