LLVM 24.0.0git
NVPTX.h File Reference
#include "llvm/ADT/Bitfields.h"
#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"
#include "llvm/CodeGen/SelectionDAGISel.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Pass.h"
#include "llvm/Support/AtomicOrdering.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/NVPTXAddrSpace.h"
#include "llvm/Target/TargetMachine.h"
#include "NVPTXGenRegisterInfo.inc"
#include "NVPTXGenInstrInfo.inc"
#include "NVPTXGenSubtargetInfo.inc"

Go to the source code of this file.

Classes

class  llvm::GenericToNVVMPass
class  llvm::NVPTXAssignValidGlobalNamesPass
class  llvm::NVPTXLowerArgsPass
class  llvm::NVPTXPromoteParamAlignPass
class  llvm::NVVMReflectPass
class  llvm::NVPTXAllocaHoistingPass
class  llvm::NVPTXAtomicLowerPass
class  llvm::NVPTXCopyByValArgsPass
class  llvm::NVPTXImageOptimizerPass
class  llvm::NVPTXIRPeepholePass
class  llvm::NVPTXLowerAggrCopiesPass
class  llvm::NVPTXLowerAllocaPass
class  llvm::NVPTXLowerUnreachablePass
class  llvm::NVPTXMarkKernelPtrsGlobalPass
class  llvm::NVPTXTagInvariantLoadsPass
class  llvm::NVVMIntrRangePass
class  llvm::NVPTXAddressFolderPass
class  llvm::NVPTXForwardParamsPass
class  llvm::NVPTXISelDAGToDAGPass
class  llvm::NVPTXPeepholePass
class  llvm::NVPTXPrologEpilogPass
class  llvm::NVPTXProxyRegErasurePass
class  llvm::NVPTXReplaceImageHandlesPass

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
#define GET_INSTRINFO_OPERAND_ENUM
#define GET_SUBTARGETINFO_ENUM

Typedefs

