[llvm] [NVPTX][AsmPrinter] Demonstrate usage of NVPTXTargetAsmStreamer in NVPTXAsmPrinter. (PR #188539)

Alex MacLean via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 1 08:50:55 PDT 2026


================
@@ -758,20 +755,20 @@ void NVPTXAsmPrinter::emitGlobalAlias(const Module &M, const GlobalAlias &GA) {
   OutStreamer->emitRawText(OS.str());
 }
 
-void NVPTXAsmPrinter::emitHeader(Module &M, raw_ostream &O,
-                                 const NVPTXSubtarget &STI) {
-  const unsigned PTXVersion = STI.getPTXVersion();
+NVPTXTargetStreamer *NVPTXAsmPrinter::getTargetStreamer() const {
+  return static_cast<NVPTXTargetStreamer *>(OutStreamer->getTargetStreamer());
+}
+
+void NVPTXAsmPrinter::emitHeader(Module &M, const NVPTXSubtarget &STI) {
+  auto *TS = getTargetStreamer();
 
-  O << "//\n"
-       "// Generated by LLVM NVPTX Back-End\n"
-       "//\n"
-       "\n"
-    << ".version " << (PTXVersion / 10) << "." << (PTXVersion % 10) << "\n"
-    << ".target " << STI.getTargetName();
+  TS->emitBanner();
+
+  const unsigned PTXVersion = STI.getPTXVersion();
+  TS->emitVersionDirective(PTXVersion);
 
   const NVPTXTargetMachine &NTM = static_cast<const NVPTXTargetMachine &>(TM);
-  if (NTM.getDrvInterface() == NVPTX::NVCL)
-    O << ", texmode_independent";
+  bool IsNVOpenCL = NTM.getDrvInterface() == NVPTX::NVCL;
 
   bool HasFullDebugInfo = false;
----------------
AlexMaclean wrote:

Looks like this static helper can be simplified with an early return for true.

https://github.com/llvm/llvm-project/pull/188539


More information about the llvm-commits mailing list