mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-28 19:31:58 +00:00
[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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185336 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1fd09172bb
commit
728af3d574
@ -1043,6 +1043,16 @@ bool NVPTXAsmPrinter::doInitialization(Module &M) {
|
|||||||
// Already commented out
|
// Already commented out
|
||||||
//bool Result = AsmPrinter::doInitialization(M);
|
//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)
|
if (nvptxSubtarget.getDrvInterface() == NVPTX::CUDA)
|
||||||
recordAndEmitFilenames(M);
|
recordAndEmitFilenames(M);
|
||||||
|
|
||||||
|
10
test/CodeGen/NVPTX/module-inline-asm.ll
Normal file
10
test/CodeGen/NVPTX/module-inline-asm.ll
Normal file
@ -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
Block a user