LLVM 22.0.0git
DXILResource.cpp File Reference
#include "llvm/Analysis/DXILResource.h"
#include "llvm/ADT/APInt.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
#include "llvm/IR/DiagnosticInfo.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsDirectX.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
#include "llvm/InitializePasses.h"
#include "llvm/Support/DXILABI.h"
#include "llvm/Support/FormatVariadic.h"
#include <cstdint>
#include <optional>

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "dxil-resource"

Functions

static StringRef getResourceKindName (ResourceKind RK)
static StringRef getElementTypeName (ElementType ET)
static StringRef getElementTypeNameForTemplate (ElementType ET)
static StringRef getSamplerTypeName (SamplerType ST)
static StringRef getSamplerFeedbackTypeName (SamplerFeedbackType SFT)
static dxil::ElementType toDXILElementType (Type *Ty, bool IsSigned)
static void formatTypeName (SmallString< 64 > &Dest, StringRef Name, bool IsWriteable, bool IsROV, Type *ContainedType=nullptr, bool IsSigned=true)
static StructTypegetOrCreateElementStruct (Type *ElemType, StringRef Name)
static bool isROV (dxil::ResourceKind Kind, TargetExtType *Ty)
static std::pair< Type *, boolgetTypedElementType (dxil::ResourceKind Kind, TargetExtType *Ty)
static bool isUpdateCounterIntrinsic (Function &F)

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "dxil-resource"

Definition at line 28 of file DXILResource.cpp.

Function Documentation

◆ formatTypeName()

void formatTypeName ( SmallString< 64 > & Dest,
StringRef Name,
bool IsWriteable,
bool IsROV,
Type * ContainedType = nullptr,
bool IsSigned = true )
static

◆ getElementTypeName()

StringRef getElementTypeName ( ElementType ET)
static

Definition at line 78 of file DXILResource.cpp.

References llvm_unreachable.

Referenced by llvm::dxil::ResourceTypeInfo::print().

◆ getElementTypeNameForTemplate()

StringRef getElementTypeNameForTemplate ( ElementType ET)
static

Definition at line 122 of file DXILResource.cpp.

References llvm_unreachable.

Referenced by formatTypeName().

◆ getOrCreateElementStruct()

StructType * getOrCreateElementStruct ( Type * ElemType,
StringRef Name )
static

◆ getResourceKindName()

StringRef getResourceKindName ( ResourceKind RK)
static

◆ getSamplerFeedbackTypeName()

StringRef getSamplerFeedbackTypeName ( SamplerFeedbackType SFT)
static

Definition at line 172 of file DXILResource.cpp.

References llvm_unreachable.

Referenced by llvm::dxil::ResourceTypeInfo::print().

◆ getSamplerTypeName()

StringRef getSamplerTypeName ( SamplerType ST)
static

Definition at line 160 of file DXILResource.cpp.

References llvm_unreachable.

Referenced by llvm::dxil::ResourceTypeInfo::print().

◆ getTypedElementType()

◆ isROV()

◆ isUpdateCounterIntrinsic()

bool isUpdateCounterIntrinsic ( Function & F)
static

Definition at line 778 of file DXILResource.cpp.

References F.

◆ toDXILElementType()

dxil::ElementType toDXILElementType ( Type * Ty,
bool IsSigned )
static

Definition at line 182 of file DXILResource.cpp.

Referenced by formatTypeName(), and llvm::dxil::ResourceTypeInfo::getTyped().