LLVM 19.0.0git
Namespaces | Macros | Typedefs | Enumerations | Functions | Variables
MipsRegisterBankInfo.cpp File Reference

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
 

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 674 of file MipsRegisterBankInfo.cpp.

Function Documentation

◆ combineAwayG_UNMERGE_VALUES()

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

◆ getFprbMapping()

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

◆ getGprbOrCustomMapping()

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

◆ getMSAMapping()

static const MipsRegisterBankInfo::ValueMapping * getMSAMapping ( const MachineFunction MF)
static

◆ isAmbiguous()

static bool isAmbiguous ( unsigned  Opc)
static

Definition at line 164 of file MipsRegisterBankInfo.cpp.

◆ isFloatingPointOpcode()

static bool isFloatingPointOpcode ( unsigned  Opc)
static

Definition at line 108 of file MipsRegisterBankInfo.cpp.

Referenced by isFloatingPointOpcodeDef(), and isFloatingPointOpcodeUse().

◆ isFloatingPointOpcodeDef()

static bool isFloatingPointOpcodeDef ( unsigned  Opc)
static

Definition at line 142 of file MipsRegisterBankInfo.cpp.

References isFloatingPointOpcode().

◆ isFloatingPointOpcodeUse()

static bool isFloatingPointOpcodeUse ( unsigned  Opc)
static

Definition at line 129 of file MipsRegisterBankInfo.cpp.

References isFloatingPointOpcode().

◆ isGprbTwoInstrUnalignedLoadOrStore()

static bool isGprbTwoInstrUnalignedLoadOrStore ( const MachineInstr MI)
static

Variable Documentation

◆ CustomMappingID

const unsigned CustomMappingID = 1
static