LLVM 22.0.0git
NVPTX.h File Reference
#include "llvm/CodeGen/ISDOpcodes.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Pass.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Target/TargetMachine.h"
#include "NVPTXGenRegisterInfo.inc"
#include "NVPTXGenInstrInfo.inc"

Go to the source code of this file.

Classes

struct  llvm::NVVMIntrRangePass
struct  llvm::NVVMReflectPass
struct  llvm::GenericToNVVMPass
struct  llvm::NVPTXCopyByValArgsPass
struct  llvm::NVPTXLowerArgsPass
struct  llvm::NVPTXTagInvariantLoadsPass

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
namespace  llvm::NVPTXCC
namespace  llvm::NVPTX
namespace  llvm::NVPTX::PTXLdStInstCode
namespace  llvm::NVPTX::PTXCvtMode
 PTXCvtMode - Conversion code enumeration.
namespace  llvm::NVPTX::PTXCmpMode
 PTXCmpMode - Comparison mode enumeration.
namespace  llvm::NVPTX::PTXPrmtMode

Macros

#define GET_REGINFO_ENUM
#define GET_INSTRINFO_ENUM
#define GET_INSTRINFO_MC_HELPER_DECLS

Typedefs

using llvm::NVPTX::OrderingUnderlyingType = unsigned int
using llvm::NVPTX::ScopeUnderlyingType = unsigned int
using llvm::NVPTX::AddressSpaceUnderlyingType = unsigned int

Enumerations

enum  llvm::NVPTXCC::CondCodes {
  llvm::NVPTXCC::EQ , llvm::NVPTXCC::NE , llvm::NVPTXCC::LT , llvm::NVPTXCC::LE ,
  llvm::NVPTXCC::GT , llvm::NVPTXCC::GE
}
enum  llvm::NVPTX::DrvInterface { llvm::NVPTX::NVCL , llvm::NVPTX::CUDA }
enum  llvm::NVPTX::VecInstType {
  llvm::NVPTX::VecInstTypeShift = 0 , llvm::NVPTX::VecInstTypeMask = 0xF , llvm::NVPTX::VecNOP = 0 , llvm::NVPTX::VecLoad = 1 ,
  llvm::NVPTX::VecStore = 2 , llvm::NVPTX::VecBuild = 3 , llvm::NVPTX::VecShuffle = 4 , llvm::NVPTX::VecExtract = 5 ,
  llvm::NVPTX::VecInsert = 6 , llvm::NVPTX::VecDest = 7 , llvm::NVPTX::VecOther = 15
}
enum  llvm::NVPTX::SimpleMove { llvm::NVPTX::SimpleMoveMask = 0x10 , llvm::NVPTX::SimpleMoveShift = 4 }
enum  llvm::NVPTX::LoadStore { llvm::NVPTX::isLoadMask = 0x20 , llvm::NVPTX::isLoadShift = 5 , llvm::NVPTX::isStoreMask = 0x40 , llvm::NVPTX::isStoreShift = 6 }
enum  llvm::NVPTX::Ordering : OrderingUnderlyingType {
  llvm::NVPTX::NotAtomic , llvm::NVPTX::Relaxed = (OrderingUnderlyingType)AtomicOrdering::Monotonic , llvm::NVPTX::Acquire = (OrderingUnderlyingType)AtomicOrdering::Acquire , llvm::NVPTX::Release = (OrderingUnderlyingType)AtomicOrdering::Release ,
  llvm::NVPTX::AcquireRelease = (OrderingUnderlyingType)AtomicOrdering::AcquireRelease , llvm::NVPTX::SequentiallyConsistent , llvm::NVPTX::Volatile = SequentiallyConsistent + 1 , llvm::NVPTX::RelaxedMMIO = Volatile + 1
}
enum  llvm::NVPTX::Scope : ScopeUnderlyingType {
  llvm::NVPTX::Thread = 0 , llvm::NVPTX::Block = 1 , llvm::NVPTX::Cluster = 2 , llvm::NVPTX::Device = 3 ,
  llvm::NVPTX::System = 4 , llvm::NVPTX::DefaultDevice = 5 , llvm::NVPTX::LASTSCOPE = DefaultDevice
}
enum  llvm::NVPTX::AddressSpace : AddressSpaceUnderlyingType {
  llvm::NVPTX::Generic = 0 , llvm::NVPTX::Global = 1 , llvm::NVPTX::Shared = 3 , llvm::NVPTX::Const = 4 ,
  llvm::NVPTX::Local = 5 , llvm::NVPTX::SharedCluster = 7 , llvm::NVPTX::Param = 101
}
enum  llvm::NVPTX::PTXLdStInstCode::FromType { llvm::NVPTX::PTXLdStInstCode::Unsigned = 0 , llvm::NVPTX::PTXLdStInstCode::Signed , llvm::NVPTX::PTXLdStInstCode::Float , llvm::NVPTX::PTXLdStInstCode::Untyped }
enum  llvm::NVPTX::PTXCvtMode::CvtMode {
  llvm::NVPTX::PTXCvtMode::NONE = 0 , llvm::NVPTX::PTXCvtMode::RNI , llvm::NVPTX::PTXCvtMode::RZI , llvm::NVPTX::PTXCvtMode::RMI ,
  llvm::NVPTX::PTXCvtMode::RPI , llvm::NVPTX::PTXCvtMode::RN , llvm::NVPTX::PTXCvtMode::RZ , llvm::NVPTX::PTXCvtMode::RM ,
  llvm::NVPTX::PTXCvtMode::RP , llvm::NVPTX::PTXCvtMode::RNA , llvm::NVPTX::PTXCvtMode::BASE_MASK = 0x0F , llvm::NVPTX::PTXCvtMode::FTZ_FLAG = 0x10 ,
  llvm::NVPTX::PTXCvtMode::SAT_FLAG = 0x20 , llvm::NVPTX::PTXCvtMode::RELU_FLAG = 0x40
}
enum  llvm::NVPTX::PTXCmpMode::CmpMode {
  llvm::NVPTX::PTXCmpMode::EQ = 0 , llvm::NVPTX::PTXCmpMode::NE , llvm::NVPTX::PTXCmpMode::LT , llvm::NVPTX::PTXCmpMode::LE ,
  llvm::NVPTX::PTXCmpMode::GT , llvm::NVPTX::PTXCmpMode::GE , llvm::NVPTX::PTXCmpMode::EQU , llvm::NVPTX::PTXCmpMode::NEU ,
  llvm::NVPTX::PTXCmpMode::LTU , llvm::NVPTX::PTXCmpMode::LEU , llvm::NVPTX::PTXCmpMode::GTU , llvm::NVPTX::PTXCmpMode::GEU ,
  llvm::NVPTX::PTXCmpMode::NUM , llvm::NVPTX::PTXCmpMode::NotANumber
}
enum  llvm::NVPTX::PTXPrmtMode::PrmtMode {
  llvm::NVPTX::PTXPrmtMode::NONE , llvm::NVPTX::PTXPrmtMode::F4E , llvm::NVPTX::PTXPrmtMode::B4E , llvm::NVPTX::PTXPrmtMode::RC8 ,
  llvm::NVPTX::PTXPrmtMode::ECL , llvm::NVPTX::PTXPrmtMode::ECR , llvm::NVPTX::PTXPrmtMode::RC16
}
enum class  llvm::NVPTX::DivPrecisionLevel : unsigned { llvm::NVPTX::Approx = 0 , llvm::NVPTX::Full = 1 , llvm::NVPTX::IEEE754 = 2 , llvm::NVPTX::IEEE754_NoFTZ = 3 }

