[NVPTX] noop when kernel pointers are already global
[oota-llvm.git] / lib / Target / NVPTX / NVPTXLowerKernelArgs.cpp
index 24dcb122b94eb3678bc8b37d6a19246efe7bc51a..b533f316d8a989594b18f9c93f3d4e76dd133584 100644 (file)
@@ -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(),