Lines Matching defs:RegisterBankInfo
1 //===- llvm/CodeGen/GlobalISel/RegisterBankInfo.cpp --------------*- C++ -*-==//
9 /// This file implements the RegisterBankInfo class.
12 #include "llvm/CodeGen/RegisterBankInfo.h"
50 const unsigned RegisterBankInfo::DefaultMappingID = UINT_MAX;
51 const unsigned RegisterBankInfo::InvalidMappingID = UINT_MAX - 1;
54 // RegisterBankInfo implementation.
56 RegisterBankInfo::RegisterBankInfo(const RegisterBank **RegBanks,
70 bool RegisterBankInfo::verify(const TargetRegisterInfo &TRI) const {
84 RegisterBankInfo::getRegBank(Register Reg, const MachineRegisterInfo &MRI,
103 RegisterBankInfo::getMinimalPhysRegClass(Register Reg,
112 const RegisterBank *RegisterBankInfo::getRegBankFromConstraints(
132 const TargetRegisterClass *RegisterBankInfo::constrainGenericRegister(
161 const RegisterBankInfo::InstructionMapping &
162 RegisterBankInfo::getInstrMappingImpl(const MachineInstr &MI) const {
275 llvm::hash_value(const RegisterBankInfo::PartialMapping &PartMapping) {
280 const RegisterBankInfo::PartialMapping &
281 RegisterBankInfo::getPartialMapping(unsigned StartIdx, unsigned Length,
297 const RegisterBankInfo::ValueMapping &
298 RegisterBankInfo::getValueMapping(unsigned StartIdx, unsigned Length,
304 hashValueMapping(const RegisterBankInfo::PartialMapping *BreakDown,
314 const RegisterBankInfo::ValueMapping &
315 RegisterBankInfo::getValueMapping(const PartialMapping *BreakDown,
332 const RegisterBankInfo::ValueMapping *
333 RegisterBankInfo::getOperandsMapping(Iterator Begin, Iterator End) const {
362 const RegisterBankInfo::ValueMapping *RegisterBankInfo::getOperandsMapping(
363 const SmallVectorImpl<const RegisterBankInfo::ValueMapping *> &OpdsMapping)
368 const RegisterBankInfo::ValueMapping *RegisterBankInfo::getOperandsMapping(
369 std::initializer_list<const RegisterBankInfo::ValueMapping *> OpdsMapping)
376 const RegisterBankInfo::ValueMapping *OperandsMapping,
381 const RegisterBankInfo::InstructionMapping &
382 RegisterBankInfo::getInstructionMappingImpl(
384 const RegisterBankInfo::ValueMapping *OperandsMapping,
406 const RegisterBankInfo::InstructionMapping &
407 RegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
408 const RegisterBankInfo::InstructionMapping &Mapping = getInstrMappingImpl(MI);
414 RegisterBankInfo::InstructionMappings
415 RegisterBankInfo::getInstrPossibleMappings(const MachineInstr &MI) const {
433 RegisterBankInfo::InstructionMappings
434 RegisterBankInfo::getInstrAlternativeMappings(const MachineInstr &MI) const {
439 void RegisterBankInfo::applyDefaultMapping(const OperandsMapper &OpdMapper) {
498 TypeSize RegisterBankInfo::getSizeInBits(Register Reg,
517 LLVM_DUMP_METHOD void RegisterBankInfo::PartialMapping::dump() const {
523 bool RegisterBankInfo::PartialMapping::verify(
524 const RegisterBankInfo &RBI) const {
534 void RegisterBankInfo::PartialMapping::print(raw_ostream &OS) const {
542 bool RegisterBankInfo::ValueMapping::partsAllUniform() const {
555 bool RegisterBankInfo::ValueMapping::verify(const RegisterBankInfo &RBI,
559 for (const RegisterBankInfo::PartialMapping &PartMap : *this) {
572 for (const RegisterBankInfo::PartialMapping &PartMap : *this) {
587 LLVM_DUMP_METHOD void RegisterBankInfo::ValueMapping::dump() const {
593 void RegisterBankInfo::ValueMapping::print(raw_ostream &OS) const {
604 bool RegisterBankInfo::InstructionMapping::verify(
614 const RegisterBankInfo *RBI = MF.getSubtarget().getRegBankInfo();
633 const RegisterBankInfo::ValueMapping &MOMapping = getOperandMapping(Idx);
646 LLVM_DUMP_METHOD void RegisterBankInfo::InstructionMapping::dump() const {
652 void RegisterBankInfo::InstructionMapping::print(raw_ostream &OS) const {
663 const int RegisterBankInfo::OperandsMapper::DontKnowIdx = -1;
665 RegisterBankInfo::OperandsMapper::OperandsMapper(
675 RegisterBankInfo::OperandsMapper::getVRegsMem(unsigned OpIdx) {
697 RegisterBankInfo::OperandsMapper::getNewVRegsEnd(unsigned StartIdx,
702 RegisterBankInfo::OperandsMapper::getNewVRegsEnd(unsigned StartIdx,
711 void RegisterBankInfo::OperandsMapper::createVRegs(unsigned OpIdx) {
731 void RegisterBankInfo::OperandsMapper::setVRegs(unsigned OpIdx,
746 RegisterBankInfo::OperandsMapper::getVRegs(unsigned OpIdx,
769 LLVM_DUMP_METHOD void RegisterBankInfo::OperandsMapper::dump() const {
775 void RegisterBankInfo::OperandsMapper::print(raw_ostream &OS,