LLVM 23.0.0git
llvm::SPIRVSubtarget Class Reference

#include "Target/SPIRV/SPIRVSubtarget.h"

Inheritance diagram for llvm::SPIRVSubtarget:
[legend]

Public Types

enum  SPIRVEnvType { Kernel , Shader , Unknown }

Public Member Functions

 SPIRVSubtarget (const Triple &TT, const std::string &CPU, const std::string &FS, const SPIRVTargetMachine &TM)
SPIRVSubtargetinitSubtargetDependencies (StringRef CPU, StringRef FS)
void initAvailableExtensions (const std::set< SPIRV::Extension::Extension > &AllowedExtIds)
void resolveEnvFromModule (const Module &M)
void ParseSubtargetFeatures (StringRef CPU, StringRef TuneCPU, StringRef FS)
unsigned getPointerSize () const
unsigned getBound () const
bool canDirectlyComparePointers () const
void setEnv (SPIRVEnvType E)
SPIRVEnvType getEnv () const
bool isKernel () const
bool isShader () const
bool isLogicalSPIRV () const
bool isPhysicalSPIRV () const
const std::string & getTargetTripleAsStr () const
VersionTuple getSPIRVVersion () const
bool isAtLeastSPIRVVer (VersionTuple VerToCompareTo) const
bool isAtLeastOpenCLVer (VersionTuple VerToCompareTo) const
bool hasOpenCLFullProfile () const
bool hasOpenCLImageSupport () const
const SmallSet< SPIRV::Extension::Extension, 4 > & getAllAvailableExtensions () const
bool canUseExtension (SPIRV::Extension::Extension E) const
bool canUseExtInstSet (SPIRV::InstructionSet::InstructionSet E) const
SPIRV::InstructionSet::InstructionSet getPreferredInstructionSet () const
SPIRVGlobalRegistrygetSPIRVGlobalRegistry () const
const CallLoweringgetCallLowering () const override
const RegisterBankInfogetRegBankInfo () const override
const LegalizerInfogetLegalizerInfo () const override
InstructionSelectorgetInstructionSelector () const override
const InlineAsmLoweringgetInlineAsmLowering () const override
const SPIRVInstrInfogetInstrInfo () const override
const SPIRVFrameLoweringgetFrameLowering () const override
const SPIRVTargetLoweringgetTargetLowering () const override
const SPIRVRegisterInfogetRegisterInfo () const override

Static Public Member Functions

static bool classof (const TargetSubtargetInfo *ST)
static void addExtensionsToClOpt (const std::set< SPIRV::Extension::Extension > &AllowList)

Static Public Attributes

static constexpr unsigned MaxLegalAddressSpace = 6

Detailed Description

Definition at line 39 of file SPIRVSubtarget.h.

Member Enumeration Documentation

◆ SPIRVEnvType

Enumerator
Kernel 
Shader 
Unknown 

Definition at line 42 of file SPIRVSubtarget.h.

Constructor & Destructor Documentation

◆ SPIRVSubtarget()

Member Function Documentation

◆ addExtensionsToClOpt()

void SPIRVSubtarget::addExtensionsToClOpt ( const std::set< SPIRV::Extension::Extension > & AllowList)
static

Definition at line 42 of file SPIRVSubtarget.cpp.

References Extensions.

◆ canDirectlyComparePointers()

bool SPIRVSubtarget::canDirectlyComparePointers ( ) const

Definition at line 154 of file SPIRVSubtarget.cpp.

References isAtLeastVer(), and SPVTranslatorCompat.

◆ canUseExtension()

bool SPIRVSubtarget::canUseExtension ( SPIRV::Extension::Extension E) const

Definition at line 125 of file SPIRVSubtarget.cpp.

Referenced by llvm::addressSpaceToStorageClass().

◆ canUseExtInstSet()

bool SPIRVSubtarget::canUseExtInstSet ( SPIRV::InstructionSet::InstructionSet E) const

Definition at line 129 of file SPIRVSubtarget.cpp.

◆ classof()

bool llvm::SPIRVSubtarget::classof ( const TargetSubtargetInfo * ST)
inlinestatic

Definition at line 140 of file SPIRVSubtarget.h.

◆ getAllAvailableExtensions()

const SmallSet< SPIRV::Extension::Extension, 4 > & llvm::SPIRVSubtarget::getAllAvailableExtensions ( ) const
inline

Definition at line 105 of file SPIRVSubtarget.h.

◆ getBound()

unsigned llvm::SPIRVSubtarget::getBound ( ) const
inline

Definition at line 84 of file SPIRVSubtarget.h.

◆ getCallLowering()

const CallLowering * llvm::SPIRVSubtarget::getCallLowering ( ) const
inlineoverride

Definition at line 114 of file SPIRVSubtarget.h.

◆ getEnv()

SPIRVEnvType llvm::SPIRVSubtarget::getEnv ( ) const
inline

Definition at line 87 of file SPIRVSubtarget.h.

Referenced by getExecutionModel(), isKernel(), and isShader().

◆ getFrameLowering()

const SPIRVFrameLowering * llvm::SPIRVSubtarget::getFrameLowering ( ) const
inlineoverride

Definition at line 130 of file SPIRVSubtarget.h.

◆ getInlineAsmLowering()

const InlineAsmLowering * llvm::SPIRVSubtarget::getInlineAsmLowering ( ) const
inlineoverride

Definition at line 126 of file SPIRVSubtarget.h.

◆ getInstrInfo()

const SPIRVInstrInfo * llvm::SPIRVSubtarget::getInstrInfo ( ) const
inlineoverride

