LLVM 20.0.0git
|
Helper struct that represents how a value is partially mapped into a register. More...
#include "llvm/CodeGen/RegisterBankInfo.h"
Public Member Functions | |
PartialMapping ()=default | |
constexpr | PartialMapping (unsigned StartIdx, unsigned Length, const RegisterBank &RegBank) |
Provide a shortcut for quickly building PartialMapping. | |
unsigned | getHighBitIdx () const |
void | dump () const |
Print this partial mapping on dbgs() stream. | |
void | print (raw_ostream &OS) const |
Print this partial mapping on OS ;. | |
bool | verify (const RegisterBankInfo &RBI) const |
Check that the Mask is compatible with the RegBank. | |
Public Attributes | |
unsigned | StartIdx |
Number of bits at which this partial mapping starts in the original value. | |
unsigned | Length |
Length of this mapping in bits. | |
const RegisterBank * | RegBank |
Register bank where the partial value lives. | |
Helper struct that represents how a value is partially mapped into a register.
The StartIdx and Length represent what region of the orginal value this partial mapping covers. This can be represented as a Mask of contiguous bit starting at StartIdx bit and spanning Length bits. StartIdx is the number of bits from the less significant bits.
Definition at line 49 of file RegisterBankInfo.h.
|
default |
|
inlineconstexpr |
Provide a shortcut for quickly building PartialMapping.
Definition at line 66 of file RegisterBankInfo.h.
LLVM_DUMP_METHOD void RegisterBankInfo::PartialMapping::dump | ( | ) | const |
Print this partial mapping on dbgs() stream.
Definition at line 519 of file RegisterBankInfo.cpp.
References llvm::dbgs(), and print().
|
inline |
Definition at line 72 of file RegisterBankInfo.h.
References Length, and StartIdx.
Referenced by llvm::RegisterBankInfo::ValueMapping::verify().
void RegisterBankInfo::PartialMapping::print | ( | raw_ostream & | OS | ) | const |
Print this partial mapping on OS
;.
Definition at line 536 of file RegisterBankInfo.cpp.
References OS.
Referenced by dump(), and llvm::operator<<().
bool RegisterBankInfo::PartialMapping::verify | ( | const RegisterBankInfo & | RBI | ) | const |
Check that the Mask is compatible with the RegBank.
Indeed, if the RegBank cannot accomadate the "active bits" of the mask, there is no way this mapping is valid.
Definition at line 525 of file RegisterBankInfo.cpp.
References assert(), llvm::RegisterBankInfo::getMaximumSize(), and llvm::Length.
Referenced by llvm::RegisterBankInfo::ValueMapping::verify().
unsigned llvm::RegisterBankInfo::PartialMapping::Length |
Length of this mapping in bits.
This is how many bits this partial mapping covers in the original value: from StartIdx to StartIdx + Length -1.
Definition at line 58 of file RegisterBankInfo.h.
Referenced by llvm::ARM::checkPartMapping(), llvm::RegisterBankInfo::OperandsMapper::createVRegs(), llvm::AMDGPURegisterBankInfo::getBreakDownCost(), getHighBitIdx(), llvm::hash_value(), and llvm::RegBankSelect::repairReg().
const RegisterBank* llvm::RegisterBankInfo::PartialMapping::RegBank |
Register bank where the partial value lives.
Definition at line 61 of file RegisterBankInfo.h.
Referenced by llvm::RegBankSelect::applyMapping(), llvm::AMDGPURegisterBankInfo::applyMappingBFE(), llvm::AMDGPURegisterBankInfo::applyMappingImpl(), llvm::AMDGPURegisterBankInfo::applyMappingLoad(), llvm::AMDGPURegisterBankInfo::applyMappingSBufferLoad(), llvm::RegBankSelect::assignmentMatch(), llvm::ARM::checkPartMapping(), llvm::RegisterBankInfo::OperandsMapper::createVRegs(), llvm::AMDGPURegisterBankInfo::getBreakDownCost(), llvm::RegBankSelect::getRepairCost(), and llvm::hash_value().
unsigned llvm::RegisterBankInfo::PartialMapping::StartIdx |
Number of bits at which this partial mapping starts in the original value.
The bits are counted from less significant bits to most significant bits.
Definition at line 53 of file RegisterBankInfo.h.
Referenced by llvm::ARM::checkPartMapping(), llvm::AMDGPURegisterBankInfo::getBreakDownCost(), getHighBitIdx(), llvm::hash_value(), and llvm::RegisterBankInfo::ValueMapping::verify().