[PATCH] D137123: NVPTX: Register null target streamer
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 31 15:31:35 PDT 2022
arsenm created this revision.
arsenm added reviewers: jholewinski, tra, bkramer.
Herald added subscribers: mattd, gchakrabarti, asavonic, hiraditya.
Herald added a project: All.
arsenm requested review of this revision.
Herald added a subscriber: wdng.
Herald added a project: LLVM.
https://reviews.llvm.org/D137123
Files:
llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp
llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h
llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
Index: llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
===================================================================
--- llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
+++ llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
@@ -895,19 +895,18 @@
clearAnnotationCache(&M);
- if (auto *TS = static_cast<NVPTXTargetStreamer *>(
- OutStreamer->getTargetStreamer())) {
- // Close the last emitted section
- if (HasDebugInfo) {
- TS->closeLastSection();
- // Emit empty .debug_loc section for better support of the empty files.
- OutStreamer->emitRawText("\t.section\t.debug_loc\t{\t}");
- }
-
- // Output last DWARF .file directives, if any.
- TS->outputDwarfFileDirectives();
+ auto *TS =
+ static_cast<NVPTXTargetStreamer *>(OutStreamer->getTargetStreamer());
+ // Close the last emitted section
+ if (HasDebugInfo) {
+ TS->closeLastSection();
+ // Emit empty .debug_loc section for better support of the empty files.
+ OutStreamer->emitRawText("\t.section\t.debug_loc\t{\t}");
}
+ // Output last DWARF .file directives, if any.
+ TS->outputDwarfFileDirectives();
+
return ret;
//bool Result = AsmPrinter::doFinalization(M);
Index: llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h
===================================================================
--- llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h
+++ llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.h
@@ -50,6 +50,12 @@
void emitRawBytes(StringRef Data) override;
};
+class NVPTXAsmTargetStreamer : public NVPTXTargetStreamer {
+public:
+ NVPTXAsmTargetStreamer(MCStreamer &S);
+ ~NVPTXAsmTargetStreamer() override;
+};
+
} // end namespace llvm
#endif
Index: llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp
===================================================================
--- llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp
+++ llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXTargetStreamer.cpp
@@ -21,9 +21,12 @@
// NVPTXTargetStreamer Implemenation
//
NVPTXTargetStreamer::NVPTXTargetStreamer(MCStreamer &S) : MCTargetStreamer(S) {}
-
NVPTXTargetStreamer::~NVPTXTargetStreamer() = default;
+NVPTXAsmTargetStreamer::NVPTXAsmTargetStreamer(MCStreamer &S)
+ : NVPTXTargetStreamer(S) {}
+NVPTXAsmTargetStreamer::~NVPTXAsmTargetStreamer() = default;
+
void NVPTXTargetStreamer::outputDwarfFileDirectives() {
for (const std::string &S : DwarfFiles)
getStreamer().emitRawText(S);
Index: llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
===================================================================
--- llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
+++ llvm/lib/Target/NVPTX/MCTargetDesc/NVPTXMCTargetDesc.cpp
@@ -63,6 +63,10 @@
static MCTargetStreamer *createTargetAsmStreamer(MCStreamer &S,
formatted_raw_ostream &,
MCInstPrinter *, bool) {
+ return new NVPTXAsmTargetStreamer(S);
+}
+
+static MCTargetStreamer *createNullTargetStreamer(MCStreamer &S) {
return new NVPTXTargetStreamer(S);
}
@@ -86,5 +90,8 @@
// Register the MCTargetStreamer.
TargetRegistry::RegisterAsmTargetStreamer(*T, createTargetAsmStreamer);
+
+ // Register the MCTargetStreamer.
+ TargetRegistry::RegisterNullTargetStreamer(*T, createNullTargetStreamer);
}
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D137123.472158.patch
Type: text/x-patch
Size: 3371 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221031/0aca40e4/attachment.bin>
More information about the llvm-commits
mailing list