Functions

FunctionPassllvm::createNVPTXISelDag (NVPTXTargetMachine &TM, llvm::CodeGenOptLevel OptLevel)
 createNVPTXISelDag - This pass converts a legalized DAG into a NVPTX-specific DAG, ready for instruction scheduling.
ModulePassllvm::createNVPTXAssignValidGlobalNamesPass ()
ModulePassllvm::createGenericToNVVMLegacyPass ()
ModulePassllvm::createNVPTXCtorDtorLoweringLegacyPass ()
FunctionPassllvm::createNVVMIntrRangePass ()
ModulePassllvm::createNVVMReflectPass (unsigned int SmVersion)
MachineFunctionPassllvm::createNVPTXPrologEpilogPass ()
MachineFunctionPassllvm::createNVPTXReplaceImageHandlesPass ()
FunctionPassllvm::createNVPTXImageOptimizerPass ()
FunctionPassllvm::createNVPTXLowerArgsPass ()
FunctionPassllvm::createNVPTXLowerAllocaPass ()
FunctionPassllvm::createNVPTXLowerUnreachablePass (bool TrapUnreachable, bool NoTrapAfterNoreturn)
FunctionPassllvm::createNVPTXTagInvariantLoadsPass ()
MachineFunctionPassllvm::createNVPTXPeephole ()
MachineFunctionPassllvm::createNVPTXProxyRegErasurePass ()
MachineFunctionPassllvm::createNVPTXForwardParamsPass ()
void llvm::initializeNVVMReflectLegacyPassPass (PassRegistry &)
void llvm::initializeGenericToNVVMLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXAllocaHoistingPass (PassRegistry &)
void llvm::initializeNVPTXAsmPrinterPass (PassRegistry &)
void llvm::initializeNVPTXAssignValidGlobalNamesPass (PassRegistry &)
void llvm::initializeNVPTXAtomicLowerPass (PassRegistry &)
void llvm::initializeNVPTXCtorDtorLoweringLegacyPass (PassRegistry &)
void llvm::initializeNVPTXLowerAggrCopiesPass (PassRegistry &)
void llvm::initializeNVPTXLowerAllocaPass (PassRegistry &)
void llvm::initializeNVPTXLowerUnreachablePass (PassRegistry &)
void llvm::initializeNVPTXLowerArgsLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXProxyRegErasurePass (PassRegistry &)
void llvm::initializeNVPTXForwardParamsPassPass (PassRegistry &)
void llvm::initializeNVVMIntrRangePass (PassRegistry &)
void llvm::initializeNVVMReflectPass (PassRegistry &)
void llvm::initializeNVPTXAAWrapperPassPass (PassRegistry &)
void llvm::initializeNVPTXExternalAAWrapperPass (PassRegistry &)
void llvm::initializeNVPTXPeepholePass (PassRegistry &)
void llvm::initializeNVPTXTagInvariantLoadLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXPrologEpilogPassPass (PassRegistry &)
void llvm::initializeNVPTXDAGToDAGISelLegacyPass (PassRegistry &)

Macro Definition Documentation

◆ GET_INSTRINFO_ENUM

#define GET_INSTRINFO_ENUM

Definition at line 268 of file NVPTX.h.

◆ GET_INSTRINFO_MC_HELPER_DECLS

#define GET_INSTRINFO_MC_HELPER_DECLS

Definition at line 269 of file NVPTX.h.

◆ GET_REGINFO_ENUM

#define GET_REGINFO_ENUM

Definition at line 264 of file NVPTX.h.