LLVM  10.0.0svn
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"
Include dependency graph for MipsRegisterBankInfo.cpp:

Go to the source code of this file.

Namespaces

 llvm
 This class represents lattice values for constants.
 
 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 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, MachineInstr &MI)
 

Variables

RegisterBankInfo::PartialMapping llvm::Mips::PartMappings []
 
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 604 of file MipsRegisterBankInfo.cpp.

Function Documentation

◆ combineAwayG_UNMERGE_VALUES()

static void combineAwayG_UNMERGE_VALUES ( LegalizationArtifactCombiner ArtCombiner,
MachineInstr MI 
)
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

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

References llvm::MipsISD::BuildPairF64, and isFloatingPointOpcode().

Referenced by isAmbiguous().

◆ isFloatingPointOpcodeUse()

static bool isFloatingPointOpcodeUse ( unsigned  Opc)
static

Definition at line 129 of file MipsRegisterBankInfo.cpp.

References llvm::MipsISD::ExtractElementF64, and isFloatingPointOpcode().

Referenced by isAmbiguous().

Variable Documentation

◆ CustomMappingID

const unsigned CustomMappingID = 1
static