diff options
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp')
-rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp b/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp index a4769b319a0..d162a283f74 100644 --- a/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXLowerKernelArgs.cpp @@ -101,11 +101,6 @@ namespace { class NVPTXLowerKernelArgs : public FunctionPass { bool runOnFunction(Function &F) override; - // Kernels and regular device functions treat byval arguments - // differently. - bool runOnKernelFunction(Function &F); - bool runOnDeviceFunction(Function &F); - // handle byval parameters void handleByValParam(Argument *Arg); // Knowing Ptr must point to the global address space, this function @@ -197,7 +192,11 @@ void NVPTXLowerKernelArgs::markPointerAsGlobal(Value *Ptr) { // ============================================================================= // Main function for this pass. // ============================================================================= -bool NVPTXLowerKernelArgs::runOnKernelFunction(Function &F) { +bool NVPTXLowerKernelArgs::runOnFunction(Function &F) { + // Skip non-kernels. See the comments at the top of this file. + if (!isKernelFunction(F)) + return false; + if (TM && TM->getDrvInterface() == NVPTX::CUDA) { // Mark pointers in byval structs as global. for (auto &B : F) { @@ -229,19 +228,6 @@ bool NVPTXLowerKernelArgs::runOnKernelFunction(Function &F) { return true; } -// See comments in NVPTXDAGToDAGISel::SelectAddrSpaceCast() for the -// details on why we need to spill byval arguments into local memory. -bool NVPTXLowerKernelArgs::runOnDeviceFunction(Function &F) { - for (Argument &Arg : F.args()) - if (Arg.getType()->isPointerTy() && Arg.hasByValAttr()) - handleByValParam(&Arg); - return true; -} - -bool NVPTXLowerKernelArgs::runOnFunction(Function &F) { - return isKernelFunction(F) ? runOnKernelFunction(F) : runOnDeviceFunction(F); -} - FunctionPass * llvm::createNVPTXLowerKernelArgsPass(const NVPTXTargetMachine *TM) { return new NVPTXLowerKernelArgs(TM); |