diff options
author | Jingyue Wu <jingyue@google.com> | 2015-06-26 22:35:43 +0000 |
---|---|---|
committer | Jingyue Wu <jingyue@google.com> | 2015-06-26 22:35:43 +0000 |
commit | 3203818bf7df5ff7b0b01b036cfeeb090ab9e596 (patch) | |
tree | e57f64b021ecb8d721262c2cde2ed3547b0baf42 /llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp | |
parent | 6529ed40bc6657558e9c4ae606d6d57f6e37f836 (diff) | |
download | bcm5719-llvm-3203818bf7df5ff7b0b01b036cfeeb090ab9e596.tar.gz bcm5719-llvm-3203818bf7df5ff7b0b01b036cfeeb090ab9e596.zip |
[NVPTX] noop when kernel pointers are already global
Summary:
Some front ends make kernel pointers global already. In that case,
handlePointerParams does nothing.
Test Plan: more tests in lower-kernel-ptr-arg.ll
Reviewers: grosser
Subscribers: jholewinski, llvm-commits
Differential Revision: http://reviews.llvm.org/D10779
llvm-svn: 240849
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp')
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp b/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp index 24dcb122b94..b533f316d8a 100644 --- a/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp @@ -132,6 +132,10 @@ void NVPTXLowerKernelArgs::handlePointerParam(Argument *Arg) { assert(!Arg->hasByValAttr() && "byval params should be handled by handleByValParam"); + // Do nothing if the argument already points to the global address space. + if (Arg->getType()->getPointerAddressSpace() == ADDRESS_SPACE_GLOBAL) + return; + Instruction *FirstInst = Arg->getParent()->getEntryBlock().begin(); Instruction *ArgInGlobal = new AddrSpaceCastInst( Arg, PointerType::get(Arg->getType()->getPointerElementType(), |