using llvm::NVPTX::OrderingUnderlyingType = unsigned int
using llvm::NVPTX::ScopeUnderlyingType = unsigned int
using llvm::NVPTX::AddressSpaceUnderlyingType = unsigned int
using llvm::NVPTX::L1EvictionBits
using llvm::NVPTX::L2EvictionBits = Bitfield::Element<L2Eviction, 3, 2, L2Eviction::Last>
using llvm::NVPTX::L2PrefetchBits
using llvm::NVPTX::L2CacheHintBit = Bitfield::Element<bool, 7, 1>

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 = NVPTXAS::ADDRESS_SPACE_GENERIC , llvm::NVPTX::Global = NVPTXAS::ADDRESS_SPACE_GLOBAL , llvm::NVPTX::Shared = NVPTXAS::ADDRESS_SPACE_SHARED , llvm::NVPTX::Const = NVPTXAS::ADDRESS_SPACE_CONST ,
  llvm::NVPTX::Local = NVPTXAS::ADDRESS_SPACE_LOCAL , llvm::NVPTX::SharedCluster = NVPTXAS::ADDRESS_SPACE_SHARED_CLUSTER , llvm::NVPTX::EntryParam = NVPTXAS::ADDRESS_SPACE_ENTRY_PARAM , llvm::NVPTX::DeviceParam
}
enum class  llvm::NVPTX::L1Eviction : uint8_t {
  llvm::NVPTX::Normal = 0 , llvm::NVPTX::Unchanged = 1 , llvm::NVPTX::First = 2 , llvm::NVPTX::Last = 3 ,
  llvm::NVPTX::NoAllocate = 4
}
enum class  llvm::NVPTX::L2Eviction : uint8_t { llvm::NVPTX::Normal = 0 , llvm::NVPTX::First = 1 , llvm::NVPTX::Last = 2 }
enum class  llvm::NVPTX::L2Prefetch : uint8_t { llvm::NVPTX::None = 0 , llvm::NVPTX::Bytes64 = 1 , llvm::NVPTX::Bytes128 = 2 , llvm::NVPTX::Bytes256 = 3 }
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::RS , llvm::NVPTX::PTXCvtMode::BASE_MASK = 0x0F ,
  llvm::NVPTX::PTXCvtMode::FTZ_FLAG = 0x10 , llvm::NVPTX::PTXCvtMode::SAT_FLAG = 0x20 , llvm::NVPTX::PTXCvtMode::RELU_FLAG = 0x40 , llvm::NVPTX::PTXCvtMode::SATFINITE_FLAG = 0x80
}
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::createNVPTXAssignValidGlobalNamesLegacyPass ()
ModulePassllvm::createGenericToNVVMLegacyPass ()
ModulePassllvm::createNVPTXCtorDtorLoweringLegacyPass ()
FunctionPassllvm::createNVPTXAtomicLowerLegacyPass ()
FunctionPassllvm::createNVVMIntrRangePass ()
ModulePassllvm::createNVVMReflectPass (unsigned int SmVersion)
MachineFunctionPassllvm::createNVPTXPrologEpilogLegacyPass ()
MachineFunctionPassllvm::createNVPTXReplaceImageHandlesLegacyPass ()
FunctionPassllvm::createNVPTXImageOptimizerLegacyPass ()
ModulePassllvm::createNVPTXLowerArgsPass ()
ModulePassllvm::createNVPTXPromoteParamAlignPass ()
FunctionPassllvm::createNVPTXAllocaHoistingLegacyPass ()
FunctionPassllvm::createNVPTXLowerAllocaLegacyPass ()
FunctionPassllvm::createNVPTXLowerUnreachableLegacyPass (bool TrapUnreachable, bool NoTrapAfterNoreturn)
FunctionPassllvm::createNVPTXLowerAggrCopiesLegacyPass ()
FunctionPassllvm::createNVPTXMarkKernelPtrsGlobalPass ()
FunctionPassllvm::createNVPTXTagInvariantLoadsPass ()
FunctionPassllvm::createNVPTXIRPeepholePass ()
MachineFunctionPassllvm::createNVPTXPeepholeLegacyPass ()
MachineFunctionPassllvm::createNVPTXProxyRegErasureLegacyPass ()
MachineFunctionPassllvm::createNVPTXForwardParamsLegacyPass ()
MachineFunctionPassllvm::createNVPTXAddressFolderLegacyPass ()
void llvm::initializeNVVMReflectLegacyPassPass (PassRegistry &)
void llvm::initializeGenericToNVVMLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXAllocaHoistingLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXAsmPrinterPass (PassRegistry &)
void llvm::initializeNVPTXAssignValidGlobalNamesLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXAtomicLowerLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXCtorDtorLoweringLegacyPass (PassRegistry &)
void llvm::initializeNVPTXLowerAggrCopiesLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXLowerAllocaLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXLowerUnreachableLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXLowerArgsLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXPromoteParamAlignLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXProxyRegErasureLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXForwardParamsLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXAddressFolderLegacyPassPass (PassRegistry &)
void llvm::initializeNVVMIntrRangePass (PassRegistry &)
void llvm::initializeNVVMReflectPass (PassRegistry &)
void llvm::initializeNVPTXAAWrapperPassPass (PassRegistry &)
void llvm::initializeNVPTXExternalAAWrapperPass (PassRegistry &)
void llvm::initializeNVPTXPeepholeLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXMarkKernelPtrsGlobalLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXTagInvariantLoadLegacyPassPass (PassRegistry &)
void llvm::initializeNVPTXIRPeepholePass (PassRegistry &)
void llvm::initializeNVPTXPrologEpilogLegacyPassPass (PassRegistry &)
unsigned llvm::NVPTX::encodeEvictionAndPrefetchHint (L1Eviction L1, L2Eviction L2, L2Prefetch P)
L1Eviction llvm::NVPTX::decodeL1Eviction (unsigned Hint)
L2Eviction llvm::NVPTX::decodeL2Eviction (unsigned Hint)
L2Prefetch llvm::NVPTX::decodeL2Prefetch (unsigned Hint)
bool llvm::NVPTX::isL2CacheHintMode (unsigned Hint)
void llvm::initializeNVPTXDAGToDAGISelLegacyPass (PassRegistry &)

Macro Definition Documentation

◆ GET_INSTRINFO_ENUM

#define GET_INSTRINFO_ENUM

Definition at line 475 of file NVPTX.h.

◆ GET_INSTRINFO_MC_HELPER_DECLS

#define GET_INSTRINFO_MC_HELPER_DECLS

Definition at line 476 of file NVPTX.h.

◆ GET_INSTRINFO_OPERAND_ENUM

#define GET_INSTRINFO_OPERAND_ENUM

Definition at line 477 of file NVPTX.h.

◆ GET_REGINFO_ENUM

#define GET_REGINFO_ENUM

Definition at line 470 of file NVPTX.h.

◆ GET_SUBTARGETINFO_ENUM

#define GET_SUBTARGETINFO_ENUM

Definition at line 480 of file NVPTX.h.