[llvm] b9e3f5f - [Alignment][NFC] Use Align for MCStreamer::emitXCOFFLocalCommonSymbol
Guillaume Chatelet via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 24 07:59:27 PST 2022
Author: Guillaume Chatelet
Date: 2022-11-24T15:59:13Z
New Revision: b9e3f5f864fb1944be60725aca400a9332ac6aa5
URL: https://github.com/llvm/llvm-project/commit/b9e3f5f864fb1944be60725aca400a9332ac6aa5
DIFF: https://github.com/llvm/llvm-project/commit/b9e3f5f864fb1944be60725aca400a9332ac6aa5.diff
LOG: [Alignment][NFC] Use Align for MCStreamer::emitXCOFFLocalCommonSymbol
Differential Revision: https://reviews.llvm.org/D138669
Added:
Modified:
llvm/include/llvm/MC/MCStreamer.h
llvm/include/llvm/MC/MCXCOFFStreamer.h
llvm/lib/MC/MCAsmStreamer.cpp
llvm/lib/MC/MCStreamer.cpp
llvm/lib/MC/MCXCOFFStreamer.cpp
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h
index 15a389195f69..eae5d4f7da6f 100644
--- a/llvm/include/llvm/MC/MCStreamer.h
+++ b/llvm/include/llvm/MC/MCStreamer.h
@@ -603,11 +603,9 @@ class MCStreamer {
/// \param LabelSym - Label on the block of storage.
/// \param Size - The size of the block of storage.
/// \param CsectSym - Csect name for the block of storage.
- /// \param ByteAlignment - The alignment of the symbol in bytes. Must be a
- /// power of 2.
+ /// \param Alignment - The alignment of the symbol in bytes.
virtual void emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym, uint64_t Size,
- MCSymbol *CsectSym,
- unsigned ByteAlignment);
+ MCSymbol *CsectSym, Align Alignment);
/// Emit a symbol's linkage and visibility with a linkage directive for XCOFF.
///
diff --git a/llvm/include/llvm/MC/MCXCOFFStreamer.h b/llvm/include/llvm/MC/MCXCOFFStreamer.h
index 7889525e2c27..b1ff692a435c 100644
--- a/llvm/include/llvm/MC/MCXCOFFStreamer.h
+++ b/llvm/include/llvm/MC/MCXCOFFStreamer.h
@@ -27,8 +27,7 @@ class MCXCOFFStreamer : public MCObjectStreamer {
SMLoc Loc = SMLoc()) override;
void emitInstToData(const MCInst &Inst, const MCSubtargetInfo &) override;
void emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym, uint64_t Size,
- MCSymbol *CsectSym,
- unsigned ByteAlign) override;
+ MCSymbol *CsectSym, Align Alignment) override;
void emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol,
MCSymbolAttr Linkage,
MCSymbolAttr Visibility) override;
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp
index 1cf02533cf8f..dc82e40d8a49 100644
--- a/llvm/lib/MC/MCAsmStreamer.cpp
+++ b/llvm/lib/MC/MCAsmStreamer.cpp
@@ -187,8 +187,7 @@ class MCAsmStreamer final : public MCStreamer {
void emitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) override;
void emitCOFFImgRel32(MCSymbol const *Symbol, int64_t Offset) override;
void emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym, uint64_t Size,
- MCSymbol *CsectSym,
- unsigned ByteAlign) override;
+ MCSymbol *CsectSym, Align Alignment) override;
void emitXCOFFSymbolLinkageWithVisibility(MCSymbol *Symbol,
MCSymbolAttr Linakge,
MCSymbolAttr Visibility) override;
@@ -859,16 +858,15 @@ void MCAsmStreamer::emitCOFFImgRel32(MCSymbol const *Symbol, int64_t Offset) {
void MCAsmStreamer::emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym,
uint64_t Size,
MCSymbol *CsectSym,
- unsigned ByteAlignment) {
+ Align Alignment) {
assert(MAI->getLCOMMDirectiveAlignmentType() == LCOMM::Log2Alignment &&
"We only support writing log base-2 alignment format with XCOFF.");
- assert(isPowerOf2_32(ByteAlignment) && "Alignment must be a power of 2.");
OS << "\t.lcomm\t";
LabelSym->print(OS, MAI);
OS << ',' << Size << ',';
CsectSym->print(OS, MAI);
- OS << ',' << Log2_32(ByteAlignment);
+ OS << ',' << Log2(Alignment);
EmitEOL();
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index bf2c8d01feaa..f02202767958 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -1170,7 +1170,7 @@ void MCStreamer::emitCOFFSymbolType(int Type) {
}
void MCStreamer::emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym, uint64_t Size,
MCSymbol *CsectSym,
- unsigned ByteAlign) {
+ Align Alignment) {
llvm_unreachable("this directive only supported on XCOFF targets");
}
diff --git a/llvm/lib/MC/MCXCOFFStreamer.cpp b/llvm/lib/MC/MCXCOFFStreamer.cpp
index 0ec73a923f3c..de450f55f97c 100644
--- a/llvm/lib/MC/MCXCOFFStreamer.cpp
+++ b/llvm/lib/MC/MCXCOFFStreamer.cpp
@@ -149,6 +149,6 @@ MCStreamer *llvm::createXCOFFStreamer(MCContext &Context,
void MCXCOFFStreamer::emitXCOFFLocalCommonSymbol(MCSymbol *LabelSym,
uint64_t Size,
MCSymbol *CsectSym,
- unsigned ByteAlignment) {
- emitCommonSymbol(CsectSym, Size, ByteAlignment);
+ Align Alignment) {
+ emitCommonSymbol(CsectSym, Size, Alignment.value());
}
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
index 36a5d323b740..e6538673e501 100644
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -2432,7 +2432,7 @@ void PPCAIXAsmPrinter::emitGlobalVariableHelper(const GlobalVariable *GV) {
if (GVKind.isBSSLocal() || GVKind.isThreadBSSLocal())
OutStreamer->emitXCOFFLocalCommonSymbol(
OutContext.getOrCreateSymbol(GVSym->getSymbolTableName()), Size,
- GVSym, Alignment.value());
+ GVSym, Alignment);
else
OutStreamer->emitCommonSymbol(GVSym, Size, Alignment.value());
return;
More information about the llvm-commits
mailing list