Skip to content

Commit

Permalink
[NVPTX] Add support for module-scope inline asm
Browse files Browse the repository at this point in the history
Since we were explicitly not calling AsmPrinter::doInitialization,
any module-scope inline asm was not being printed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185336 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
jholewinski committed Jul 1, 2013
1 parent 1fd0917 commit 728af3d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 0 deletions.
10 changes: 10 additions & 0 deletions lib/Target/NVPTX/NVPTXAsmPrinter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1043,6 +1043,16 @@ bool NVPTXAsmPrinter::doInitialization(Module &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);

Expand Down
10 changes: 10 additions & 0 deletions test/CodeGen/NVPTX/module-inline-asm.ll
Original file line number Diff line number Diff line change
@@ -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
}

0 comments on commit 728af3d

Please sign in to comment.