LLVM: lib/Target/NVPTX/NVPTXLowerArgs.cpp File Reference (original) (raw)

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 (Use *OldUse, Value *Param, bool HasCvtaParam, bool IsGridConstant)
static void adjustByValArgAlignment (Argument *Arg, Value *ArgInParamAS, const NVPTXTargetLowering *TLI)
static CallInst * createNVVMInternalAddrspaceWrap (IRBuilder<> &IRB, Argument &Arg)
static void handleByValParam (const NVPTXTargetMachine &TM, Argument *Arg)
static void markPointerAsAS (Value *Ptr, const unsigned AS)
static void markPointerAsGlobal (Value *Ptr)
static bool runOnKernelFunction (const NVPTXTargetMachine &TM, Function &F)
static bool runOnDeviceFunction (const NVPTXTargetMachine &TM, Function &F)
static bool processFunction (Function &F, NVPTXTargetMachine &TM)
static bool copyFunctionByValArgs (Function &F)
Variables
nvptx lower args
nvptx lower Lower false

DEBUG_TYPE

#define DEBUG_TYPE "nvptx-lower-args"

adjustByValArgAlignment()

Definition at line 347 of file NVPTXLowerArgs.cpp.

References llvm::Argument::addAttr(), llvm::NVPTXAS::ADDRESS_SPACE_PARAM, assert(), llvm::cast(), llvm::dbgs(), DL, llvm::dyn_cast(), llvm::NVPTXTargetLowering::getFunctionParamOptimizedAlign(), llvm::APInt::getLimitedValue(), llvm::Argument::getParamAlign(), llvm::Argument::getParamByValType(), llvm::Argument::getParent(), llvm::Attribute::getWithAlignment(), llvm::APInt::getZero(), I, llvm::isa(), LLVM_DEBUG, llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Argument::removeAttr(), llvm::Value::users(), llvm::Align::value(), and llvm::MaybeAlign::valueOrOne().

Referenced by handleByValParam(), and runOnDeviceFunction().

arguments()

nvptx lower Lower arguments ( NVPTX )

convertToParamAS()

nvptx lower Lower static false void convertToParamAS ( Use * OldUse, Value * Param, bool HasCvtaParam, bool IsGridConstant ) static

Definition at line 210 of file NVPTXLowerArgs.cpp.

References llvm::NVPTXAS::ADDRESS_SPACE_GENERIC, llvm::NVPTXAS::ADDRESS_SPACE_PARAM, assert(), B(), llvm::cast(), convertToParamAS(), llvm::CastInst::Create(), llvm::GetElementPtrInst::Create(), llvm::IRBuilderBase::CreateAddrSpaceCast(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), llvm::enumerate(), GEP, llvm::PointerType::get(), llvm::Value::getName(), llvm::IRBuilderBase::getPtrTy(), I, llvm_unreachable, MI, PHI, llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::reverse().

Referenced by convertToParamAS(), and handleByValParam().

copyFunctionByValArgs()

createNVVMInternalAddrspaceWrap()

handleByValParam()

Definition at line 545 of file NVPTXLowerArgs.cpp.

References llvm::NVPTXAS::ADDRESS_SPACE_GENERIC, adjustByValArgAlignment(), assert(), llvm::cast(), convertToParamAS(), llvm::IRBuilderBase::CreateAddrSpaceCast(), createNVVMInternalAddrspaceWrap(), llvm::dbgs(), DL, llvm::SmallPtrSetImplBase::empty(), llvm::Value::getName(), llvm::Argument::getParamByValType(), llvm::Argument::getParent(), llvm::IRBuilderBase::getPtrTy(), llvm::NVPTXTargetMachine::getSubtargetImpl(), llvm::NVPTXSubtarget::getTargetLowering(), llvm::NVPTXSubtarget::hasCvtaParam(), llvm::isKernelFunction(), llvm::isParamGridConstant(), LLVM_DEBUG, llvm::make_pointer_range(), llvm::Value::replaceAllUsesWith(), and llvm::Value::uses().

Referenced by runOnKernelFunction().

INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( NVPTXLowerArgsLegacyPass ,
"nvptx-lower-args" ,
"Lower arguments (NVPTX)" ,
false ,
false )

markPointerAsAS()

Definition at line 610 of file NVPTXLowerArgs.cpp.

References llvm::NVPTXAS::ADDRESS_SPACE_GENERIC, assert(), llvm::BasicBlock::begin(), llvm::cast(), llvm::dyn_cast(), llvm::PointerType::get(), llvm::Value::getContext(), llvm::Function::getEntryBlock(), llvm::Value::getName(), llvm::Argument::getParent(), llvm::Type::getPointerAddressSpace(), llvm::Value::getType(), llvm::Value::replaceAllUsesWith(), and llvm::User::setOperand().

Referenced by markPointerAsGlobal().

markPointerAsGlobal()

void markPointerAsGlobal ( Value * Ptr) static

processFunction()

runOnDeviceFunction()

runOnKernelFunction()

Definition at line 642 of file NVPTXLowerArgs.cpp.

References llvm::all_of(), B(), llvm::NVPTX::CUDA, llvm::dbgs(), llvm::dyn_cast(), F, llvm::NVPTXTargetMachine::getDrvInterface(), llvm::Value::getType(), llvm::getUnderlyingObject(), handleByValParam(), llvm::Argument::hasByValAttr(), I, llvm::Type::isIntegerTy(), llvm::Type::isPointerTy(), LLVM_DEBUG, and markPointerAsGlobal().

Referenced by processFunction().

args

Definition at line 185 of file NVPTXLowerArgs.cpp.

Referenced by llvm::LegalityPredicates::all(), llvm::detail::all_of_zip_predicate_first(), llvm::LegalityPredicates::any(), llvm::hashing::detail::hash_combine_recursive_helper::combine(), 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().

false