[llvm] r185336 - [NVPTX] Add support for module-scope inline asm

Justin Holewinski jholewinski at nvidia.com
Mon Jul 1 06:00:14 PDT 2013


Author: jholewinski
Date: Mon Jul  1 08:00:14 2013
New Revision: 185336

URL: http://llvm.org/viewvc/llvm-project?rev=185336&view=rev
Log:
[NVPTX] Add support for module-scope inline asm

Since we were explicitly not calling AsmPrinter::doInitialization,
any module-scope inline asm was not being printed.

Added:
    llvm/trunk/test/CodeGen/NVPTX/module-inline-asm.ll
Modified:
    llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp

Modified: llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp?rev=185336&r1=185335&r2=185336&view=diff
==============================================================================
--- llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/NVPTX/NVPTXAsmPrinter.cpp Mon Jul  1 08:00:14 2013
@@ -1043,6 +1043,16 @@ bool NVPTXAsmPrinter::doInitialization(M
   // Already commented out
   //bool Result = AsmPrinter::doInitialization(M);
 
+  // Emit module-level inline asm if it exists.
+  if (!M.getModuleInlineAsm().empty()) {
+    OutStreamer.AddComment("Start of file scope inline assembly");
+    OutStreamer.AddBlankLine();
+    OutStreamer.EmitRawText(StringRef(M.getModuleInlineAsm()));
+    OutStreamer.AddBlankLine();
+    OutStreamer.AddComment("End of file scope inline assembly");
+    OutStreamer.AddBlankLine();
+  }
+
   if (nvptxSubtarget.getDrvInterface() == NVPTX::CUDA)
     recordAndEmitFilenames(M);
 

Added: llvm/trunk/test/CodeGen/NVPTX/module-inline-asm.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/NVPTX/module-inline-asm.ll?rev=185336&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/NVPTX/module-inline-asm.ll (added)
+++ llvm/trunk/test/CodeGen/NVPTX/module-inline-asm.ll Mon Jul  1 08:00:14 2013
@@ -0,0 +1,10 @@
+; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v16:16:16-v32:32:32-v64:64:64-v128:128:128-n16:32:64"
+
+; CHECK: .global .b32 val;
+module asm ".global .b32 val;"
+
+define void @foo() {
+  ret void
+}





More information about the llvm-commits mailing list