34 "This is not a subregister index");
37 const uint16_t *SRI = SubRegIndices +
get(
Reg).SubRegIndices;
48 const uint16_t *SRI = SubRegIndices +
get(
Reg).SubRegIndices;
57 "This is not a subregister index");
58 return SubRegIdxRanges[Idx].
Size;
63 "This is not a subregister index");
64 return SubRegIdxRanges[Idx].
Offset;
69 unsigned Size = isEH ? EHL2DwarfRegsSize : L2DwarfRegsSize;
75 if (I == M+Size || I->
FromReg != RegNum)
82 unsigned Size = isEH ? EHDwarf2LRegsSize : Dwarf2LRegsSize;
88 assert(I != M+Size && I->
FromReg == RegNum &&
"Invalid RegNum");
94 unsigned Size = EHDwarf2LRegsSize;
100 if (I == M+Size || I->
FromReg != RegNum)
122 if (I == L2SEHRegs.
end())
return (
int)RegNum;
127 if (L2CVRegs.
empty())
130 if (I == L2CVRegs.
end())
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(Error Err, bool gen_crash_diag=true)
Report a serious error, calling any installed error handler.
This class represents lattice values for constants.
unsigned getSubRegIndex(unsigned RegNo, unsigned SubRegNo) const
For a given register pair, return the sub-register index if the second register is a sub-register of ...
int getLLVMRegNumFromEH(unsigned RegNum) const
Map a DWARF EH register back to a target register (same as getLLVMRegNum(RegNum, true)) but return -1...
int getDwarfRegNumFromDwarfEHRegNum(unsigned RegNum) const
Map a target EH register number to an equivalent DWARF register number.
MCSuperRegIterator enumerates all super-registers of Reg.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
bool contains(unsigned Reg) const
contains - Return true if the specified register is included in this register class.
int getDwarfRegNum(unsigned RegNum, bool isEH) const
Map a target register to an equivalent dwarf register number.
auto lower_bound(R &&Range, ForwardIt I) -> decltype(adl_begin(Range))
Provide wrappers to std::lower_bound which take ranges instead of having to pass begin/end explicitly...
MCRegisterClass - Base class of TargetRegisterClass.
const char * getName(unsigned RegNo) const
Return the human-readable symbolic target-specific name for the specified physical register...
iterator find(const_arg_type_t< KeyT > Val)
unsigned getNumRegs() const
Return the number of registers this target has (useful for sizing arrays holding per register informa...
unsigned getMatchingSuperReg(unsigned Reg, unsigned SubIdx, const MCRegisterClass *RC) const
Return a super-register of the specified register Reg so its sub-register of index SubIdx is Reg...
unsigned getSubReg(unsigned Reg, unsigned Idx) const
Returns the physical register number of sub-register "Index" for physical register RegNo...
unsigned getSubRegIdxOffset(unsigned Idx) const
Get the offset of the bit range covered by a sub-register index.
MCSubRegIterator enumerates all sub-registers of Reg.
DwarfLLVMRegPair - Emitted by tablegen so Dwarf<->LLVM reg mappings can be performed with a binary se...
bool isValid() const
isValid - returns true if this iterator is not yet at the end.
int getCodeViewRegNum(unsigned RegNum) const
Map a target register to an equivalent CodeView register number.
unsigned getNumSubRegIndices() const
Return the number of sub-register indices understood by the target.
LLVM_NODISCARD bool empty() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
int getSEHRegNum(unsigned RegNum) const
Map a target register to an equivalent SEH register number.
unsigned getSubRegIdxSize(unsigned Idx) const
Get the size of the bit range covered by a sub-register index.
int getLLVMRegNum(unsigned RegNum, bool isEH) const
Map a dwarf register back to a target register.