Skip to content

Commit 8964462

Browse files
MaskRaycachemeifyoucan
authored andcommitted
MC: Replace FT_PseudoProbe with FT_LEB
The fragment type introduced by https://reviews.llvm.org/D91878 is unnecessary and can be replaced with FT_LEB.
1 parent d88e023 commit 8964462

File tree

5 files changed

+4
-51
lines changed

5 files changed

+4
-51
lines changed

llvm/include/llvm/MC/MCAssembler.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ class MCCVDefRangeFragment;
3636
class MCCVInlineLineTableFragment;
3737
class MCFragment;
3838
class MCFixup;
39-
class MCLEBFragment;
40-
class MCPseudoProbeAddrFragment;
4139
class MCSymbolRefExpr;
4240
class raw_ostream;
4341
class MCAsmBackend;
@@ -123,7 +121,6 @@ class MCAssembler {
123121
bool relaxCVInlineLineTable(MCCVInlineLineTableFragment &DF);
124122
bool relaxCVDefRange(MCCVDefRangeFragment &DF);
125123
bool relaxFill(MCFillFragment &F);
126-
bool relaxPseudoProbeAddr(MCPseudoProbeAddrFragment &DF);
127124

128125
public:
129126
/// Construct a new assembler instance.

llvm/include/llvm/MC/MCSection.h

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,6 @@ class MCFragment {
208208
FT_SymbolId,
209209
FT_CVInlineLines,
210210
FT_CVDefRange,
211-
FT_PseudoProbe,
212211
};
213212

214213
private:
@@ -288,7 +287,6 @@ class MCFragment {
288287
case MCFragment::FT_Dwarf:
289288
case MCFragment::FT_DwarfFrame:
290289
case MCFragment::FT_LEB:
291-
case MCFragment::FT_PseudoProbe:
292290
case MCFragment::FT_CVInlineLines:
293291
case MCFragment::FT_CVDefRange:
294292
return true;
@@ -733,22 +731,6 @@ class MCBoundaryAlignFragment : public MCFragment {
733731
}
734732
};
735733

736-
class MCPseudoProbeAddrFragment : public MCEncodedFragment {
737-
/// The expression for the difference of the two symbols that
738-
/// make up the address delta between two .pseudoprobe directives.
739-
const MCExpr *AddrDelta;
740-
741-
public:
742-
MCPseudoProbeAddrFragment(const MCExpr *AddrDelta)
743-
: MCEncodedFragment(FT_PseudoProbe, false), AddrDelta(AddrDelta) {}
744-
745-
const MCExpr &getAddrDelta() const { return *AddrDelta; }
746-
747-
static bool classof(const MCFragment *F) {
748-
return F->getKind() == MCFragment::FT_PseudoProbe;
749-
}
750-
};
751-
752734
inline MCSection::iterator &MCSection::iterator::operator++() {
753735
F = F->Next;
754736
return *this;

llvm/lib/MC/MCAssembler.cpp

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ uint64_t MCAssembler::computeFragmentSize(const MCFragment &F) const {
201201
case MCFragment::FT_DwarfFrame:
202202
case MCFragment::FT_CVInlineLines:
203203
case MCFragment::FT_CVDefRange:
204-
case MCFragment::FT_PseudoProbe:
205204
return F.getSize();
206205
case MCFragment::FT_Fill: {
207206
auto &FF = cast<MCFillFragment>(F);
@@ -424,8 +423,7 @@ static void writeFragment(raw_ostream &OS, const MCAssembler &Asm,
424423
case MCFragment::FT_Dwarf:
425424
case MCFragment::FT_DwarfFrame:
426425
case MCFragment::FT_CVInlineLines:
427-
case MCFragment::FT_CVDefRange:
428-
case MCFragment::FT_PseudoProbe: {
426+
case MCFragment::FT_CVDefRange: {
429427
if (F.getKind() == MCFragment::FT_Data)
430428
++stats::EmittedDataFragments;
431429
else if (F.getKind() == MCFragment::FT_Relaxable)
@@ -974,22 +972,6 @@ bool MCAssembler::relaxFill(MCFillFragment &F) {
974972
return true;
975973
}
976974

977-
bool MCAssembler::relaxPseudoProbeAddr(MCPseudoProbeAddrFragment &PF) {
978-
uint64_t OldSize = PF.getContents().size();
979-
int64_t AddrDelta;
980-
bool Abs = PF.getAddrDelta().evaluateKnownAbsolute(AddrDelta, *this);
981-
assert(Abs && "We created a pseudo probe with an invalid expression");
982-
(void)Abs;
983-
SmallVector<char, 8> Data;
984-
raw_svector_ostream OSE(Data);
985-
986-
// AddrDelta is a signed integer
987-
encodeSLEB128(AddrDelta, OSE, OldSize);
988-
PF.setContents(Data);
989-
PF.clearFixups();
990-
return OldSize != Data.size();
991-
}
992-
993975
bool MCAssembler::relaxFragment(MCFragment &F) {
994976
switch(F.getKind()) {
995977
default:
@@ -1011,8 +993,6 @@ bool MCAssembler::relaxFragment(MCFragment &F) {
1011993
return relaxCVDefRange(cast<MCCVDefRangeFragment>(F));
1012994
case MCFragment::FT_Fill:
1013995
return relaxFill(cast<MCFillFragment>(F));
1014-
case MCFragment::FT_PseudoProbe:
1015-
return relaxPseudoProbeAddr(cast<MCPseudoProbeAddrFragment>(F));
1016996
}
1017997
}
1018998

llvm/lib/MC/MCFragment.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ LLVM_DUMP_METHOD void MCFragment::dump() const {
5858
case MCFragment::FT_SymbolId: OS << "SymbolId"; break;
5959
case MCFragment::FT_CVInlineLines: OS << "CVInlineLineTable"; break;
6060
case MCFragment::FT_CVDefRange: OS << "CVDefRangeTable"; break;
61-
case MCFragment::FT_PseudoProbe: OS << "PseudoProbe"; break;
6261
// clang-format on
6362
}
6463

@@ -182,12 +181,6 @@ LLVM_DUMP_METHOD void MCFragment::dump() const {
182181
}
183182
break;
184183
}
185-
case MCFragment::FT_PseudoProbe: {
186-
const auto *OF = cast<MCPseudoProbeAddrFragment>(this);
187-
OS << " AddrDelta:";
188-
OF->getAddrDelta().print(OS, nullptr);
189-
break;
190-
}
191184
}
192185
}
193186
#endif

llvm/lib/MC/MCPseudoProbe.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ void MCPseudoProbe::emit(MCObjectStreamer *MCOS,
8181
if (AddrDelta->evaluateAsAbsolute(Delta, MCOS->getAssemblerPtr())) {
8282
MCOS->emitSLEB128IntValue(Delta);
8383
} else {
84-
MCOS->insert(MCOS->getContext().allocFragment<MCPseudoProbeAddrFragment>(
85-
AddrDelta));
84+
auto *F = MCOS->getCurrentFragment();
85+
F->makeLEB(true, AddrDelta);
86+
MCOS->newFragment();
8687
}
8788
} else {
8889
// Emit the GUID of the split function that the sentinel probe represents.

0 commit comments

Comments
 (0)