|
LLVM 23.0.0git
|
#include "NVPTX.h"#include "NVPTXTargetMachine.h"#include "NVPTXUtilities.h"#include "NVVMProperties.h"#include "llvm/ADT/STLExtras.h"#include "llvm/ADT/SmallVectorExtras.h"#include "llvm/Analysis/PtrUseVisitor.h"#include "llvm/CodeGen/TargetPassConfig.h"#include "llvm/IR/Attributes.h"#include "llvm/IR/DebugInfo.h"#include "llvm/IR/Function.h"#include "llvm/IR/IRBuilder.h"#include "llvm/IR/Instructions.h"#include "llvm/IR/IntrinsicInst.h"#include "llvm/IR/Type.h"#include "llvm/InitializePasses.h"#include "llvm/Pass.h"#include "llvm/Support/Debug.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/NVPTXAddrSpace.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "nvptx-lower-args" |
Functions | |
| INITIALIZE_PASS_BEGIN (NVPTXLowerArgsLegacyPass, "nvptx-lower-args", "Lower arguments (NVPTX)", false, false) INITIALIZE_PASS_END(NVPTXLowerArgsLegacyPass | |
| nvptx lower Lower | arguments (NVPTX)" |
| nvptx lower Lower static false void | convertToParamAS (ArrayRef< Use * > OldUses, Value *Param) |
| Recursively convert the users of a param to the param address space. | |
| static bool | kernelNeedsByValLowering (const Function &F) |
| static void | lowerKernelByValParam (Argument &OldArg, Argument &NewParamArg, Function &F, const bool HasCvtaParam) |
| static void | rewriteKernelByValSignature (Function &F, const bool HasCvtaParam) |
| static bool | processFunction (Function &F, NVPTXTargetMachine &TM) |
| static bool | processModule (Module &M, NVPTXTargetMachine &TM) |
| static bool | copyFunctionByValArgs (Function &F) |
Variables | |
| nvptx lower | args |
| nvptx lower Lower | false |
| #define DEBUG_TYPE "nvptx-lower-args" |
Definition at line 65 of file NVPTXLowerArgs.cpp.
| nvptx lower Lower arguments | ( | NVPTX | ) |
|
static |
Recursively convert the users of a param to the param address space.
Definition at line 95 of file NVPTXLowerArgs.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_ENTRY_PARAM, assert(), B(), llvm::cast(), convertToParamAS(), llvm::CastInst::Create(), llvm::GetElementPtrInst::Create(), llvm::dyn_cast(), GEP, llvm::PointerType::get(), I, llvm_unreachable, llvm::map_to_vector(), MI, llvm::reverse(), and llvm::Value::uses().
Referenced by convertToParamAS(), and lowerKernelByValParam().
Definition at line 433 of file NVPTXLowerArgs.cpp.
References Changed, llvm::dbgs(), F, llvm::Argument::hasByValAttr(), llvm::isKernelFunction(), llvm::isParamGridConstant(), and LLVM_DEBUG.
Referenced by llvm::NVPTXCopyByValArgsPass::run().
| INITIALIZE_PASS_BEGIN | ( | NVPTXLowerArgsLegacyPass | , |
| "nvptx-lower-args" | , | ||
| "Lower arguments (NVPTX)" | , | ||
| false | , | ||
| false | ) |
References INITIALIZE_PASS_DEPENDENCY.
Definition at line 283 of file NVPTXLowerArgs.cpp.
References A(), llvm::any_of(), and F.
Referenced by processFunction().
|
static |
Definition at line 293 of file NVPTXLowerArgs.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_GENERIC, assert(), convertToParamAS(), llvm::IRBuilderBase::CreateAddrSpaceCast(), llvm::dbgs(), DL, llvm::SmallPtrSetImplBase::empty(), F, llvm::findDbgUsers(), llvm::Value::getName(), llvm::IRBuilderBase::getPtrTy(), llvm::isKernelFunction(), llvm::isParamGridConstant(), llvm::Value::isUsedByMetadata(), LLVM_DEBUG, llvm::make_pointer_range(), llvm::Value::replaceAllUsesWith(), llvm::Value::use_empty(), and llvm::Value::uses().
Referenced by rewriteKernelByValSignature().
|
static |
Definition at line 402 of file NVPTXLowerArgs.cpp.
References llvm::dbgs(), F, llvm::NVPTXTargetMachine::getSubtargetImpl(), llvm::isKernelFunction(), kernelNeedsByValLowering(), LLVM_DEBUG, and rewriteKernelByValSignature().
Referenced by processModule().
|
static |
Definition at line 417 of file NVPTXLowerArgs.cpp.
References Changed, F, llvm::make_early_inc_range(), and processFunction().
Referenced by llvm::NVPTXLowerArgsPass::run().
Definition at line 349 of file NVPTXLowerArgs.cpp.
References llvm::NVPTXAS::ADDRESS_SPACE_ENTRY_PARAM, llvm::Function::args(), llvm::Function::begin(), llvm::Function::copyAttributesFrom(), llvm::GlobalObject::copyMetadata(), llvm::Function::Create(), F, llvm::FunctionType::get(), llvm::PointerType::get(), llvm::Argument::getArgNo(), llvm::Argument::hasByValAttr(), lowerKernelByValParam(), llvm::GlobalObject::setComdat(), llvm::Function::splice(), llvm::Value::takeName(), and llvm::zip_equal().
Referenced by processFunction().
| nvptx lower args |
Definition at line 91 of file NVPTXLowerArgs.cpp.
Referenced by llvm::LegalityPredicates::all(), llvm::detail::all_of_zip_predicate_first(), llvm::LegalityPredicates::any(), llvm::DisplayGraph(), ExecGraphViewer(), formatInternal(), getOrCreateCachedOptional(), llvm::hash_combine(), lle_X_scanf(), lle_X_sscanf(), lto_codegen_set_assembler_args(), AbstractManglingParser< Derived, Alloc >::make(), llvm::ARMTargetLowering::makeDMB(), shuffles::mask(), llvm::MCObjectStreamer::newSpecialFragment(), llvm::FileCheckPatternContext::Pattern, llvm::thread::thread(), llvm::thread::thread(), writeWholeProgramDevirtResolutionByArg(), llvm::zip(), llvm::zip_equal(), llvm::zip_first(), llvm::zip_longest(), and llvm::detail::zippy< ItType, Args >::zippy().
| nvptx lower Lower false |
Definition at line 92 of file NVPTXLowerArgs.cpp.