LLVM 20.0.0git
|
#include "llvm/CodeGen/RDFRegisters.h"
Public Member Functions | |
PhysicalRegisterInfo (const TargetRegisterInfo &tri, const MachineFunction &mf) | |
RegisterId | getRegMaskId (const uint32_t *RM) const |
const uint32_t * | getRegMaskBits (RegisterId R) const |
bool | alias (RegisterRef RA, RegisterRef RB) const |
std::set< RegisterId > | getAliasSet (RegisterId Reg) const |
RegisterRef | getRefForUnit (uint32_t U) const |
const BitVector & | getMaskUnits (RegisterId MaskId) const |
std::set< RegisterId > | getUnits (RegisterRef RR) const |
const BitVector & | getUnitAliases (uint32_t U) const |
RegisterRef | mapTo (RegisterRef RR, unsigned R) const |
const TargetRegisterInfo & | getTRI () const |
bool | equal_to (RegisterRef A, RegisterRef B) const |
bool | less (RegisterRef A, RegisterRef B) const |
void | print (raw_ostream &OS, RegisterRef A) const |
void | print (raw_ostream &OS, const RegisterAggr &A) const |
Definition at line 141 of file RDFRegisters.h.
llvm::rdf::PhysicalRegisterInfo::PhysicalRegisterInfo | ( | const TargetRegisterInfo & | tri, |
const MachineFunction & | mf | ||
) |
Definition at line 28 of file RDFRegisters.cpp.
References assert(), B, E, F, llvm::BitVector::flip(), llvm::MCRegister::from(), llvm::rdf::IndexedSet< T, N >::get(), llvm::LaneBitmask::getAll(), llvm::MCRegisterInfo::getNumRegs(), llvm::MCRegisterInfo::getNumRegUnits(), llvm::TargetRegisterInfo::getRegMasks(), I, llvm::rdf::IndexedSet< T, N >::insert(), P, Reg, llvm::TargetRegisterInfo::regclasses(), llvm::MCRegisterInfo::regunits(), llvm::BitVector::set(), llvm::rdf::IndexedSet< T, N >::size(), and llvm::MCRegisterInfo::superregs_inclusive().
bool llvm::rdf::PhysicalRegisterInfo::alias | ( | RegisterRef | RA, |
RegisterRef | RB | ||
) | const |
Definition at line 100 of file RDFRegisters.cpp.
References llvm::rdf::disjoint(), getUnits(), and RA.
Referenced by llvm::rdf::Liveness::getAllReachedUses(), llvm::rdf::Liveness::getAllReachingDefs(), and llvm::rdf::Liveness::getNearestAliasedRef().
bool llvm::rdf::PhysicalRegisterInfo::equal_to | ( | RegisterRef | A, |
RegisterRef | B | ||
) | const |
Definition at line 180 of file RDFRegisters.cpp.
References A, B, getTRI(), and llvm::MCRegUnitMaskIterator::isValid().
Referenced by llvm::rdf::DataFlowGraph::getNextRelated(), and llvm::rdf::CopyPropagation::run().
std::set< RegisterId > llvm::rdf::PhysicalRegisterInfo::getAliasSet | ( | RegisterId | Reg | ) | const |
Definition at line 104 of file RDFRegisters.cpp.
References assert(), llvm::MCRegisterInfo::getNumRegs(), getRegMaskBits(), llvm::rdf::RegisterRef::isMaskId(), llvm::rdf::RegisterRef::isRegId(), llvm::rdf::RegisterRef::isUnitId(), llvm::MCRegAliasIterator::isValid(), and Reg.
|
inline |
Definition at line 162 of file RDFRegisters.h.
References llvm::Register::stackSlot2Index().
Referenced by llvm::rdf::RegisterAggr::hasAliasOf(), llvm::rdf::RegisterAggr::hasCoverOf(), and llvm::rdf::RegisterAggr::insert().
|
inline |
Definition at line 158 of file RDFRegisters.h.
References Reg.
Referenced by llvm::rdf::RegisterAggr::ref_iterator::ref_iterator().
|
inline |
Definition at line 149 of file RDFRegisters.h.
References llvm::rdf::IndexedSet< T, N >::get(), and llvm::Register::stackSlot2Index().
Referenced by getAliasSet(), and getUnits().
|
inline |
Definition at line 145 of file RDFRegisters.h.
References llvm::rdf::IndexedSet< T, N >::find(), and llvm::Register::index2StackSlot().
|
inline |
Definition at line 173 of file RDFRegisters.h.
Referenced by llvm::rdf::DataFlowGraph::build(), equal_to(), llvm::rdf::RegisterAggr::hasAliasOf(), llvm::rdf::RegisterAggr::hasCoverOf(), llvm::rdf::RegisterAggr::insert(), less(), and llvm::rdf::RegisterAggr::makeRegRef().
Definition at line 168 of file RDFRegisters.h.
Referenced by llvm::rdf::RegisterAggr::makeRegRef().
std::set< RegisterId > llvm::rdf::PhysicalRegisterInfo::getUnits | ( | RegisterRef | RR | ) | const |
Definition at line 126 of file RDFRegisters.cpp.
References assert(), llvm::CallingConv::C, llvm::countr_zero(), E, llvm::MCRegisterInfo::getNumRegs(), getRegMaskBits(), I, llvm::rdf::RegisterRef::idx(), llvm::rdf::RegisterRef::isMask(), llvm::rdf::RegisterRef::isReg(), llvm::MCRegUnitMaskIterator::isValid(), llvm::rdf::RegisterRef::Mask, llvm::LaneBitmask::none(), llvm::rdf::RegisterRef::Reg, llvm::MCRegisterInfo::regunits(), and T.
Referenced by alias().
bool llvm::rdf::PhysicalRegisterInfo::less | ( | RegisterRef | A, |
RegisterRef | B | ||
) | const |
Definition at line 216 of file RDFRegisters.cpp.
References A, B, getTRI(), and llvm::MCRegUnitMaskIterator::isValid().
RegisterRef llvm::rdf::PhysicalRegisterInfo::mapTo | ( | RegisterRef | RR, |
unsigned | R | ||
) | const |
Definition at line 165 of file RDFRegisters.cpp.
References llvm::TargetRegisterInfo::composeSubRegIndexLaneMask(), llvm::LaneBitmask::getAll(), llvm::MCRegisterInfo::getSubRegIndex(), Idx, llvm_unreachable, llvm::rdf::RegisterRef::Mask, llvm::rdf::RegisterRef::Reg, and llvm::TargetRegisterInfo::reverseComposeSubRegIndexLaneMask().
Referenced by llvm::rdf::Liveness::computePhiInfo().
void llvm::rdf::PhysicalRegisterInfo::print | ( | raw_ostream & | OS, |
const RegisterAggr & | A | ||
) | const |
Definition at line 272 of file RDFRegisters.cpp.
References A, OS, and llvm::printRegUnit().
void llvm::rdf::PhysicalRegisterInfo::print | ( | raw_ostream & | OS, |
RegisterRef | A | ||
) | const |
Definition at line 254 of file RDFRegisters.cpp.
References A, assert(), llvm::format(), llvm::MCRegisterInfo::getName(), llvm::MCRegisterInfo::getNumRegs(), Idx, OS, llvm::printReg(), llvm::printRegUnit(), and llvm::Register::stackSlot2Index().