LLVM 22.0.0git
DXILResourceAccess.cpp File Reference
#include "DXILResourceAccess.h"
#include "DirectX.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instruction.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsDirectX.h"
#include "llvm/IR/User.h"
#include "llvm/InitializePasses.h"
#include "llvm/Transforms/Utils/ValueMapper.h"

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "dxil-resource-access"

Functions

static ValuecalculateGEPOffset (GetElementPtrInst *GEP, Value *PrevOffset, dxil::ResourceTypeInfo &RTI)
static void createTypedBufferStore (IntrinsicInst *II, StoreInst *SI, Value *Offset, dxil::ResourceTypeInfo &RTI)
static void createRawStore (IntrinsicInst *II, StoreInst *SI, Value *Offset)
static void createStoreIntrinsic (IntrinsicInst *II, StoreInst *SI, Value *Offset, dxil::ResourceTypeInfo &RTI)
static void createTypedBufferLoad (IntrinsicInst *II, LoadInst *LI, Value *Offset, dxil::ResourceTypeInfo &RTI)
static void createRawLoad (IntrinsicInst *II, LoadInst *LI, Value *Offset)
static void createLoadIntrinsic (IntrinsicInst *II, LoadInst *LI, Value *Offset, dxil::ResourceTypeInfo &RTI)
static SmallVector< Instruction * > collectBlockUseDef (Instruction *Start)
static void phiNodeRemapHelper (PHINode *Phi, BasicBlock *BB, IRBuilder<> &Builder, SmallVector< Instruction * > &UsesInBlock)
static void phiNodeReplacement (IntrinsicInst *II, SmallVectorImpl< Instruction * > &PrevBBDeadInsts, SetVector< BasicBlock * > &DeadBB)
static void replaceAccess (IntrinsicInst *II, dxil::ResourceTypeInfo &RTI)
static bool transformResourcePointers (Function &F, DXILResourceTypeMap &DRTM)
 INITIALIZE_PASS_BEGIN (DXILResourceAccessLegacy, DEBUG_TYPE, "DXIL Resource Access", false, false) INITIALIZE_PASS_END(DXILResourceAccessLegacy

Variables

 DEBUG_TYPE
DXIL Resource Access
DXIL Resource false

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "dxil-resource-access"

Definition at line 25 of file DXILResourceAccess.cpp.

Function Documentation

◆ calculateGEPOffset()

◆ collectBlockUseDef()

◆ createLoadIntrinsic()

◆ createRawLoad()

void createRawLoad ( IntrinsicInst * II,
LoadInst * LI,
Value * Offset )
static

◆ createRawStore()

void createRawStore ( IntrinsicInst * II,
StoreInst * SI,
Value * Offset )
static

Definition at line 91 of file DXILResourceAccess.cpp.

References II, and llvm::Offset.

Referenced by createStoreIntrinsic().

◆ createStoreIntrinsic()

◆ createTypedBufferLoad()

◆ createTypedBufferStore()

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( DXILResourceAccessLegacy ,
DEBUG_TYPE ,
"DXIL Resource Access" ,
false ,
false  )

◆ phiNodeRemapHelper()

void phiNodeRemapHelper ( PHINode * Phi,
BasicBlock * BB,
IRBuilder<> & Builder,
SmallVector< Instruction * > & UsesInBlock )
static

◆ phiNodeReplacement()

◆ replaceAccess()

◆ transformResourcePointers()

Variable Documentation

◆ Access

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 423 of file DXILResourceAccess.cpp.

◆ false

DXIL Resource false

Definition at line 424 of file DXILResourceAccess.cpp.