[llvm] 1fbfa33 - MCAlignFragment: Rename fields and use uint8_t FillLen
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 13 14:07:15 PDT 2025
Author: Fangrui Song
Date: 2025-07-13T14:07:10-07:00
New Revision: 1fbfa333f64bf714efa84db6b1075fc864d53bf8
URL: https://github.com/llvm/llvm-project/commit/1fbfa333f64bf714efa84db6b1075fc864d53bf8
DIFF: https://github.com/llvm/llvm-project/commit/1fbfa333f64bf714efa84db6b1075fc864d53bf8.diff
LOG: MCAlignFragment: Rename fields and use uint8_t FillLen
* Rename the vague `Value` to `Fill`.
* FillLen is at most 8. Making the field smaller to facilitate encoding
MCAlignFragment as a MCFragment union member.
* Replace an unreachable report_fatal_error with assert.
Added:
Modified:
llvm/include/llvm/MC/MCELFStreamer.h
llvm/include/llvm/MC/MCObjectStreamer.h
llvm/include/llvm/MC/MCSection.h
llvm/include/llvm/MC/MCStreamer.h
llvm/lib/MC/MCAsmStreamer.cpp
llvm/lib/MC/MCAssembler.cpp
llvm/lib/MC/MCELFStreamer.cpp
llvm/lib/MC/MCFragment.cpp
llvm/lib/MC/MCObjectStreamer.cpp
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/lib/MC/MCStreamer.cpp
llvm/lib/MC/WasmObjectWriter.cpp
llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
llvm/test/MC/ELF/mc-dump.s
llvm/test/MC/RISCV/Relocations/mc-dump.s
llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCELFStreamer.h b/llvm/include/llvm/MC/MCELFStreamer.h
index aba87cb19b21c..fa0b5cbde71d9 100644
--- a/llvm/include/llvm/MC/MCELFStreamer.h
+++ b/llvm/include/llvm/MC/MCELFStreamer.h
@@ -70,7 +70,7 @@ class MCELFStreamer : public MCObjectStreamer {
void emitIdent(StringRef IdentString) override;
- void emitValueToAlignment(Align, int64_t, unsigned, unsigned) override;
+ void emitValueToAlignment(Align, int64_t, uint8_t, unsigned) override;
void emitCGProfileEntry(const MCSymbolRefExpr *From,
const MCSymbolRefExpr *To, uint64_t Count) override;
diff --git a/llvm/include/llvm/MC/MCObjectStreamer.h b/llvm/include/llvm/MC/MCObjectStreamer.h
index 58c18af406158..2b42507d66920 100644
--- a/llvm/include/llvm/MC/MCObjectStreamer.h
+++ b/llvm/include/llvm/MC/MCObjectStreamer.h
@@ -131,8 +131,8 @@ class MCObjectStreamer : public MCStreamer {
void emitBundleLock(bool AlignToEnd) override;
void emitBundleUnlock() override;
void emitBytes(StringRef Data) override;
- void emitValueToAlignment(Align Alignment, int64_t Value = 0,
- unsigned ValueSize = 1,
+ void emitValueToAlignment(Align Alignment, int64_t Fill = 0,
+ uint8_t FillLen = 1,
unsigned MaxBytesToEmit = 0) override;
void emitCodeAlignment(Align ByteAlignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit = 0) override;
diff --git a/llvm/include/llvm/MC/MCSection.h b/llvm/include/llvm/MC/MCSection.h
index 16d57a7772a40..64b13972bfca1 100644
--- a/llvm/include/llvm/MC/MCSection.h
+++ b/llvm/include/llvm/MC/MCSection.h
@@ -469,39 +469,36 @@ class MCRelaxableFragment : public MCEncodedFragment {
};
class MCAlignFragment : public MCFragment {
- /// The alignment to ensure, in bytes.
- Align Alignment;
-
/// Flag to indicate that (optimal) NOPs should be emitted instead
/// of using the provided value. The exact interpretation of this flag is
/// target dependent.
bool EmitNops : 1;
- /// Value to use for filling padding bytes.
- int64_t Value;
+ /// The alignment to ensure, in bytes.
+ Align Alignment;
/// The size of the integer (in bytes) of \p Value.
- unsigned ValueSize;
+ uint8_t FillLen;
/// The maximum number of bytes to emit; if the alignment
/// cannot be satisfied in this width then this fragment is ignored.
unsigned MaxBytesToEmit;
+ /// Value to use for filling padding bytes.
+ int64_t Fill;
+
/// When emitting Nops some subtargets have specific nop encodings.
const MCSubtargetInfo *STI = nullptr;
public:
- MCAlignFragment(Align Alignment, int64_t Value, unsigned ValueSize,
+ MCAlignFragment(Align Alignment, int64_t Fill, uint8_t FillLen,
unsigned MaxBytesToEmit)
- : MCFragment(FT_Align, false), Alignment(Alignment), EmitNops(false),
- Value(Value), ValueSize(ValueSize), MaxBytesToEmit(MaxBytesToEmit) {}
+ : MCFragment(FT_Align, false), EmitNops(false), Alignment(Alignment),
+ FillLen(FillLen), MaxBytesToEmit(MaxBytesToEmit), Fill(Fill) {}
Align getAlignment() const { return Alignment; }
-
- int64_t getValue() const { return Value; }
-
- unsigned getValueSize() const { return ValueSize; }
-
+ int64_t getFill() const { return Fill; }
+ uint8_t getFillLen() const { return FillLen; }
unsigned getMaxBytesToEmit() const { return MaxBytesToEmit; }
bool hasEmitNops() const { return EmitNops; }
diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h
index 00bec1f582eab..4e052ecfe0e86 100644
--- a/llvm/include/llvm/MC/MCStreamer.h
+++ b/llvm/include/llvm/MC/MCStreamer.h
@@ -807,14 +807,14 @@ class LLVM_ABI MCStreamer {
/// This used to implement the .align assembler directive.
///
/// \param Alignment - The alignment to reach.
- /// \param Value - The value to use when filling bytes.
- /// \param ValueSize - The size of the integer (in bytes) to emit for
+ /// \param Fill - The value to use when filling bytes.
+ /// \param FillLen - The size of the integer (in bytes) to emit for
/// \p Value. This must match a native machine width.
/// \param MaxBytesToEmit - The maximum numbers of bytes to emit, or 0. If
/// the alignment cannot be reached in this many bytes, no bytes are
/// emitted.
- virtual void emitValueToAlignment(Align Alignment, int64_t Value = 0,
- unsigned ValueSize = 1,
+ virtual void emitValueToAlignment(Align Alignment, int64_t Fill = 0,
+ uint8_t FillLen = 1,
unsigned MaxBytesToEmit = 0);
/// Emit nops until the byte alignment \p ByteAlignment is reached.
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp
index aae02652564d3..c89dc549d8e34 100644
--- a/llvm/lib/MC/MCAsmStreamer.cpp
+++ b/llvm/lib/MC/MCAsmStreamer.cpp
@@ -269,8 +269,8 @@ class MCAsmStreamer final : public MCStreamer {
std::optional<int64_t> Value, unsigned ValueSize,
unsigned MaxBytesToEmit);
- void emitValueToAlignment(Align Alignment, int64_t Value = 0,
- unsigned ValueSize = 1,
+ void emitValueToAlignment(Align Alignment, int64_t Fill = 0,
+ uint8_t FillLen = 1,
unsigned MaxBytesToEmit = 0) override;
void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
@@ -1528,10 +1528,10 @@ void MCAsmStreamer::emitAlignmentDirective(uint64_t ByteAlignment,
EmitEOL();
}
-void MCAsmStreamer::emitValueToAlignment(Align Alignment, int64_t Value,
- unsigned ValueSize,
+void MCAsmStreamer::emitValueToAlignment(Align Alignment, int64_t Fill,
+ uint8_t FillLen,
unsigned MaxBytesToEmit) {
- emitAlignmentDirective(Alignment.value(), Value, ValueSize, MaxBytesToEmit);
+ emitAlignmentDirective(Alignment.value(), Fill, FillLen, MaxBytesToEmit);
}
void MCAsmStreamer::emitCodeAlignment(Align Alignment,
diff --git a/llvm/lib/MC/MCAssembler.cpp b/llvm/lib/MC/MCAssembler.cpp
index 480e6fe027beb..fd8a8c3a79c9f 100644
--- a/llvm/lib/MC/MCAssembler.cpp
+++ b/llvm/lib/MC/MCAssembler.cpp
@@ -553,18 +553,11 @@ static void writeFragment(raw_ostream &OS, const MCAssembler &Asm,
case MCFragment::FT_Align: {
++stats::EmittedAlignFragments;
const MCAlignFragment &AF = cast<MCAlignFragment>(F);
- assert(AF.getValueSize() && "Invalid virtual align in concrete fragment!");
+ assert(AF.getFillLen() && "Invalid virtual align in concrete fragment!");
- uint64_t Count = FragmentSize / AF.getValueSize();
-
- // FIXME: This error shouldn't actually occur (the front end should emit
- // multiple .align directives to enforce the semantics it wants), but is
- // severe enough that we want to report it. How to handle this?
- if (Count * AF.getValueSize() != FragmentSize)
- report_fatal_error("undefined .align directive, value size '" +
- Twine(AF.getValueSize()) +
- "' is not a divisor of padding size '" +
- Twine(FragmentSize) + "'");
+ uint64_t Count = FragmentSize / AF.getFillLen();
+ assert(FragmentSize % AF.getFillLen() == 0 &&
+ "computeFragmentSize computed size is incorrect");
// See if we are aligning with nops, and if so do that first to try to fill
// the Count bytes. Then if that did not fill any bytes or there are any
@@ -579,17 +572,19 @@ static void writeFragment(raw_ostream &OS, const MCAssembler &Asm,
// Otherwise, write out in multiples of the value size.
for (uint64_t i = 0; i != Count; ++i) {
- switch (AF.getValueSize()) {
+ switch (AF.getFillLen()) {
default: llvm_unreachable("Invalid size!");
- case 1: OS << char(AF.getValue()); break;
+ case 1:
+ OS << char(AF.getFill());
+ break;
case 2:
- support::endian::write<uint16_t>(OS, AF.getValue(), Endian);
+ support::endian::write<uint16_t>(OS, AF.getFill(), Endian);
break;
case 4:
- support::endian::write<uint32_t>(OS, AF.getValue(), Endian);
+ support::endian::write<uint32_t>(OS, AF.getFill(), Endian);
break;
case 8:
- support::endian::write<uint64_t>(OS, AF.getValue(), Endian);
+ support::endian::write<uint64_t>(OS, AF.getFill(), Endian);
break;
}
}
@@ -733,8 +728,8 @@ void MCAssembler::writeSectionData(raw_ostream &OS,
case MCFragment::FT_Align:
// Check that we aren't trying to write a non-zero value into a virtual
// section.
- assert((cast<MCAlignFragment>(F).getValueSize() == 0 ||
- cast<MCAlignFragment>(F).getValue() == 0) &&
+ assert((cast<MCAlignFragment>(F).getFillLen() == 0 ||
+ cast<MCAlignFragment>(F).getFill() == 0) &&
"Invalid align in virtual section!");
break;
case MCFragment::FT_Fill:
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp
index e84b91c5c41b0..4bc3f4642ea02 100644
--- a/llvm/lib/MC/MCELFStreamer.cpp
+++ b/llvm/lib/MC/MCELFStreamer.cpp
@@ -321,7 +321,7 @@ void MCELFStreamer::emitValueImpl(const MCExpr *Value, unsigned Size,
}
void MCELFStreamer::emitValueToAlignment(Align Alignment, int64_t Value,
- unsigned ValueSize,
+ uint8_t ValueSize,
unsigned MaxBytesToEmit) {
if (isBundleLocked())
report_fatal_error("Emitting values inside a locked bundle is forbidden");
diff --git a/llvm/lib/MC/MCFragment.cpp b/llvm/lib/MC/MCFragment.cpp
index 5cf47e3325ff2..c59fabe5df1b9 100644
--- a/llvm/lib/MC/MCFragment.cpp
+++ b/llvm/lib/MC/MCFragment.cpp
@@ -76,8 +76,8 @@ LLVM_DUMP_METHOD void MCFragment::dump() const {
switch (getKind()) {
case MCFragment::FT_Align: {
const auto *AF = cast<MCAlignFragment>(this);
- OS << " Align:" << AF->getAlignment().value() << " Value:" << AF->getValue()
- << " ValueSize:" << AF->getValueSize()
+ OS << " Align:" << AF->getAlignment().value() << " Fill:" << AF->getFill()
+ << " FillLen:" << unsigned(AF->getFillLen())
<< " MaxBytesToEmit:" << AF->getMaxBytesToEmit();
if (AF->hasEmitNops())
OS << " Nops";
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index b03c2283cdf4d..44a82f75576b6 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -580,13 +580,13 @@ void MCObjectStreamer::emitBytes(StringRef Data) {
DF->appendContents(ArrayRef(Data.data(), Data.size()));
}
-void MCObjectStreamer::emitValueToAlignment(Align Alignment, int64_t Value,
- unsigned ValueSize,
+void MCObjectStreamer::emitValueToAlignment(Align Alignment, int64_t Fill,
+ uint8_t FillLen,
unsigned MaxBytesToEmit) {
if (MaxBytesToEmit == 0)
MaxBytesToEmit = Alignment.value();
- insert(getContext().allocFragment<MCAlignFragment>(
- Alignment, Value, ValueSize, MaxBytesToEmit));
+ insert(getContext().allocFragment<MCAlignFragment>(Alignment, Fill, FillLen,
+ MaxBytesToEmit));
// Update the maximum alignment on the current section if necessary.
MCSection *CurSec = getCurrentSectionOnly();
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index df4538df4c90b..9fd6c05a846db 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -567,7 +567,7 @@ class AsmParser : public MCAsmParser {
bool parseDirectiveSet(StringRef IDVal, AssignmentKind Kind);
bool parseDirectiveOrg(); // ".org"
// ".align{,32}", ".p2align{,w,l}"
- bool parseDirectiveAlign(bool IsPow2, unsigned ValueSize);
+ bool parseDirectiveAlign(bool IsPow2, uint8_t ValueSize);
// ".file", ".line", ".loc", ".loc_label", ".stabs"
bool parseDirectiveFile(SMLoc DirectiveLoc);
@@ -3340,7 +3340,7 @@ bool AsmParser::parseDirectiveOrg() {
/// parseDirectiveAlign
/// ::= {.align, ...} expression [ , expression [ , expression ]]
-bool AsmParser::parseDirectiveAlign(bool IsPow2, unsigned ValueSize) {
+bool AsmParser::parseDirectiveAlign(bool IsPow2, uint8_t ValueSize) {
SMLoc AlignmentLoc = getLexer().getLoc();
int64_t Alignment;
SMLoc MaxBytesLoc;
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 6cd6b4abdd327..6d2fb41760044 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -1328,9 +1328,7 @@ void MCStreamer::emitSLEB128Value(const MCExpr *Value) {}
void MCStreamer::emitFill(const MCExpr &NumBytes, uint64_t Value, SMLoc Loc) {}
void MCStreamer::emitFill(const MCExpr &NumValues, int64_t Size, int64_t Expr,
SMLoc Loc) {}
-void MCStreamer::emitValueToAlignment(Align Alignment, int64_t Value,
- unsigned ValueSize,
- unsigned MaxBytesToEmit) {}
+void MCStreamer::emitValueToAlignment(Align, int64_t, uint8_t, unsigned) {}
void MCStreamer::emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit) {}
void MCStreamer::emitValueToOffset(const MCExpr *Offset, unsigned char Value,
diff --git a/llvm/lib/MC/WasmObjectWriter.cpp b/llvm/lib/MC/WasmObjectWriter.cpp
index d148b521ff9fe..4c226d4420e1d 100644
--- a/llvm/lib/MC/WasmObjectWriter.cpp
+++ b/llvm/lib/MC/WasmObjectWriter.cpp
@@ -697,10 +697,10 @@ static void addData(SmallVectorImpl<char> &DataBytes,
report_fatal_error("only data supported in data sections");
if (auto *Align = dyn_cast<MCAlignFragment>(&Frag)) {
- if (Align->getValueSize() != 1)
+ if (Align->getFillLen() != 1)
report_fatal_error("only byte values supported for alignment");
// If nops are requested, use zeros, as this is the data section.
- uint8_t Value = Align->hasEmitNops() ? 0 : Align->getValue();
+ uint8_t Value = Align->hasEmitNops() ? 0 : Align->getFill();
uint64_t Size =
std::min<uint64_t>(alignTo(DataBytes.size(), Align->getAlignment()),
DataBytes.size() + Align->getMaxBytesToEmit());
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
index 9121f0d44936f..3ef6030ba5183 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.cpp
@@ -137,10 +137,10 @@ void SystemZHLASMAsmStreamer::EmitComment() {
}
void SystemZHLASMAsmStreamer::emitValueToAlignment(Align Alignment,
- int64_t Value,
- unsigned ValueSize,
+ int64_t Fill,
+ uint8_t FillLen,
unsigned MaxBytesToEmit) {
- emitAlignmentDS(Alignment.value(), Value, ValueSize, MaxBytesToEmit);
+ emitAlignmentDS(Alignment.value(), Fill, FillLen, MaxBytesToEmit);
}
void SystemZHLASMAsmStreamer::emitCodeAlignment(Align Alignment,
diff --git a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
index c5275339ce016..93b1ac4d901aa 100644
--- a/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
+++ b/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZHLASMAsmStreamer.h
@@ -86,9 +86,8 @@ class SystemZHLASMAsmStreamer final : public MCStreamer {
void emitAlignmentDS(uint64_t ByteAlignment, std::optional<int64_t> Value,
unsigned ValueSize, unsigned MaxBytesToEmit);
- void emitValueToAlignment(Align Alignment, int64_t Value = 0,
- unsigned ValueSize = 1,
- unsigned MaxBytesToEmit = 0) override;
+ void emitValueToAlignment(Align Alignment, int64_t Fill, uint8_t FillLen,
+ unsigned MaxBytesToEmit) override;
void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit = 0) override;
diff --git a/llvm/test/MC/ELF/mc-dump.s b/llvm/test/MC/ELF/mc-dump.s
index 36d3a05768dc6..9cf15a7ddee46 100644
--- a/llvm/test/MC/ELF/mc-dump.s
+++ b/llvm/test/MC/ELF/mc-dump.s
@@ -8,7 +8,7 @@
# CHECK-NEXT:MCSection Name:.text
# CHECK-NEXT:0 Data Size:0 []
# CHECK-NEXT: Symbol @0 .text
-# CHECK-NEXT:0 Align Align:4 Value:0 ValueSize:1 MaxBytesToEmit:4 Nops
+# CHECK-NEXT:0 Align Align:4 Fill:0 FillLen:1 MaxBytesToEmit:4 Nops
# CHECK-NEXT:0 Data Size:0 []
# CHECK-NEXT: Symbol @0 _start
# CHECK-NEXT:0 Org Offset:3 Value:0
@@ -21,7 +21,7 @@
# CHECK-NEXT:MCSection Name:.data
# CHECK-NEXT:0 Data Size:0 []
# CHECK-NEXT: Symbol @0 .data
-# CHECK-NEXT:0 Align Align:4 Value:0 ValueSize:1 MaxBytesToEmit:4
+# CHECK-NEXT:0 Align Align:4 Fill:0 FillLen:1 MaxBytesToEmit:4
# CHECK-NEXT:0 Data Size:4 [01,00,00,00]
# CHECK-NEXT:4 Fill Value:0 ValueSize:1 NumValues:1
# CHECK-NEXT:5 LEB Value:.Ltmp0-_start Signed:0
diff --git a/llvm/test/MC/RISCV/Relocations/mc-dump.s b/llvm/test/MC/RISCV/Relocations/mc-dump.s
index 98205925da1cd..d1392c20e3ade 100644
--- a/llvm/test/MC/RISCV/Relocations/mc-dump.s
+++ b/llvm/test/MC/RISCV/Relocations/mc-dump.s
@@ -5,13 +5,13 @@
# CHECK-NEXT:MCSection Name:.text
# CHECK-NEXT:0 Data Size:0 []
# CHECK-NEXT: Symbol @0 .text
-# CHECK-NEXT:0 Align Align:4 Value:0 ValueSize:1 MaxBytesToEmit:4 Nops
+# CHECK-NEXT:0 Align Align:4 Fill:0 FillLen:1 MaxBytesToEmit:4 Nops
# CHECK-NEXT:0 Data LinkerRelaxable Size:8 [97,00,00,00,e7,80,00,00]
# CHECK-NEXT: Fixup @0 Value:specifier(19,ext) Kind:4022
# CHECK-NEXT: Symbol @0 $x
-# CHECK-NEXT:8 Align Align:8 Value:0 ValueSize:1 MaxBytesToEmit:8 Nops
+# CHECK-NEXT:8 Align Align:8 Fill:0 FillLen:1 MaxBytesToEmit:8 Nops
# CHECK-NEXT:12 Data Size:4 [13,05,30,00]
-# CHECK-NEXT:16 Align Align:8 Value:0 ValueSize:1 MaxBytesToEmit:8 Nops
+# CHECK-NEXT:16 Align Align:8 Fill:0 FillLen:1 MaxBytesToEmit:8 Nops
# CHECK-NEXT:]
call ext
diff --git a/llvm/tools/llvm-exegesis/lib/SnippetFile.cpp b/llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
index a033c3fb2627f..d67a24b5596cc 100644
--- a/llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
+++ b/llvm/tools/llvm-exegesis/lib/SnippetFile.cpp
@@ -202,8 +202,6 @@ class BenchmarkCodeStreamer : public MCStreamer, public AsmCommentConsumer {
bool emitSymbolAttribute(MCSymbol *Symbol, MCSymbolAttr Attribute) override {
return false;
}
- void emitValueToAlignment(Align Alignment, int64_t Value, unsigned ValueSize,
- unsigned MaxBytesToEmit) override {}
void emitZerofill(MCSection *Section, MCSymbol *Symbol, uint64_t Size,
Align ByteAlignment, SMLoc Loc) override {}
More information about the llvm-commits
mailing list