LLVM  7.0.0svn
Public Member Functions | List of all members
llvm::RegisterBankInfo::InstructionMapping Class Reference

Helper class that represents how the value of an instruction may be mapped and what is the related cost of such mapping. More...

#include "llvm/CodeGen/GlobalISel/RegisterBankInfo.h"

Public Member Functions

 InstructionMapping (unsigned ID, unsigned Cost, const ValueMapping *OperandsMapping, unsigned NumOperands)
 Constructor for the mapping of an instruction. More...
 InstructionMapping ()=default
 Default constructor. More...
unsigned getCost () const
 Get the cost. More...
unsigned getID () const
 Get the ID. More...
unsigned getNumOperands () const
 Get the number of operands. More...
const ValueMappinggetOperandMapping (unsigned i) const
 Get the value mapping of the ith operand. More...
void setOperandsMapping (const ValueMapping *OpdsMapping)
 Set the mapping for all the operands. More...
bool isValid () const
 Check whether this object is valid. More...
bool verify (const MachineInstr &MI) const
 Verifiy that this mapping makes sense for MI. More...
void dump () const
 Print this on dbgs() stream. More...
void print (raw_ostream &OS) const
 Print this on OS;. More...

Detailed Description

Helper class that represents how the value of an instruction may be mapped and what is the related cost of such mapping.

Definition at line 182 of file RegisterBankInfo.h.

Constructor & Destructor Documentation

◆ InstructionMapping() [1/2]

llvm::RegisterBankInfo::InstructionMapping::InstructionMapping ( unsigned  ID,
unsigned  Cost,
const ValueMapping OperandsMapping,
unsigned  NumOperands 

Constructor for the mapping of an instruction.

NumOperands must be equal to number of all the operands of the related instruction. The rationale is that it is more efficient for the optimizers to be able to assume that the mapping of the ith operand is at the index i.

ID != InvalidMappingID

Definition at line 211 of file RegisterBankInfo.h.

References assert(), getID(), and llvm::RegisterBankInfo::InvalidMappingID.

◆ InstructionMapping() [2/2]

llvm::RegisterBankInfo::InstructionMapping::InstructionMapping ( )

Default constructor.

Use this constructor to express that the mapping is invalid.

Member Function Documentation

◆ dump()

LLVM_DUMP_METHOD void RegisterBankInfo::InstructionMapping::dump ( ) const

Print this on dbgs() stream.

Definition at line 584 of file RegisterBankInfo.cpp.

References llvm::dbgs(), and print().

◆ getCost()

unsigned llvm::RegisterBankInfo::InstructionMapping::getCost ( ) const

Get the cost.

Definition at line 225 of file RegisterBankInfo.h.

Referenced by llvm::RegBankSelect::getAnalysisUsage().

◆ getID()

unsigned llvm::RegisterBankInfo::InstructionMapping::getID ( ) const

◆ getNumOperands()

unsigned llvm::RegisterBankInfo::InstructionMapping::getNumOperands ( ) const

◆ getOperandMapping()

const ValueMapping& llvm::RegisterBankInfo::InstructionMapping::getOperandMapping ( unsigned  i) const

Get the value mapping of the ith operand.

The mapping for the ith operand has been set.
The ith operand is a register.

Definition at line 236 of file RegisterBankInfo.h.

◆ isValid()

bool llvm::RegisterBankInfo::InstructionMapping::isValid ( ) const

◆ print()

void RegisterBankInfo::InstructionMapping::print ( raw_ostream OS) const

Print this on OS;.

Definition at line 590 of file RegisterBankInfo.cpp.

References getID().

◆ setOperandsMapping()

void llvm::RegisterBankInfo::InstructionMapping::setOperandsMapping ( const ValueMapping OpdsMapping)

Set the mapping for all the operands.

In other words, OpdsMapping should hold at least getNumOperands ValueMapping.

Definition at line 245 of file RegisterBankInfo.h.

◆ verify()

bool RegisterBankInfo::InstructionMapping::verify ( const MachineInstr MI) const

Verifiy that this mapping makes sense for MI.

MI must be connected to a MachineFunction.
This method does not check anything when assertions are disabled.
True is the check was successful.

Definition at line 547 of file RegisterBankInfo.cpp.

References assert(), llvm::MachineInstr::getMF(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), isCopyLike(), llvm::MachineOperand::isReg(), and llvm::RegisterBankInfo::ValueMapping::verify().

Referenced by llvm::RegBankSelect::getAnalysisUsage(), and llvm::RegisterBankInfo::OperandsMapper::OperandsMapper().

The documentation for this class was generated from the following files: