[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. llvm-svn: 185336
This commit is contained in:
parent
3694f11fb5
commit
d2bbdf05e0
|
@ -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);
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
Loading…
Reference in New Issue