Skip to content

Commit e288df6

Browse files
committed
Register assembly printer passes
1 parent 1101b76 commit e288df6

File tree

14 files changed

+33
-10
lines changed

14 files changed

+33
-10
lines changed

llvm/include/llvm/CodeGen/AsmPrinter.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -240,7 +240,8 @@ class AsmPrinter : public MachineFunctionPass {
240240
bool DbgInfoAvailable = false;
241241

242242
protected:
243-
explicit AsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer> Streamer);
243+
AsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer> Streamer,
244+
char &ID = AsmPrinter::ID);
244245

245246
public:
246247
~AsmPrinter() override;

llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,8 @@ Align AsmPrinter::getGVAlignment(const GlobalObject *GV, const DataLayout &DL,
382382
return Alignment;
383383
}
384384

385-
AsmPrinter::AsmPrinter(TargetMachine &tm, std::unique_ptr<MCStreamer> Streamer)
385+
AsmPrinter::AsmPrinter(TargetMachine &tm, std::unique_ptr<MCStreamer> Streamer,
386+
char &ID)
386387
: MachineFunctionPass(ID), TM(tm), MAI(tm.getMCAsmInfo()),
387388
OutContext(Streamer->getContext()), OutStreamer(std::move(Streamer)),
388389
SM(*this) {

llvm/lib/Target/AArch64/AArch64.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ ModulePass *createAArch64Arm64ECCallLoweringPass();
7777
void initializeAArch64A53Fix835769Pass(PassRegistry&);
7878
void initializeAArch64A57FPLoadBalancingPass(PassRegistry&);
7979
void initializeAArch64AdvSIMDScalarPass(PassRegistry&);
80+
void initializeAArch64AsmPrinterPass(PassRegistry&);
8081
void initializeAArch64PointerAuthPass(PassRegistry&);
8182
void initializeAArch64BranchTargetsPass(PassRegistry&);
8283
void initializeAArch64CFIFixupPass(PassRegistry&);

llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,11 @@ class AArch64AsmPrinter : public AsmPrinter {
9696
SectionToImportedFunctionCalls;
9797

9898
public:
99+
static char ID;
100+
99101
AArch64AsmPrinter(TargetMachine &TM, std::unique_ptr<MCStreamer> Streamer)
100-
: AsmPrinter(TM, std::move(Streamer)), MCInstLowering(OutContext, *this),
101-
FM(*this) {}
102+
: AsmPrinter(TM, std::move(Streamer), ID),
103+
MCInstLowering(OutContext, *this), FM(*this) {}
102104

103105
StringRef getPassName() const override { return "AArch64 Assembly Printer"; }
104106

@@ -3523,6 +3525,11 @@ const MCExpr *AArch64AsmPrinter::lowerConstant(const Constant *CV,
35233525
return AsmPrinter::lowerConstant(CV, BaseCV, Offset);
35243526
}
35253527

3528+
char AArch64AsmPrinter::ID = 0;
3529+
3530+
INITIALIZE_PASS(AArch64AsmPrinter, "aarch64-asm-printer",
3531+
"AArch64 Assmebly Printer", false, false)
3532+
35263533
// Force static initialization.
35273534
extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64AsmPrinter() {
35283535
RegisterAsmPrinter<AArch64AsmPrinter> X(getTheAArch64leTarget());

llvm/lib/Target/AArch64/AArch64TargetMachine.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeAArch64Target() {
235235
initializeAArch64A53Fix835769Pass(PR);
236236
initializeAArch64A57FPLoadBalancingPass(PR);
237237
initializeAArch64AdvSIMDScalarPass(PR);
238+
initializeAArch64AsmPrinterPass(PR);
238239
initializeAArch64BranchTargetsPass(PR);
239240
initializeAArch64CollectLOHPass(PR);
240241
initializeAArch64CompressJumpTablesPass(PR);

llvm/lib/Target/X86/X86.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,7 @@ void initializeFPSPass(PassRegistry &);
176176
void initializeFixupBWInstPassPass(PassRegistry &);
177177
void initializeFixupLEAPassPass(PassRegistry &);
178178
void initializeX86ArgumentStackSlotPassPass(PassRegistry &);
179+
void initializeX86AsmPrinterPass(PassRegistry &);
179180
void initializeX86FixupInstTuningPassPass(PassRegistry &);
180181
void initializeX86FixupVectorConstantsPassPass(PassRegistry &);
181182
void initializeWinEHStatePassPass(PassRegistry &);

llvm/lib/Target/X86/X86AsmPrinter.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "MCTargetDesc/X86MCTargetDesc.h"
1818
#include "MCTargetDesc/X86TargetStreamer.h"
1919
#include "TargetInfo/X86TargetInfo.h"
20+
#include "X86.h"
2021
#include "X86InstrInfo.h"
2122
#include "X86MachineFunctionInfo.h"
2223
#include "X86Subtarget.h"
@@ -53,7 +54,7 @@ using namespace llvm;
5354

5455
X86AsmPrinter::X86AsmPrinter(TargetMachine &TM,
5556
std::unique_ptr<MCStreamer> Streamer)
56-
: AsmPrinter(TM, std::move(Streamer)), FM(*this) {}
57+
: AsmPrinter(TM, std::move(Streamer), ID), FM(*this) {}
5758

5859
//===----------------------------------------------------------------------===//
5960
// Primitive Helper Functions.
@@ -1086,6 +1087,11 @@ void X86AsmPrinter::emitEndOfAsmFile(Module &M) {
10861087
}
10871088
}
10881089

1090+
char X86AsmPrinter::ID = 0;
1091+
1092+
INITIALIZE_PASS(X86AsmPrinter, "x86-asm-printer", "X86 Assembly Printer", false,
1093+
false)
1094+
10891095
//===----------------------------------------------------------------------===//
10901096
// Target Registry Stuff
10911097
//===----------------------------------------------------------------------===//

llvm/lib/Target/X86/X86AsmPrinter.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ class X86Subtarget;
2525
class TargetMachine;
2626

2727
class LLVM_LIBRARY_VISIBILITY X86AsmPrinter : public AsmPrinter {
28+
public:
29+
static char ID;
30+
31+
private:
2832
const X86Subtarget *Subtarget = nullptr;
2933
FaultMaps FM;
3034
std::unique_ptr<MCCodeEmitter> CodeEmitter;

llvm/lib/Target/X86/X86TargetMachine.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ extern "C" LLVM_C_ABI void LLVMInitializeX86Target() {
102102
initializeX86ReturnThunksPass(PR);
103103
initializeX86DAGToDAGISelLegacyPass(PR);
104104
initializeX86ArgumentStackSlotPassPass(PR);
105+
initializeX86AsmPrinterPass(PR);
105106
initializeX86FixupInstTuningPassPass(PR);
106107
initializeX86FixupVectorConstantsPassPass(PR);
107108
initializeX86DynAllocaExpanderPass(PR);

llvm/test/CodeGen/X86/align-basic-block-sections.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Check if the alignment directive is put on the correct place when the basic block section option is used.
2-
# RUN: llc -mtriple x86_64-unknown-linux-gnu -start-after=bbsections-prepare %s -o - | FileCheck %s -check-prefix=CHECK
2+
# RUN: llc -mtriple x86_64-unknown-linux-gnu -start-before=x86-asm-printer %s -o - | FileCheck %s -check-prefix=CHECK
33

44
# How to generate the input:
55
# foo.c

llvm/test/CodeGen/X86/basic-block-address-map-mir-parse.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Start after bbsections0-prepare and check that the BB address map is generated.
2-
# RUN: llc -mtriple x86_64-unknown-linux-gnu -start-after=bbsections-prepare -basic-block-address-map %s -o - | FileCheck %s -check-prefix=CHECK
2+
# RUN: llc -mtriple x86_64-unknown-linux-gnu -start-before=x86-asm-printer -basic-block-address-map %s -o - | FileCheck %s -check-prefix=CHECK
33

44
# How to generate the input:
55
# foo.cc

llvm/test/CodeGen/X86/basic-block-sections-mir-parse.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Start after bbsections0-prepare and check if the right code is generated.
2-
# RUN: llc -mtriple x86_64-unknown-linux-gnu -start-after=bbsections-prepare %s -o - | FileCheck %s -check-prefix=CHECK
2+
# RUN: llc -mtriple x86_64-unknown-linux-gnu -start-before=x86-asm-printer %s -o - | FileCheck %s -check-prefix=CHECK
33

44

55
# How to generate the input:

llvm/test/DebugInfo/MIR/AArch64/clobber-sp.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# RUN: llc -start-after=livedebugvalues -filetype=obj -o - %s \
1+
# RUN: llc -start-before=aarch64-asm-printer -filetype=obj -o - %s \
22
# RUN: | llvm-dwarfdump - | FileCheck %s
33
# CHECK: .debug_info contents:
44
# CHECK: DW_TAG_formal_parameter

llvm/test/DebugInfo/X86/single-location.mir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# RUN: llc -start-after=livedebugvalues --filetype=obj %s -o - \
1+
# RUN: llc -start-before=x86-asm-printer --filetype=obj %s -o - \
22
# RUN: | llvm-dwarfdump -v - | FileCheck %s
33
#
44
# Generated at -O2, stopped after livedebugvalues, with some metadata removed

0 commit comments

Comments
 (0)