[llvm] 4f17734 - [Alignment][NFC] Use Align in MCStreamer::emitCodeAlignment
Guillaume Chatelet via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 24 06:51:58 PST 2022
Author: Guillaume Chatelet
Date: 2022-11-24T14:51:46Z
New Revision: 4f17734175099e0cd492882e17d2ad51fda964aa
URL: https://github.com/llvm/llvm-project/commit/4f17734175099e0cd492882e17d2ad51fda964aa
DIFF: https://github.com/llvm/llvm-project/commit/4f17734175099e0cd492882e17d2ad51fda964aa.diff
LOG: [Alignment][NFC] Use Align in MCStreamer::emitCodeAlignment
This patch makes code less readable but it will clean itself after all functions are converted.
Differential Revision: https://reviews.llvm.org/D138665
Added:
Modified:
bolt/include/bolt/Core/BinaryBasicBlock.h
bolt/include/bolt/Core/BinaryFunction.h
bolt/lib/Core/BinaryEmitter.cpp
llvm/include/llvm/MC/MCObjectStreamer.h
llvm/include/llvm/MC/MCStreamer.h
llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
llvm/lib/MC/MCAsmStreamer.cpp
llvm/lib/MC/MCELFStreamer.cpp
llvm/lib/MC/MCObjectStreamer.cpp
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/lib/MC/MCParser/MasmParser.cpp
llvm/lib/MC/MCStreamer.cpp
llvm/lib/MC/MCWinCOFFStreamer.cpp
llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
llvm/lib/Target/ARM/ARMAsmPrinter.cpp
llvm/lib/Target/ARM/ARMMCInstLower.cpp
llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
llvm/lib/Target/Hexagon/HexagonTargetStreamer.h
llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
llvm/lib/Target/Mips/MipsAsmPrinter.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/lib/Target/X86/X86MCInstLower.cpp
Removed:
################################################################################
diff --git a/bolt/include/bolt/Core/BinaryBasicBlock.h b/bolt/include/bolt/Core/BinaryBasicBlock.h
index 3e0f81592bc1c..d5f52734bcf36 100644
--- a/bolt/include/bolt/Core/BinaryBasicBlock.h
+++ b/bolt/include/bolt/Core/BinaryBasicBlock.h
@@ -570,6 +570,7 @@ class BinaryBasicBlock {
}
/// Return required alignment for the block.
+ Align getAlign() const { return Align(Alignment); }
uint32_t getAlignment() const { return Alignment; }
/// Set the maximum number of bytes to use for the block alignment.
diff --git a/bolt/include/bolt/Core/BinaryFunction.h b/bolt/include/bolt/Core/BinaryFunction.h
index c260ccee480c9..b090fda7e50f8 100644
--- a/bolt/include/bolt/Core/BinaryFunction.h
+++ b/bolt/include/bolt/Core/BinaryFunction.h
@@ -1785,6 +1785,7 @@ class BinaryFunction {
return *this;
}
+ Align getAlign() const { return Align(Alignment); }
uint16_t getAlignment() const { return Alignment; }
BinaryFunction &setMaxAlignmentBytes(uint16_t MaxAlignBytes) {
diff --git a/bolt/lib/Core/BinaryEmitter.cpp b/bolt/lib/Core/BinaryEmitter.cpp
index ceb63aff10118..c4ad4e961430f 100644
--- a/bolt/lib/Core/BinaryEmitter.cpp
+++ b/bolt/lib/Core/BinaryEmitter.cpp
@@ -303,15 +303,14 @@ bool BinaryEmitter::emitFunction(BinaryFunction &Function,
if (Section->getAlign() < opts::AlignFunctions)
Section->setAlignment(Align(opts::AlignFunctions));
- Streamer.emitCodeAlignment(BinaryFunction::MinAlign, &*BC.STI);
+ Streamer.emitCodeAlignment(Align(BinaryFunction::MinAlign), &*BC.STI);
uint16_t MaxAlignBytes = FF.isSplitFragment()
? Function.getMaxColdAlignmentBytes()
: Function.getMaxAlignmentBytes();
if (MaxAlignBytes > 0)
- Streamer.emitCodeAlignment(Function.getAlignment(), &*BC.STI,
- MaxAlignBytes);
+ Streamer.emitCodeAlignment(Function.getAlign(), &*BC.STI, MaxAlignBytes);
} else {
- Streamer.emitCodeAlignment(Function.getAlignment(), &*BC.STI);
+ Streamer.emitCodeAlignment(Function.getAlign(), &*BC.STI);
}
MCContext &Context = Streamer.getContext();
@@ -427,7 +426,7 @@ void BinaryEmitter::emitFunctionBody(BinaryFunction &BF, FunctionFragment &FF,
for (BinaryBasicBlock *const BB : FF) {
if ((opts::AlignBlocks || opts::PreserveBlocksAlignment) &&
BB->getAlignment() > 1)
- Streamer.emitCodeAlignment(BB->getAlignment(), &*BC.STI,
+ Streamer.emitCodeAlignment(BB->getAlign(), &*BC.STI,
BB->getAlignmentMaxBytes());
Streamer.emitLabel(BB->getLabel());
if (!EmitCodeOnly) {
@@ -516,7 +515,7 @@ void BinaryEmitter::emitConstantIslands(BinaryFunction &BF, bool EmitColdPart,
const uint16_t Alignment = OnBehalfOf
? OnBehalfOf->getConstantIslandAlignment()
: BF.getConstantIslandAlignment();
- Streamer.emitCodeAlignment(Alignment, &*BC.STI);
+ Streamer.emitCodeAlignment(Align(Alignment), &*BC.STI);
if (!OnBehalfOf) {
if (!EmitColdPart)
diff --git a/llvm/include/llvm/MC/MCObjectStreamer.h b/llvm/include/llvm/MC/MCObjectStreamer.h
index efccf89a45031..57d9162ca3940 100644
--- a/llvm/include/llvm/MC/MCObjectStreamer.h
+++ b/llvm/include/llvm/MC/MCObjectStreamer.h
@@ -155,7 +155,7 @@ class MCObjectStreamer : public MCStreamer {
void emitValueToAlignment(unsigned ByteAlignment, int64_t Value = 0,
unsigned ValueSize = 1,
unsigned MaxBytesToEmit = 0) override;
- void emitCodeAlignment(unsigned ByteAlignment, const MCSubtargetInfo *STI,
+ void emitCodeAlignment(Align ByteAlignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit = 0) override;
void emitValueToOffset(const MCExpr *Offset, unsigned char Value,
SMLoc Loc) override;
diff --git a/llvm/include/llvm/MC/MCStreamer.h b/llvm/include/llvm/MC/MCStreamer.h
index 2e4ddd001c711..15a389195f691 100644
--- a/llvm/include/llvm/MC/MCStreamer.h
+++ b/llvm/include/llvm/MC/MCStreamer.h
@@ -873,14 +873,12 @@ class MCStreamer {
/// This used to align code where the alignment bytes may be executed. This
/// can emit
diff erent bytes for
diff erent sizes to optimize execution.
///
- /// \param ByteAlignment - The alignment to reach. This must be a power of
- /// two on some targets.
+ /// \param Alignment - The alignment to reach.
/// \param STI - The MCSubtargetInfo in operation when padding is emitted.
/// \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 emitCodeAlignment(unsigned ByteAlignment,
- const MCSubtargetInfo *STI,
+ virtual void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit = 0);
/// Emit some number of copies of \p Value until the byte offset \p
diff --git a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
index dc3b07b1de2f1..e09989bcb90f1 100644
--- a/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
+++ b/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp
@@ -2835,7 +2835,7 @@ void AsmPrinter::emitAlignment(Align Alignment, const GlobalObject *GV,
STI = &getSubtargetInfo();
else
STI = TM.getMCSubtargetInfo();
- OutStreamer->emitCodeAlignment(Alignment.value(), STI, MaxBytesToEmit);
+ OutStreamer->emitCodeAlignment(Alignment, STI, MaxBytesToEmit);
} else
OutStreamer->emitValueToAlignment(Alignment.value(), 0, 1, MaxBytesToEmit);
}
@@ -3961,7 +3961,8 @@ void AsmPrinter::emitXRayTable() {
// pointers. This should work for both 32-bit and 64-bit platforms.
if (FnSledIndex) {
OutStreamer->switchSection(FnSledIndex);
- OutStreamer->emitCodeAlignment(2 * WordSizeBytes, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(2 * WordSizeBytes),
+ &getSubtargetInfo());
OutStreamer->emitSymbolValue(SledsStart, WordSizeBytes, false);
OutStreamer->emitSymbolValue(SledsEnd, WordSizeBytes, false);
OutStreamer->switchSection(PrevSection);
diff --git a/llvm/lib/MC/MCAsmStreamer.cpp b/llvm/lib/MC/MCAsmStreamer.cpp
index 9483dd53ff5cf..1cf02533cf8fc 100644
--- a/llvm/lib/MC/MCAsmStreamer.cpp
+++ b/llvm/lib/MC/MCAsmStreamer.cpp
@@ -257,7 +257,7 @@ class MCAsmStreamer final : public MCStreamer {
unsigned ValueSize = 1,
unsigned MaxBytesToEmit = 0) override;
- void emitCodeAlignment(unsigned ByteAlignment, const MCSubtargetInfo *STI,
+ void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit = 0) override;
void emitValueToOffset(const MCExpr *Offset,
@@ -1490,15 +1490,15 @@ void MCAsmStreamer::emitValueToAlignment(unsigned ByteAlignment, int64_t Value,
emitAlignmentDirective(ByteAlignment, Value, ValueSize, MaxBytesToEmit);
}
-void MCAsmStreamer::emitCodeAlignment(unsigned ByteAlignment,
+void MCAsmStreamer::emitCodeAlignment(Align Alignment,
const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit) {
// Emit with a text fill value.
if (MAI->getTextAlignFillValue())
- emitAlignmentDirective(ByteAlignment, MAI->getTextAlignFillValue(), 1,
+ emitAlignmentDirective(Alignment.value(), MAI->getTextAlignFillValue(), 1,
MaxBytesToEmit);
else
- emitAlignmentDirective(ByteAlignment, None, 1, MaxBytesToEmit);
+ emitAlignmentDirective(Alignment.value(), None, 1, MaxBytesToEmit);
}
void MCAsmStreamer::emitValueToOffset(const MCExpr *Offset,
diff --git a/llvm/lib/MC/MCELFStreamer.cpp b/llvm/lib/MC/MCELFStreamer.cpp
index 6b9f59094011d..70d97f3bbd2e2 100644
--- a/llvm/lib/MC/MCELFStreamer.cpp
+++ b/llvm/lib/MC/MCELFStreamer.cpp
@@ -91,7 +91,8 @@ void MCELFStreamer::mergeFragment(MCDataFragment *DF,
void MCELFStreamer::initSections(bool NoExecStack, const MCSubtargetInfo &STI) {
MCContext &Ctx = getContext();
switchSection(Ctx.getObjectFileInfo()->getTextSection());
- emitCodeAlignment(Ctx.getObjectFileInfo()->getTextSectionAlignment(), &STI);
+ emitCodeAlignment(Align(Ctx.getObjectFileInfo()->getTextSectionAlignment()),
+ &STI);
if (NoExecStack)
switchSection(Ctx.getAsmInfo()->getNonexecutableStackSection(Ctx));
diff --git a/llvm/lib/MC/MCObjectStreamer.cpp b/llvm/lib/MC/MCObjectStreamer.cpp
index 701f0c5dc3090..cf5a27a80be26 100644
--- a/llvm/lib/MC/MCObjectStreamer.cpp
+++ b/llvm/lib/MC/MCObjectStreamer.cpp
@@ -656,10 +656,10 @@ void MCObjectStreamer::emitValueToAlignment(unsigned ByteAlignment,
CurSec->setAlignment(Align(ByteAlignment));
}
-void MCObjectStreamer::emitCodeAlignment(unsigned ByteAlignment,
+void MCObjectStreamer::emitCodeAlignment(Align Alignment,
const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit) {
- emitValueToAlignment(ByteAlignment, 0, 1, MaxBytesToEmit);
+ emitValueToAlignment(Alignment.value(), 0, 1, MaxBytesToEmit);
cast<MCAlignFragment>(getCurrentFragment())->setEmitNops(true, STI);
}
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index 8866e9c7ce20d..b3f1dd92af5c4 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -3485,8 +3485,8 @@ bool AsmParser::parseDirectiveAlign(bool IsPow2, unsigned ValueSize) {
bool useCodeAlign = Section->useCodeAlign();
if ((!HasFillExpr || Lexer.getMAI().getTextAlignFillValue() == FillExpr) &&
ValueSize == 1 && useCodeAlign) {
- getStreamer().emitCodeAlignment(Alignment, &getTargetParser().getSTI(),
- MaxBytesToFill);
+ getStreamer().emitCodeAlignment(
+ Align(Alignment), &getTargetParser().getSTI(), MaxBytesToFill);
} else {
// FIXME: Target specific behavior about how the "extra" bytes are filled.
getStreamer().emitValueToAlignment(Alignment, FillExpr, ValueSize,
diff --git a/llvm/lib/MC/MCParser/MasmParser.cpp b/llvm/lib/MC/MCParser/MasmParser.cpp
index 595d1f7f7bf3a..65e28a1e46602 100644
--- a/llvm/lib/MC/MCParser/MasmParser.cpp
+++ b/llvm/lib/MC/MCParser/MasmParser.cpp
@@ -4742,7 +4742,8 @@ bool MasmParser::emitAlignTo(int64_t Alignment) {
const MCSection *Section = getStreamer().getCurrentSectionOnly();
assert(Section && "must have section to emit alignment");
if (Section->useCodeAlign()) {
- getStreamer().emitCodeAlignment(Alignment, &getTargetParser().getSTI(),
+ getStreamer().emitCodeAlignment(Align(Alignment),
+ &getTargetParser().getSTI(),
/*MaxBytesToEmit=*/0);
} else {
// FIXME: Target specific behavior about how the "extra" bytes are filled.
diff --git a/llvm/lib/MC/MCStreamer.cpp b/llvm/lib/MC/MCStreamer.cpp
index 4405cda402d56..bf2c8d01feaa9 100644
--- a/llvm/lib/MC/MCStreamer.cpp
+++ b/llvm/lib/MC/MCStreamer.cpp
@@ -1222,8 +1222,7 @@ void MCStreamer::emitFill(const MCExpr &NumValues, int64_t Size, int64_t Expr,
void MCStreamer::emitValueToAlignment(unsigned ByteAlignment, int64_t Value,
unsigned ValueSize,
unsigned MaxBytesToEmit) {}
-void MCStreamer::emitCodeAlignment(unsigned ByteAlignment,
- const MCSubtargetInfo *STI,
+void MCStreamer::emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit) {}
void MCStreamer::emitValueToOffset(const MCExpr *Offset, unsigned char Value,
SMLoc Loc) {}
diff --git a/llvm/lib/MC/MCWinCOFFStreamer.cpp b/llvm/lib/MC/MCWinCOFFStreamer.cpp
index 5d522f3841c3d..0445c2d238070 100644
--- a/llvm/lib/MC/MCWinCOFFStreamer.cpp
+++ b/llvm/lib/MC/MCWinCOFFStreamer.cpp
@@ -71,13 +71,13 @@ void MCWinCOFFStreamer::initSections(bool NoExecStack,
// This emulates the same behavior of GNU as. This makes it easier
// to compare the output as the major sections are in the same order.
switchSection(getContext().getObjectFileInfo()->getTextSection());
- emitCodeAlignment(4, &STI);
+ emitCodeAlignment(Align(4), &STI);
switchSection(getContext().getObjectFileInfo()->getDataSection());
- emitCodeAlignment(4, &STI);
+ emitCodeAlignment(Align(4), &STI);
switchSection(getContext().getObjectFileInfo()->getBSSSection());
- emitCodeAlignment(4, &STI);
+ emitCodeAlignment(Align(4), &STI);
switchSection(getContext().getObjectFileInfo()->getTextSection());
}
diff --git a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
index b6d76c8d3a9fb..245a2e6077a47 100644
--- a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+++ b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
@@ -306,7 +306,7 @@ void AArch64AsmPrinter::emitSled(const MachineInstr &MI, SledKind Kind) {
// ;DATA: higher 32 bits of the address of the trampoline
// LDP X0, X30, [SP], #16 ; pop X0 and the link register from the stack
//
- OutStreamer->emitCodeAlignment(4, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(4), &getSubtargetInfo());
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
OutStreamer->emitLabel(CurSled);
auto Target = OutContext.createTempSymbol();
diff --git a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
index 5294fc831f349..bcd3ea2153b74 100644
--- a/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
+++ b/llvm/lib/Target/ARM/ARMAsmPrinter.cpp
@@ -1791,7 +1791,7 @@ void ARMAsmPrinter::emitInstruction(const MachineInstr *MI) {
// FIXME: Ideally we could vary the LDRB index based on the padding
// between the sequence and jump table, however that relies on MCExprs
// for load indexes which are currently not supported.
- OutStreamer->emitCodeAlignment(4, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(4), &getSubtargetInfo());
EmitToStreamer(*OutStreamer, MCInstBuilder(ARM::tADDhirr)
.addReg(Idx)
.addReg(Idx)
diff --git a/llvm/lib/Target/ARM/ARMMCInstLower.cpp b/llvm/lib/Target/ARM/ARMMCInstLower.cpp
index 2030fab6217d2..a6b68e55e54af 100644
--- a/llvm/lib/Target/ARM/ARMMCInstLower.cpp
+++ b/llvm/lib/Target/ARM/ARMMCInstLower.cpp
@@ -194,7 +194,7 @@ void ARMAsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind)
// BLX ip
// POP{ r0, lr }
//
- OutStreamer->emitCodeAlignment(4, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(4), &getSubtargetInfo());
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
OutStreamer->emitLabel(CurSled);
auto Target = OutContext.createTempSymbol();
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 615ec31f5356c..92aa41bc6db00 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -11856,7 +11856,7 @@ bool ARMAsmParser::parseDirectiveEven(SMLoc L) {
assert(Section && "must have section to emit alignment");
if (Section->useCodeAlign())
- getStreamer().emitCodeAlignment(2, &getSTI());
+ getStreamer().emitCodeAlignment(Align(2), &getSTI());
else
getStreamer().emitValueToAlignment(2);
@@ -12054,7 +12054,7 @@ bool ARMAsmParser::parseDirectiveAlign(SMLoc L) {
const MCSection *Section = getStreamer().getCurrentSectionOnly();
assert(Section && "must have section to emit alignment");
if (Section->useCodeAlign())
- getStreamer().emitCodeAlignment(4, &getSTI(), 0);
+ getStreamer().emitCodeAlignment(Align(4), &getSTI(), 0);
else
getStreamer().emitValueToAlignment(4, 0, 1, 0);
return false;
diff --git a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
index dd7053d60aa11..37030d9777143 100644
--- a/llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
+++ b/llvm/lib/Target/CSKY/MCTargetDesc/CSKYTargetStreamer.cpp
@@ -30,7 +30,7 @@ void CSKYConstantPool::emitAll(MCStreamer &Streamer) {
Streamer.emitDataRegion(MCDR_DataRegion);
for (const ConstantPoolEntry &Entry : Entries) {
Streamer.emitCodeAlignment(
- Entry.Size,
+ Align(Entry.Size),
Streamer.getContext().getSubtargetInfo()); // align naturally
Streamer.emitLabel(Entry.Label);
Streamer.emitValue(Entry.Value, Entry.Size, Entry.Loc);
diff --git a/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp b/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
index ce2a65c86b900..b55500e27bf8c 100644
--- a/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
+++ b/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp
@@ -1495,7 +1495,7 @@ int HexagonAsmParser::processInstruction(MCInst &Inst,
MES->switchSection(mySection);
unsigned byteSize = is32bit ? 4 : 8;
- getStreamer().emitCodeAlignment(byteSize, &getSTI(), byteSize);
+ getStreamer().emitCodeAlignment(Align(byteSize), &getSTI(), byteSize);
MCSymbol *Sym;
diff --git a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
index 1064296b0991a..27bc4bf9d08b5 100644
--- a/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
+++ b/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp
@@ -209,7 +209,7 @@ static MCSymbol *smallData(AsmPrinter &AP, const MachineInstr &MI,
OutStreamer.emitLabel(Sym);
OutStreamer.emitSymbolAttribute(Sym, MCSA_Global);
OutStreamer.emitIntValue(Value, AlignSize);
- OutStreamer.emitCodeAlignment(AlignSize, &STI);
+ OutStreamer.emitCodeAlignment(Align(AlignSize), &STI);
}
} else {
assert(Imm.isExpr() && "Expected expression and found none");
@@ -237,7 +237,7 @@ static MCSymbol *smallData(AsmPrinter &AP, const MachineInstr &MI,
OutStreamer.emitLabel(Sym);
OutStreamer.emitSymbolAttribute(Sym, MCSA_Local);
OutStreamer.emitValue(Imm.getExpr(), AlignSize);
- OutStreamer.emitCodeAlignment(AlignSize, &STI);
+ OutStreamer.emitCodeAlignment(Align(AlignSize), &STI);
}
}
return Sym;
diff --git a/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h b/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h
index a99aa4f16a08b..ff84363106629 100644
--- a/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h
+++ b/llvm/lib/Target/Hexagon/HexagonTargetStreamer.h
@@ -15,8 +15,7 @@ namespace llvm {
class HexagonTargetStreamer : public MCTargetStreamer {
public:
HexagonTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}
- virtual void emitCodeAlignment(unsigned ByteAlignment,
- const MCSubtargetInfo *STI,
+ virtual void emitCodeAlignment(Align Alignment, const MCSubtargetInfo *STI,
unsigned MaxBytesToEmit = 0){};
virtual void emitFAlign(unsigned Size, unsigned MaxBytesToEmit){};
virtual void emitCommonSymbolSorted(MCSymbol *Symbol, uint64_t Size,
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
index 67eb9edee0a58..219a7dc0f5a28 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
@@ -915,7 +915,7 @@ void MipsTargetELFStreamer::finish() {
Align Alignment = Section.getAlign();
OS.switchSection(&Section);
if (Section.useCodeAlign())
- OS.emitCodeAlignment(Alignment.value(), &STI, Alignment.value());
+ OS.emitCodeAlignment(Alignment, &STI, Alignment.value());
else
OS.emitValueToAlignment(Alignment.value(), 0, 1, Alignment.value());
}
diff --git a/llvm/lib/Target/Mips/MipsAsmPrinter.cpp b/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
index fcaf450cc511a..4055659171f83 100644
--- a/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
+++ b/llvm/lib/Target/Mips/MipsAsmPrinter.cpp
@@ -1202,7 +1202,7 @@ void MipsAsmPrinter::EmitSled(const MachineInstr &MI, SledKind Kind) {
// LD RA, 8(SP)
// DADDIU SP, SP, 16
//
- OutStreamer->emitCodeAlignment(4, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(4), &getSubtargetInfo());
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
OutStreamer->emitLabel(CurSled);
auto Target = OutContext.createTempSymbol();
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
index b020635f42099..eef29d8cc5d52 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFStreamer.cpp
@@ -55,7 +55,7 @@ void PPCELFStreamer::emitPrefixedInstruction(const MCInst &Inst,
// all of the nops required as part of the alignment operation. In the cases
// when no nops are added then The fragment is still created but it remains
// empty.
- emitCodeAlignment(64, &STI, 4);
+ emitCodeAlignment(Align(64), &STI, 4);
// Emit the instruction.
// Since the previous emit created a new fragment then adding this instruction
diff --git a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
index f8b1914bd520c..8e685d0df758f 100644
--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
+++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCXCOFFStreamer.cpp
@@ -46,7 +46,7 @@ void PPCXCOFFStreamer::emitPrefixedInstruction(const MCInst &Inst,
// prefixed instruction. Align to 64 bytes if possible but add a maximum of 4
// bytes when trying to do that. If alignment requires adding more than 4
// bytes then the instruction won't be aligned.
- emitCodeAlignment(64, &STI, 4);
+ emitCodeAlignment(Align(64), &STI, 4);
// Emit the instruction.
// Since the previous emit created a new fragment then adding this instruction
diff --git a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
index 172db3f185e36..36a5d323b7402 100644
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
@@ -1537,7 +1537,7 @@ void PPCLinuxAsmPrinter::emitInstruction(const MachineInstr *MI) {
//
// Update compiler-rt/lib/xray/xray_powerpc64.cc accordingly when number
// of instructions change.
- OutStreamer->emitCodeAlignment(8, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(8), &getSubtargetInfo());
MCSymbol *BeginOfSled = OutContext.createTempSymbol();
OutStreamer->emitLabel(BeginOfSled);
EmitToStreamer(*OutStreamer, RetInst);
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index a2a67fdecf8fc..b58b061884959 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -4727,7 +4727,7 @@ bool X86AsmParser::parseDirectiveEven(SMLoc L) {
Section = getStreamer().getCurrentSectionOnly();
}
if (Section->useCodeAlign())
- getStreamer().emitCodeAlignment(2, &getSTI(), 0);
+ getStreamer().emitCodeAlignment(Align(2), &getSTI(), 0);
else
getStreamer().emitValueToAlignment(2, 0, 1, 0);
return false;
diff --git a/llvm/lib/Target/X86/X86MCInstLower.cpp b/llvm/lib/Target/X86/X86MCInstLower.cpp
index 9b15bad41ff5c..e1d03d6010e03 100644
--- a/llvm/lib/Target/X86/X86MCInstLower.cpp
+++ b/llvm/lib/Target/X86/X86MCInstLower.cpp
@@ -1580,7 +1580,7 @@ void X86AsmPrinter::LowerPATCHABLE_EVENT_CALL(const MachineInstr &MI,
// First we emit the label and the jump.
auto CurSled = OutContext.createTempSymbol("xray_event_sled_", true);
OutStreamer->AddComment("# XRay Custom Event Log");
- OutStreamer->emitCodeAlignment(2, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(2), &getSubtargetInfo());
OutStreamer->emitLabel(CurSled);
// Use a two-byte `jmp`. This version of JMP takes an 8-bit relative offset as
@@ -1676,7 +1676,7 @@ void X86AsmPrinter::LowerPATCHABLE_TYPED_EVENT_CALL(const MachineInstr &MI,
// First we emit the label and the jump.
auto CurSled = OutContext.createTempSymbol("xray_typed_event_sled_", true);
OutStreamer->AddComment("# XRay Typed Event Log");
- OutStreamer->emitCodeAlignment(2, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(2), &getSubtargetInfo());
OutStreamer->emitLabel(CurSled);
// Use a two-byte `jmp`. This version of JMP takes an 8-bit relative offset as
@@ -1778,7 +1778,7 @@ void X86AsmPrinter::LowerPATCHABLE_FUNCTION_ENTER(const MachineInstr &MI,
// call <relative offset, 32-bits> // 5 bytes
//
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
- OutStreamer->emitCodeAlignment(2, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(2), &getSubtargetInfo());
OutStreamer->emitLabel(CurSled);
// Use a two-byte `jmp`. This version of JMP takes an 8-bit relative offset as
@@ -1808,7 +1808,7 @@ void X86AsmPrinter::LowerPATCHABLE_RET(const MachineInstr &MI,
//
// This just makes sure that the alignment for the next instruction is 2.
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
- OutStreamer->emitCodeAlignment(2, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(2), &getSubtargetInfo());
OutStreamer->emitLabel(CurSled);
unsigned OpCode = MI.getOperand(0).getImm();
MCInst Ret;
@@ -1832,7 +1832,7 @@ void X86AsmPrinter::LowerPATCHABLE_TAIL_CALL(const MachineInstr &MI,
// the PATCHABLE_FUNCTION_ENTER case, followed by the lowering of the actual
// tail call much like how we have it in PATCHABLE_RET.
auto CurSled = OutContext.createTempSymbol("xray_sled_", true);
- OutStreamer->emitCodeAlignment(2, &getSubtargetInfo());
+ OutStreamer->emitCodeAlignment(Align(2), &getSubtargetInfo());
OutStreamer->emitLabel(CurSled);
auto Target = OutContext.createTempSymbol();
More information about the llvm-commits
mailing list