◆ getInstructionSelector()

InstructionSelector * llvm::SPIRVSubtarget::getInstructionSelector ( ) const
inlineoverride

Definition at line 123 of file SPIRVSubtarget.h.

◆ getLegalizerInfo()

const LegalizerInfo * llvm::SPIRVSubtarget::getLegalizerInfo ( ) const
inlineoverride

Definition at line 120 of file SPIRVSubtarget.h.

◆ getPointerSize()

unsigned llvm::SPIRVSubtarget::getPointerSize ( ) const
inline

Definition at line 83 of file SPIRVSubtarget.h.

◆ getPreferredInstructionSet()

SPIRV::InstructionSet::InstructionSet SPIRVSubtarget::getPreferredInstructionSet ( ) const

Definition at line 135 of file SPIRVSubtarget.cpp.

References isShader().

◆ getRegBankInfo()

const RegisterBankInfo * llvm::SPIRVSubtarget::getRegBankInfo ( ) const
inlineoverride

Definition at line 117 of file SPIRVSubtarget.h.

Referenced by doInsertBitcast().

◆ getRegisterInfo()

const SPIRVRegisterInfo * llvm::SPIRVSubtarget::getRegisterInfo ( ) const
inlineoverride

Definition at line 136 of file SPIRVSubtarget.h.

Referenced by doInsertBitcast().

◆ getSPIRVGlobalRegistry()

SPIRVGlobalRegistry * llvm::SPIRVSubtarget::getSPIRVGlobalRegistry ( ) const
inline

◆ getSPIRVVersion()

VersionTuple llvm::SPIRVSubtarget::getSPIRVVersion ( ) const
inline

Definition at line 98 of file SPIRVSubtarget.h.

◆ getTargetLowering()

const SPIRVTargetLowering * llvm::SPIRVSubtarget::getTargetLowering ( ) const
inlineoverride

Definition at line 133 of file SPIRVSubtarget.h.

◆ getTargetTripleAsStr()

const std::string & llvm::SPIRVSubtarget::getTargetTripleAsStr ( ) const
inline

Definition at line 97 of file SPIRVSubtarget.h.

◆ hasOpenCLFullProfile()

bool llvm::SPIRVSubtarget::hasOpenCLFullProfile ( ) const
inline

Definition at line 102 of file SPIRVSubtarget.h.

◆ hasOpenCLImageSupport()

bool llvm::SPIRVSubtarget::hasOpenCLImageSupport ( ) const
inline

Definition at line 103 of file SPIRVSubtarget.h.

◆ initAvailableExtensions()

void SPIRVSubtarget::initAvailableExtensions ( const std::set< SPIRV::Extension::Extension > & AllowedExtIds)

◆ initSubtargetDependencies()

SPIRVSubtarget & SPIRVSubtarget::initSubtargetDependencies ( StringRef CPU,
StringRef FS )

Definition at line 119 of file SPIRVSubtarget.cpp.

References ParseSubtargetFeatures(), and SPIRVSubtarget().

Referenced by SPIRVSubtarget().

◆ isAtLeastOpenCLVer()

bool SPIRVSubtarget::isAtLeastOpenCLVer ( VersionTuple VerToCompareTo) const

Definition at line 146 of file SPIRVSubtarget.cpp.

References isAtLeastVer(), and isShader().

◆ isAtLeastSPIRVVer()

bool SPIRVSubtarget::isAtLeastSPIRVVer ( VersionTuple VerToCompareTo) const

Definition at line 142 of file SPIRVSubtarget.cpp.

References isAtLeastVer().

◆ isKernel()

bool llvm::SPIRVSubtarget::isKernel ( ) const
inline

Definition at line 88 of file SPIRVSubtarget.h.

References getEnv(), and Kernel.

Referenced by getExecutionModel(), and resolveEnvFromModule().

◆ isLogicalSPIRV()

bool llvm::SPIRVSubtarget::isLogicalSPIRV ( ) const
inline

Definition at line 90 of file SPIRVSubtarget.h.

References llvm::Triple::spirv.

◆ isPhysicalSPIRV()

bool llvm::SPIRVSubtarget::isPhysicalSPIRV ( ) const
inline

Definition at line 93 of file SPIRVSubtarget.h.

References llvm::Triple::spirv32, and llvm::Triple::spirv64.

◆ isShader()

bool llvm::SPIRVSubtarget::isShader ( ) const
inline

Definition at line 89 of file SPIRVSubtarget.h.

References getEnv(), and Shader.

Referenced by getPreferredInstructionSet(), and isAtLeastOpenCLVer().

◆ ParseSubtargetFeatures()

void llvm::SPIRVSubtarget::ParseSubtargetFeatures ( StringRef CPU,
StringRef TuneCPU,
StringRef FS )

◆ resolveEnvFromModule()

void SPIRVSubtarget::resolveEnvFromModule ( const Module & M)

Definition at line 194 of file SPIRVSubtarget.cpp.

References llvm::any_of(), assert(), F, isKernel(), Kernel, setEnv(), Shader, and Unknown.

◆ setEnv()

void SPIRVSubtarget::setEnv ( SPIRVEnvType E)

Definition at line 179 of file SPIRVSubtarget.cpp.

References llvm::report_fatal_error(), and Unknown.

Referenced by resolveEnvFromModule().

Member Data Documentation

◆ MaxLegalAddressSpace

unsigned llvm::SPIRVSubtarget::MaxLegalAddressSpace = 6
staticconstexpr

Definition at line 144 of file SPIRVSubtarget.h.


The documentation for this class was generated from the following files: