Skip to content

Commit c239acb

Browse files
committed
MCFixup: Make FixupKindInfo smaller and change getFixupKindInfo to return value
We will increase the use of raw relocation types and eliminate fixup kinds that correspond to relocation types. The getFixupKindInfo functions will return an rvalue instead. Let's update the return type from a const reference to a value type.
1 parent 356ff75 commit c239acb

File tree

33 files changed

+45
-60
lines changed

33 files changed

+45
-60
lines changed

bolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2336,7 +2336,7 @@ class AArch64MCPlusBuilder : public MCPlusBuilder {
23362336
std::optional<Relocation>
23372337
createRelocation(const MCFixup &Fixup,
23382338
const MCAsmBackend &MAB) const override {
2339-
const MCFixupKindInfo &FKI = MAB.getFixupKindInfo(Fixup.getKind());
2339+
MCFixupKindInfo FKI = MAB.getFixupKindInfo(Fixup.getKind());
23402340

23412341
assert(FKI.TargetOffset == 0 && "0-bit relocation offset expected");
23422342
const uint64_t RelOffset = Fixup.getOffset();

bolt/lib/Target/X86/X86MCPlusBuilder.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2441,7 +2441,7 @@ class X86MCPlusBuilder : public MCPlusBuilder {
24412441
std::optional<Relocation>
24422442
createRelocation(const MCFixup &Fixup,
24432443
const MCAsmBackend &MAB) const override {
2444-
const MCFixupKindInfo &FKI = MAB.getFixupKindInfo(Fixup.getKind());
2444+
MCFixupKindInfo FKI = MAB.getFixupKindInfo(Fixup.getKind());
24452445

24462446
assert(FKI.TargetOffset == 0 && "0-bit relocation offset expected");
24472447
const uint64_t RelOffset = Fixup.getOffset();

llvm/include/llvm/MC/MCAsmBackend.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class MCAsmBackend {
8787
virtual std::optional<MCFixupKind> getFixupKind(StringRef Name) const;
8888

8989
/// Get information on a fixup kind.
90-
virtual const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const;
90+
virtual MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const;
9191

9292
// Hook to check if a relocation is needed. The default implementation tests
9393
// whether the MCValue has a relocation specifier.

llvm/include/llvm/MC/MCFixupKindInfo.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#ifndef LLVM_MC_MCFIXUPKINDINFO_H
1010
#define LLVM_MC_MCFIXUPKINDINFO_H
1111

12+
#include <cstdint>
13+
1214
namespace llvm {
1315

1416
/// Target independent information on a fixup kind.
@@ -35,11 +37,11 @@ struct MCFixupKindInfo {
3537
const char *Name;
3638

3739
/// The bit offset to write the relocation into.
38-
unsigned TargetOffset;
40+
uint8_t TargetOffset;
3941

4042
/// The number of bits written by this fixup. The bits are assumed to be
4143
/// contiguous.
42-
unsigned TargetSize;
44+
uint8_t TargetSize;
4345

4446
/// Flags describing additional information on this fixup kind.
4547
unsigned Flags;

llvm/lib/MC/MCAsmBackend.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ std::optional<MCFixupKind> MCAsmBackend::getFixupKind(StringRef Name) const {
8787
return std::nullopt;
8888
}
8989

90-
const MCFixupKindInfo &MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
90+
MCFixupKindInfo MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
9191
static const MCFixupKindInfo Builtins[] = {
9292
{"FK_NONE", 0, 0, 0},
9393
{"FK_Data_1", 0, 8, 0},

llvm/lib/MC/MCAsmStreamer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -2338,7 +2338,7 @@ void MCAsmStreamer::AddEncodingComment(const MCInst &Inst,
23382338

23392339
for (unsigned i = 0, e = Fixups.size(); i != e; ++i) {
23402340
MCFixup &F = Fixups[i];
2341-
const MCFixupKindInfo &Info =
2341+
MCFixupKindInfo Info =
23422342
getAssembler().getBackend().getFixupKindInfo(F.getKind());
23432343
for (unsigned j = 0; j != Info.TargetSize; ++j) {
23442344
unsigned Index = F.getOffset() * 8 + Info.TargetOffset + j;

llvm/lib/MC/MachObjectWriter.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,7 @@ MachSymbolData::operator<(const MachSymbolData &RHS) const {
8282
}
8383

8484
bool MachObjectWriter::isFixupKindPCRel(const MCAssembler &Asm, unsigned Kind) {
85-
const MCFixupKindInfo &FKI = Asm.getBackend().getFixupKindInfo(
86-
(MCFixupKind) Kind);
85+
MCFixupKindInfo FKI = Asm.getBackend().getFixupKindInfo((MCFixupKind)Kind);
8786

8887
return FKI.Flags & MCFixupKindInfo::FKF_IsPCRel;
8988
}

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class AArch64AsmBackend : public MCAsmBackend {
4444

4545
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
4646

47-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override {
47+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override {
4848
const static MCFixupKindInfo Infos[AArch64::NumTargetFixupKinds] = {
4949
// This table *must* be in the order that the fixup_* kinds are defined
5050
// in AArch64FixupKinds.h.

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ unsigned AArch64WinCOFFObjectWriter::getRelocType(
8686
A64E->getSpecifierName() +
8787
" unsupported on COFF targets");
8888
} else {
89-
const MCFixupKindInfo &Info = MAB.getFixupKindInfo(Fixup.getKind());
89+
MCFixupKindInfo Info = MAB.getFixupKindInfo(Fixup.getKind());
9090
Ctx.reportError(Fixup.getLoc(), Twine("relocation type ") + Info.Name +
9191
" unsupported on COFF targets");
9292
}

llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class AMDGPUAsmBackend : public MCAsmBackend {
5050
const MCSubtargetInfo *STI) const override;
5151

5252
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
53-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
53+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
5454
};
5555

5656
} //End anonymous namespace
@@ -172,8 +172,7 @@ AMDGPUAsmBackend::getFixupKind(StringRef Name) const {
172172
return std::nullopt;
173173
}
174174

175-
const MCFixupKindInfo &AMDGPUAsmBackend::getFixupKindInfo(
176-
MCFixupKind Kind) const {
175+
MCFixupKindInfo AMDGPUAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
177176
const static MCFixupKindInfo Infos[AMDGPU::NumTargetFixupKinds] = {
178177
// name offset bits flags
179178
{ "fixup_si_sopp_br", 0, 16, MCFixupKindInfo::FKF_IsPCRel },

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ ARMAsmBackendELF::getFixupKind(StringRef Name) const {
6565
return static_cast<MCFixupKind>(FirstLiteralRelocationKind + Type);
6666
}
6767

68-
const MCFixupKindInfo &ARMAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
68+
MCFixupKindInfo ARMAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
6969
const static MCFixupKindInfo InfosLE[ARM::NumTargetFixupKinds] = {
7070
// This table *must* be in the order that the fixup_* kinds are defined in
7171
// ARMFixupKinds.h.

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class ARMAsmBackend : public MCAsmBackend {
3030

3131
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
3232

33-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
33+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
3434

3535
bool shouldForceRelocation(const MCAssembler &Asm, const MCFixup &Fixup,
3636
const MCValue &Target,

llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ void AVRAsmBackend::applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
382382
MCFixupKindInfo Info = getFixupKindInfo(Fixup.getKind());
383383

384384
// The number of bits in the fixup mask
385-
auto NumBits = Info.TargetSize + Info.TargetOffset;
385+
unsigned NumBits = Info.TargetSize + Info.TargetOffset;
386386
auto NumBytes = (NumBits / 8) + ((NumBits % 8) == 0 ? 0 : 1);
387387

388388
// Shift the value into position.
@@ -414,7 +414,7 @@ std::optional<MCFixupKind> AVRAsmBackend::getFixupKind(StringRef Name) const {
414414
return std::nullopt;
415415
}
416416

417-
MCFixupKindInfo const &AVRAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
417+
MCFixupKindInfo AVRAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
418418
// NOTE: Many AVR fixups work on sets of non-contignous bits. We work around
419419
// this by saying that the fixup is the size of the entire instruction.
420420
const static MCFixupKindInfo Infos[AVR::NumTargetFixupKinds] = {

llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ class AVRAsmBackend : public MCAsmBackend {
4343
const MCSubtargetInfo *STI) const override;
4444

4545
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
46-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
47-
46+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
4847

4948
bool writeNopData(raw_ostream &OS, uint64_t Count,
5049
const MCSubtargetInfo *STI) const override;

llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,15 @@ class BPFAsmBackend : public MCAsmBackend {
3535
std::unique_ptr<MCObjectTargetWriter>
3636
createObjectTargetWriter() const override;
3737

38-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
38+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
3939

4040
bool writeNopData(raw_ostream &OS, uint64_t Count,
4141
const MCSubtargetInfo *STI) const override;
4242
};
4343

4444
} // end anonymous namespace
4545

46-
const MCFixupKindInfo &
47-
BPFAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
46+
MCFixupKindInfo BPFAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
4847
const static MCFixupKindInfo Infos[BPF::NumTargetFixupKinds] = {
4948
{ "FK_BPF_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel },
5049
};

llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ CSKYAsmBackend::createObjectTargetWriter() const {
2525
return createCSKYELFObjectWriter();
2626
}
2727

28-
const MCFixupKindInfo &
29-
CSKYAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
28+
MCFixupKindInfo CSKYAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
3029

3130
static llvm::DenseMap<unsigned, MCFixupKindInfo> Infos = {
3231
{CSKY::Fixups::fixup_csky_addr32, {"fixup_csky_addr32", 0, 32, 0}},

llvm/lib/Target/CSKY/MCTargetDesc/CSKYAsmBackend.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class CSKYAsmBackend : public MCAsmBackend {
2828
uint64_t Value, bool IsResolved,
2929
const MCSubtargetInfo *STI) const override;
3030

31-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
31+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
3232

3333
bool fixupNeedsRelaxation(const MCFixup &Fixup,
3434
uint64_t Value) const override;

llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ class HexagonAsmBackend : public MCAsmBackend {
8383
return Result;
8484
}
8585

86-
87-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override {
86+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override {
8887
const static MCFixupKindInfo Infos[Hexagon::NumTargetFixupKinds] = {
8988
// This table *must* be in same the order of fixup_* kinds in
9089
// HexagonFixupKinds.h.

llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,7 @@ class LanaiAsmBackend : public MCAsmBackend {
5555
std::unique_ptr<MCObjectTargetWriter>
5656
createObjectTargetWriter() const override;
5757

58-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
59-
58+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
6059

6160
bool writeNopData(raw_ostream &OS, uint64_t Count,
6261
const MCSubtargetInfo *STI) const override;
@@ -116,8 +115,7 @@ LanaiAsmBackend::createObjectTargetWriter() const {
116115
return createLanaiELFObjectWriter(MCELFObjectTargetWriter::getOSABI(OSType));
117116
}
118117

119-
const MCFixupKindInfo &
120-
LanaiAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
118+
MCFixupKindInfo LanaiAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
121119
static const MCFixupKindInfo Infos[Lanai::NumTargetFixupKinds] = {
122120
// This table *must* be in same the order of fixup_* kinds in
123121
// LanaiFixupKinds.h.

llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ LoongArchAsmBackend::getFixupKind(StringRef Name) const {
4444
return std::nullopt;
4545
}
4646

47-
const MCFixupKindInfo &
48-
LoongArchAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
47+
MCFixupKindInfo LoongArchAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
4948
const static MCFixupKindInfo Infos[] = {
5049
// This table *must* be in the order that the fixup_* kinds are defined in
5150
// LoongArchFixupKinds.h.

llvm/lib/Target/LoongArch/MCTargetDesc/LoongArchAsmBackend.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class LoongArchAsmBackend : public MCAsmBackend {
6262

6363
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
6464

65-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
65+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
6666

6767
void relaxInstruction(MCInst &Inst,
6868
const MCSubtargetInfo &STI) const override {}

llvm/lib/Target/MSP430/MCTargetDesc/MSP430AsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ class MSP430AsmBackend : public MCAsmBackend {
4646
return createMSP430ELFObjectWriter(OSABI);
4747
}
4848

49-
50-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override {
49+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override {
5150
const static MCFixupKindInfo Infos[MSP430::NumTargetFixupKinds] = {
5251
// This table must be in the same order of enum in MSP430FixupKinds.h.
5352
//

llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -353,8 +353,7 @@ std::optional<MCFixupKind> MipsAsmBackend::getFixupKind(StringRef Name) const {
353353
.Default(MCAsmBackend::getFixupKind(Name));
354354
}
355355

356-
const MCFixupKindInfo &MipsAsmBackend::
357-
getFixupKindInfo(MCFixupKind Kind) const {
356+
MCFixupKindInfo MipsAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
358357
const static MCFixupKindInfo LittleEndianInfos[] = {
359358
// This table *must* be in same the order of fixup_* kinds in
360359
// MipsFixupKinds.h.

llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,7 @@ class MipsAsmBackend : public MCAsmBackend {
4545
const MCSubtargetInfo *STI) const override;
4646

4747
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
48-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
49-
48+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
5049

5150
bool writeNopData(raw_ostream &OS, uint64_t Count,
5251
const MCSubtargetInfo *STI) const override;

llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ class PPCAsmBackend : public MCAsmBackend {
9090
: llvm::endianness::big),
9191
TT(TT) {}
9292

93-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override {
93+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override {
9494
const static MCFixupKindInfo InfosBE[PPC::NumTargetFixupKinds] = {
9595
// name offset bits flags
9696
{ "fixup_ppc_br24", 6, 24, MCFixupKindInfo::FKF_IsPCRel },

llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ std::optional<MCFixupKind> RISCVAsmBackend::getFixupKind(StringRef Name) const {
6161
return std::nullopt;
6262
}
6363

64-
const MCFixupKindInfo &
65-
RISCVAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
64+
MCFixupKindInfo RISCVAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
6665
const static MCFixupKindInfo Infos[] = {
6766
// This table *must* be in the order that the fixup_* kinds are defined in
6867
// RISCVFixupKinds.h.

llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class RISCVAsmBackend : public MCAsmBackend {
7070

7171
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
7272

73-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
73+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
7474

7575
bool mayNeedRelaxation(const MCInst &Inst,
7676
const MCSubtargetInfo &STI) const override;

llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ namespace {
160160
return static_cast<MCFixupKind>(FirstLiteralRelocationKind + Type);
161161
}
162162

163-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override {
163+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override {
164164
const static MCFixupKindInfo InfosBE[Sparc::NumTargetFixupKinds] = {
165165
// name offset bits flags
166166
{ "fixup_sparc_call30", 2, 30, MCFixupKindInfo::FKF_IsPCRel },

llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ class SystemZMCAsmBackend : public MCAsmBackend {
111111

112112
// Override MCAsmBackend
113113
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
114-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
114+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
115115
void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
116116
const MCValue &Target, MutableArrayRef<char> Data,
117117
uint64_t Value, bool IsResolved,
@@ -138,8 +138,7 @@ SystemZMCAsmBackend::getFixupKind(StringRef Name) const {
138138
return std::nullopt;
139139
}
140140

141-
const MCFixupKindInfo &
142-
SystemZMCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
141+
MCFixupKindInfo SystemZMCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
143142
// Fixup kinds from .reloc directive are like R_390_NONE. They
144143
// do not require any extra processing.
145144
if (mc::isRelocation(Kind))

llvm/lib/Target/VE/MCTargetDesc/VEAsmBackend.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,7 @@ class VEAsmBackend : public MCAsmBackend {
100100
VEAsmBackend(const Target &T)
101101
: MCAsmBackend(llvm::endianness::little), TheTarget(T) {}
102102

103-
104-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override {
103+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override {
105104
const static MCFixupKindInfo Infos[VE::NumTargetFixupKinds] = {
106105
// name, offset, bits, flags
107106
{"fixup_ve_reflong", 0, 32, 0},

llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@ class WebAssemblyAsmBackend final : public MCAsmBackend {
3636
: MCAsmBackend(llvm::endianness::little), Is64Bit(Is64Bit),
3737
IsEmscripten(IsEmscripten) {}
3838

39-
40-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
39+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
4140

4241
void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
4342
const MCValue &Target, MutableArrayRef<char> Data,
@@ -51,7 +50,7 @@ class WebAssemblyAsmBackend final : public MCAsmBackend {
5150
const MCSubtargetInfo *STI) const override;
5251
};
5352

54-
const MCFixupKindInfo &
53+
MCFixupKindInfo
5554
WebAssemblyAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
5655
const static MCFixupKindInfo Infos[WebAssembly::NumTargetFixupKinds] = {
5756
// This table *must* be in the order that the fixup_* kinds are defined in
@@ -87,7 +86,7 @@ void WebAssemblyAsmBackend::applyFixup(const MCAssembler &Asm,
8786
MutableArrayRef<char> Data,
8887
uint64_t Value, bool IsPCRel,
8988
const MCSubtargetInfo *STI) const {
90-
const MCFixupKindInfo &Info = getFixupKindInfo(Fixup.getKind());
89+
MCFixupKindInfo Info = getFixupKindInfo(Fixup.getKind());
9190
assert(Info.Flags == 0 && "WebAssembly does not use MCFixupKindInfo flags");
9291

9392
unsigned NumBytes = alignTo(Info.TargetSize, 8) / 8;

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ class X86AsmBackend : public MCAsmBackend {
167167

168168
std::optional<MCFixupKind> getFixupKind(StringRef Name) const override;
169169

170-
const MCFixupKindInfo &getFixupKindInfo(MCFixupKind Kind) const override;
170+
MCFixupKindInfo getFixupKindInfo(MCFixupKind Kind) const override;
171171

172172
void applyFixup(const MCAssembler &Asm, const MCFixup &Fixup,
173173
const MCValue &Target, MutableArrayRef<char> Data,
@@ -620,7 +620,7 @@ std::optional<MCFixupKind> X86AsmBackend::getFixupKind(StringRef Name) const {
620620
return MCAsmBackend::getFixupKind(Name);
621621
}
622622

623-
const MCFixupKindInfo &X86AsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
623+
MCFixupKindInfo X86AsmBackend::getFixupKindInfo(MCFixupKind Kind) const {
624624
const static MCFixupKindInfo Infos[X86::NumTargetFixupKinds] = {
625625
// clang-format off
626626
{"reloc_riprel_4byte", 0, 32, MCFixupKindInfo::FKF_IsPCRel},

0 commit comments

Comments
 (0)