LLVM 22.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
SPIRVIRMapping.h File Reference
#include "MCTargetDesc/SPIRVBaseInfo.h"
#include "MCTargetDesc/SPIRVMCTargetDesc.h"
#include "SPIRVUtils.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/CodeGen/GlobalISel/MachineIRBuilder.h"
#include "llvm/CodeGen/MachineModuleInfo.h"
#include <type_traits>

Go to the source code of this file.

Classes

union  llvm::SPIRV::ImageAttrs
 
struct  llvm::SPIRV::ImageAttrs::BitFlags
 
class  llvm::SPIRVIRMapping
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::SPIRV
 

Typedefs

using llvm::SPIRV::MIHandle = std::tuple< const MachineInstr *, Register, size_t >
 
using llvm::SPIRV::IRHandle = std::tuple< const void *, unsigned, unsigned >
 
using llvm::SPIRV::IRHandleMF = std::pair< IRHandle, const MachineFunction * >
 

Enumerations

enum  llvm::SPIRV::SpecialTypeKind {
  llvm::SPIRV::STK_Empty = 0 , llvm::SPIRV::STK_Image , llvm::SPIRV::STK_SampledImage , llvm::SPIRV::STK_Sampler ,
  llvm::SPIRV::STK_Pipe , llvm::SPIRV::STK_DeviceEvent , llvm::SPIRV::STK_ElementPointer , llvm::SPIRV::STK_Type ,
  llvm::SPIRV::STK_Value , llvm::SPIRV::STK_MachineInstr , llvm::SPIRV::STK_VkBuffer , llvm::SPIRV::STK_ExplictLayoutType ,
  llvm::SPIRV::STK_Last = -1
}
 

Functions

size_t llvm::SPIRV::to_hash (const MachineInstr *MI)
 
MIHandle llvm::SPIRV::getMIKey (const MachineInstr *MI)
 
IRHandleMF llvm::SPIRV::getIRHandleMF (IRHandle Handle, const MachineFunction *MF)
 
IRHandle llvm::SPIRV::irhandle_image (const Type *SampledTy, unsigned Dim, unsigned Depth, unsigned Arrayed, unsigned MS, unsigned Sampled, unsigned ImageFormat, unsigned AQ=0)
 
IRHandle llvm::SPIRV::irhandle_sampled_image (const Type *SampledTy, const MachineInstr *ImageTy)
 
IRHandle llvm::SPIRV::irhandle_sampler ()
 
IRHandle llvm::SPIRV::irhandle_pipe (uint8_t AQ)
 
IRHandle llvm::SPIRV::irhandle_event ()
 
IRHandle llvm::SPIRV::irhandle_pointee (const Type *ElementType, unsigned AddressSpace)
 
IRHandle llvm::SPIRV::irhandle_ptr (const void *Ptr, unsigned Arg, enum SpecialTypeKind STK)
 
IRHandle llvm::SPIRV::irhandle_vkbuffer (const Type *ElementType, StorageClass::StorageClass SC, bool IsWriteable)
 
IRHandle llvm::SPIRV::irhandle_explict_layout_type (const Type *Ty)
 
IRHandle llvm::SPIRV::handle (const Type *Ty)
 
IRHandle llvm::SPIRV::handle (const Value *V)
 
IRHandle llvm::SPIRV::handle (const MachineInstr *KeyMI)
 
bool llvm::SPIRV::type_has_layout_decoration (const Type *T)