diff options
author | Justin Holewinski <jholewinski@nvidia.com> | 2014-06-27 18:35:58 +0000 |
---|---|---|
committer | Justin Holewinski <jholewinski@nvidia.com> | 2014-06-27 18:35:58 +0000 |
commit | 773ca40f5dae7a47f3df463520a232692f51f0b0 (patch) | |
tree | 722cbf6ab3475a7bc29159c40fdeca10595f5de3 | |
parent | d73767a80a5e45a79ecdba3560beac775087a1e4 (diff) | |
download | bcm5719-llvm-773ca40f5dae7a47f3df463520a232692f51f0b0.tar.gz bcm5719-llvm-773ca40f5dae7a47f3df463520a232692f51f0b0.zip |
[NVPTX] Add support for .managed variables for UVM
llvm-svn: 211942
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 5 | ||||
-rw-r--r-- | llvm/test/CodeGen/NVPTX/managed.ll | 11 |
2 files changed, 16 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp index a174949b994..6774ea863e3 100644 --- a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp @@ -1480,6 +1480,11 @@ void NVPTXAsmPrinter::printModuleLevelGV(const GlobalVariable *GVar, O << "."; emitPTXAddressSpace(PTy->getAddressSpace(), O); + + if (isManaged(*GVar)) { + O << " .attribute(.managed)"; + } + if (GVar->getAlignment() == 0) O << " .align " << (int) TD->getPrefTypeAlignment(ETy); else diff --git a/llvm/test/CodeGen/NVPTX/managed.ll b/llvm/test/CodeGen/NVPTX/managed.ll new file mode 100644 index 00000000000..4d7e7817f77 --- /dev/null +++ b/llvm/test/CodeGen/NVPTX/managed.ll @@ -0,0 +1,11 @@ +; RUN: llc < %s -march=nvptx -mcpu=sm_20 | FileCheck %s + + +; CHECK: .visible .global .align 4 .u32 device_g; +@device_g = addrspace(1) global i32 zeroinitializer +; CHECK: .visible .global .attribute(.managed) .align 4 .u32 managed_g; +@managed_g = addrspace(1) global i32 zeroinitializer + + +!nvvm.annotations = !{!0} +!0 = metadata !{i32 addrspace(1)* @managed_g, metadata !"managed", i32 1} |