LLVM  14.0.0git
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 189 of file RegisterBankInfo.h.

## ◆ InstructionMapping() [1/2]

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

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.

Definition at line 216 of file RegisterBankInfo.h.

## ◆ InstructionMapping() [2/2]

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

Default constructor.

Use this constructor to express that the mapping is invalid.

## ◆ dump()

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

Print this on dbgs() stream.

Definition at line 632 of file RegisterBankInfo.cpp.

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

## ◆ getCost()

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

Get the cost.

Definition at line 228 of file RegisterBankInfo.h.

## ◆ getID()

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

Get the ID.

Definition at line 231 of file RegisterBankInfo.h.

## ◆ getNumOperands()

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

Get the number of operands.

Definition at line 234 of file RegisterBankInfo.h.

## ◆ getOperandMapping()

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

Get the value mapping of the ith operand.

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

Definition at line 239 of file RegisterBankInfo.h.

References i.

## ◆ isValid()

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

Check whether this object is valid.

This is a lightweight check for obvious wrong instance.

Definition at line 254 of file RegisterBankInfo.h.

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

## ◆ print()

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

Print this on OS;.

Definition at line 638 of file RegisterBankInfo.cpp.

Referenced by llvm::operator<<().

## ◆ setOperandsMapping()

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

Set the mapping for all the operands.

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

Definition at line 248 of file RegisterBankInfo.h.

## ◆ verify()

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

Verifiy that this mapping makes sense for MI.

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

Definition at line 595 of file RegisterBankInfo.cpp.

Referenced by llvm::RegisterBankInfo::OperandsMapper::OperandsMapper().

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