Skip to content

Commit f2b7149

Browse files
authored
[MC] Make MCRegisterInfo::getLLVMRegNum return std::optional<MCRegister>. NFC (#107776)
1 parent c30c065 commit f2b7149

File tree

9 files changed

+17
-17
lines changed

9 files changed

+17
-17
lines changed

llvm/include/llvm/MC/MCRegisterInfo.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -420,9 +420,9 @@ class MCRegisterInfo {
420420
/// debugging info.
421421
int getDwarfRegNum(MCRegister RegNum, bool isEH) const;
422422

423-
/// Map a dwarf register back to a target register. Returns std::nullopt is
423+
/// Map a dwarf register back to a target register. Returns std::nullopt if
424424
/// there is no mapping.
425-
std::optional<unsigned> getLLVMRegNum(unsigned RegNum, bool isEH) const;
425+
std::optional<MCRegister> getLLVMRegNum(unsigned RegNum, bool isEH) const;
426426

427427
/// Map a target EH register number to an equivalent DWARF register
428428
/// number.

llvm/lib/CodeGen/MachineOperand.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ static void printCFIRegister(unsigned DwarfReg, raw_ostream &OS,
494494
return;
495495
}
496496

497-
if (std::optional<unsigned> Reg = TRI->getLLVMRegNum(DwarfReg, true))
497+
if (std::optional<MCRegister> Reg = TRI->getLLVMRegNum(DwarfReg, true))
498498
OS << printReg(*Reg, TRI);
499499
else
500500
OS << "<badreg>";

llvm/lib/CodeGen/StackMaps.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ StackMaps::parseOperand(MachineInstr::const_mop_iterator MOI,
282282

283283
unsigned Offset = 0;
284284
unsigned DwarfRegNum = getDwarfRegNum(MOI->getReg(), TRI);
285-
unsigned LLVMRegNum = *TRI->getLLVMRegNum(DwarfRegNum, false);
285+
MCRegister LLVMRegNum = *TRI->getLLVMRegNum(DwarfRegNum, false);
286286
unsigned SubRegIdx = TRI->getSubRegIndex(LLVMRegNum, MOI->getReg());
287287
if (SubRegIdx)
288288
Offset = TRI->getSubRegIdxOffset(SubRegIdx);

llvm/lib/DebugInfo/LogicalView/Readers/LVDWARFReader.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -789,7 +789,7 @@ std::string LVDWARFReader::getRegisterName(LVSmall Opcode,
789789
auto GetRegName = [&MCRegInfo](uint64_t DwarfRegNum, bool IsEH) -> StringRef {
790790
if (!MCRegInfo)
791791
return {};
792-
if (std::optional<unsigned> LLVMRegNum =
792+
if (std::optional<MCRegister> LLVMRegNum =
793793
MCRegInfo->getLLVMRegNum(DwarfRegNum, IsEH))
794794
if (const char *RegName = MCRegInfo->getName(*LLVMRegNum))
795795
return StringRef(RegName);

llvm/lib/MC/MCAsmStreamer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1971,7 +1971,7 @@ void MCAsmStreamer::EmitRegisterName(int64_t Register) {
19711971
// just ones that map to LLVM register numbers and have known names.
19721972
// Fall back to using the original number directly if no name is known.
19731973
const MCRegisterInfo *MRI = getContext().getRegisterInfo();
1974-
if (std::optional<unsigned> LLVMRegister =
1974+
if (std::optional<MCRegister> LLVMRegister =
19751975
MRI->getLLVMRegNum(Register, true)) {
19761976
InstPrinter->printRegName(OS, *LLVMRegister);
19771977
return;

llvm/lib/MC/MCRegisterInfo.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,8 @@ int MCRegisterInfo::getDwarfRegNum(MCRegister RegNum, bool isEH) const {
154154
return I->ToReg;
155155
}
156156

157-
std::optional<unsigned> MCRegisterInfo::getLLVMRegNum(unsigned RegNum,
158-
bool isEH) const {
157+
std::optional<MCRegister> MCRegisterInfo::getLLVMRegNum(unsigned RegNum,
158+
bool isEH) const {
159159
const DwarfLLVMRegPair *M = isEH ? EHDwarf2LRegs : Dwarf2LRegs;
160160
unsigned Size = isEH ? EHDwarf2LRegsSize : Dwarf2LRegsSize;
161161

@@ -164,7 +164,7 @@ std::optional<unsigned> MCRegisterInfo::getLLVMRegNum(unsigned RegNum,
164164
DwarfLLVMRegPair Key = { RegNum, 0 };
165165
const DwarfLLVMRegPair *I = std::lower_bound(M, M+Size, Key);
166166
if (I != M + Size && I->FromReg == RegNum)
167-
return I->ToReg;
167+
return MCRegister::from(I->ToReg);
168168
return std::nullopt;
169169
}
170170

@@ -177,7 +177,7 @@ int MCRegisterInfo::getDwarfRegNumFromDwarfEHRegNum(unsigned RegNum) const {
177177
// a corresponding LLVM register number at all. So if we can't map the
178178
// EH register number to an LLVM register number, assume it's just a
179179
// valid DWARF register number as is.
180-
if (std::optional<unsigned> LRegNum = getLLVMRegNum(RegNum, true)) {
180+
if (std::optional<MCRegister> LRegNum = getLLVMRegNum(RegNum, true)) {
181181
int DwarfRegNum = getDwarfRegNum(*LRegNum, false);
182182
if (DwarfRegNum == -1)
183183
return RegNum;

llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -646,8 +646,8 @@ class DarwinAArch64AsmBackend : public AArch64AsmBackend {
646646
return CU::UNWIND_ARM64_MODE_DWARF;
647647
CurOffset = FPPush.getOffset();
648648

649-
unsigned LRReg = *MRI.getLLVMRegNum(LRPush.getRegister(), true);
650-
unsigned FPReg = *MRI.getLLVMRegNum(FPPush.getRegister(), true);
649+
MCRegister LRReg = *MRI.getLLVMRegNum(LRPush.getRegister(), true);
650+
MCRegister FPReg = *MRI.getLLVMRegNum(FPPush.getRegister(), true);
651651

652652
LRReg = getXRegFromWReg(LRReg);
653653
FPReg = getXRegFromWReg(FPReg);
@@ -669,7 +669,7 @@ class DarwinAArch64AsmBackend : public AArch64AsmBackend {
669669
case MCCFIInstruction::OpOffset: {
670670
// Registers are saved in pairs. We expect there to be two consecutive
671671
// `.cfi_offset' instructions with the appropriate registers specified.
672-
unsigned Reg1 = *MRI.getLLVMRegNum(Inst.getRegister(), true);
672+
MCRegister Reg1 = *MRI.getLLVMRegNum(Inst.getRegister(), true);
673673
if (i + 1 == e)
674674
return CU::UNWIND_ARM64_MODE_DWARF;
675675

@@ -680,7 +680,7 @@ class DarwinAArch64AsmBackend : public AArch64AsmBackend {
680680
const MCCFIInstruction &Inst2 = Instrs[++i];
681681
if (Inst2.getOperation() != MCCFIInstruction::OpOffset)
682682
return CU::UNWIND_ARM64_MODE_DWARF;
683-
unsigned Reg2 = *MRI.getLLVMRegNum(Inst2.getRegister(), true);
683+
MCRegister Reg2 = *MRI.getLLVMRegNum(Inst2.getRegister(), true);
684684

685685
if (Inst2.getOffset() != CurOffset - 8)
686686
return CU::UNWIND_ARM64_MODE_DWARF;

llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,14 +1185,14 @@ uint64_t ARMAsmBackendDarwin::generateCompactUnwindEncoding(
11851185
return CU::UNWIND_ARM_MODE_DWARF;
11861186

11871187
// Start off assuming CFA is at SP+0.
1188-
unsigned CFARegister = ARM::SP;
1188+
MCRegister CFARegister = ARM::SP;
11891189
int CFARegisterOffset = 0;
11901190
// Mark savable registers as initially unsaved
11911191
DenseMap<unsigned, int> RegOffsets;
11921192
int FloatRegCount = 0;
11931193
// Process each .cfi directive and build up compact unwind info.
11941194
for (const MCCFIInstruction &Inst : Instrs) {
1195-
unsigned Reg;
1195+
MCRegister Reg;
11961196
switch (Inst.getOperation()) {
11971197
case MCCFIInstruction::OpDefCfa: // DW_CFA_def_cfa
11981198
CFARegisterOffset = Inst.getOffset();

llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1412,7 +1412,7 @@ class DarwinX86AsmBackend : public X86AsmBackend {
14121412
// unwind encoding.
14131413
return CU::UNWIND_MODE_DWARF;
14141414

1415-
unsigned Reg = *MRI.getLLVMRegNum(Inst.getRegister(), true);
1415+
MCRegister Reg = *MRI.getLLVMRegNum(Inst.getRegister(), true);
14161416
SavedRegs[SavedRegIdx++] = Reg;
14171417
StackAdjust += OffsetSize;
14181418
MinAbsOffset = std::min(MinAbsOffset, std::abs(Inst.getOffset()));

0 commit comments

Comments
 (0)