LLVM 20.0.0git
|
#include "DXILResourceAccess.h"
#include "DirectX.h"
#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRBuilder.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/IntrinsicInst.h"
#include "llvm/IR/Intrinsics.h"
#include "llvm/IR/IntrinsicsDirectX.h"
#include "llvm/InitializePasses.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "dxil-resource-access" |
Variables | |
DEBUG_TYPE | |
DXIL Resource | Access |
DXIL Resource | false |
#define DEBUG_TYPE "dxil-resource-access" |
Definition at line 20 of file DXILResourceAccess.cpp.
|
static |
Definition at line 24 of file DXILResourceAccess.cpp.
References assert(), DL, GEP, llvm::dxil::ResourceTypeInfo::getHandleTy(), llvm::Type::getInt32Ty(), llvm::Type::getScalarType(), llvm::TargetExtType::getTypeParameter(), llvm::dxil::ResourceTypeInfo::isTyped(), llvm::Offset, Scaled, and llvm::APInt::udiv().
Referenced by replaceAccess().
|
static |
Definition at line 163 of file DXILResourceAccess.cpp.
References createRawLoad(), createTypedBufferLoad(), llvm::dxil::ResourceTypeInfo::getResourceKind(), II, llvm_unreachable, and llvm::Offset.
Referenced by llvm::ARMTargetLowering::lowerInterleavedLoad(), and replaceAccess().
|
static |
Definition at line 149 of file DXILResourceAccess.cpp.
References llvm::IRBuilderBase::CreateExtractValue(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::StructType::get(), llvm::IRBuilderBase::getInt1Ty(), llvm::IRBuilderBase::getInt32Ty(), llvm::Value::getType(), II, llvm::Offset, and llvm::Value::replaceAllUsesWith().
Referenced by createLoadIntrinsic().
|
static |
Definition at line 86 of file DXILResourceAccess.cpp.
References llvm::IRBuilderBase::CreateIntrinsic(), llvm::IRBuilderBase::getInt32Ty(), llvm::IRBuilderBase::getVoidTy(), and llvm::Offset.
Referenced by createStoreIntrinsic().
|
static |
Definition at line 99 of file DXILResourceAccess.cpp.
References createRawStore(), createTypedBufferStore(), llvm::dxil::ResourceTypeInfo::getResourceKind(), II, llvm_unreachable, llvm::Offset, and llvm::report_fatal_error().
Referenced by llvm::ARMTargetLowering::lowerInterleavedStore(), and replaceAccess().
|
static |
Definition at line 132 of file DXILResourceAccess.cpp.
References llvm::IRBuilderBase::CreateExtractElement(), llvm::IRBuilderBase::CreateExtractValue(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::StructType::get(), llvm::dxil::ResourceTypeInfo::getHandleTy(), llvm::IRBuilderBase::getInt1Ty(), llvm::TargetExtType::getTypeParameter(), II, llvm::Offset, and llvm::Value::replaceAllUsesWith().
Referenced by createLoadIntrinsic().
|
static |
Definition at line 54 of file DXILResourceAccess.cpp.
References assert(), llvm::IRBuilderBase::CreateExtractValue(), llvm::IRBuilderBase::CreateInsertElement(), llvm::IRBuilderBase::CreateIntrinsic(), llvm::StructType::get(), llvm::dxil::ResourceTypeInfo::getHandleTy(), llvm::IRBuilderBase::getInt1Ty(), llvm::IRBuilderBase::getInt32Ty(), llvm::Type::getScalarType(), llvm::TargetExtType::getTypeParameter(), llvm::IRBuilderBase::getVoidTy(), II, llvm_unreachable, llvm::Offset, and Struct.
Referenced by createStoreIntrinsic().
INITIALIZE_PASS_BEGIN | ( | DXILResourceAccessLegacy | , |
DEBUG_TYPE | , | ||
"DXIL Resource Access" | , | ||
false | , | ||
false | |||
) |
|
static |
Definition at line 195 of file DXILResourceAccess.cpp.
References Access, assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), calculateGEPOffset(), createLoadIntrinsic(), createStoreIntrinsic(), llvm::SmallVectorBase< Size_T >::empty(), GEP, II, llvm_unreachable, llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::pop_back(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::reverse().
Referenced by transformResourcePointers().
|
static |
Definition at line 237 of file DXILResourceAccess.cpp.
References llvm::SmallVectorImpl< T >::emplace_back(), F, I, II, and replaceAccess().
Referenced by llvm::DXILResourceAccess::run().
DXIL Resource Access |
Definition at line 296 of file DXILResourceAccess.cpp.
Referenced by llvm::logicalview::LVElement::accessibilityString(), llvm::dwarf::AccessibilityString(), llvm::AA::PointerInfo::State::forallInterferingAccesses(), foreachMemoryAccess(), llvm::logicalview::LVElement::getAccessibilityCode(), getFD(), llvm::MemoryDepChecker::getInstructionsForAccess(), llvm::AliasSet::isMod(), llvm::AliasSet::isRef(), mayLoopAccessLocation(), llvm::codeview::MemberAttributes::MemberAttributes(), llvm::pdb::operator<<(), replaceAccess(), and llvm::logicalview::LVElement::setAccessibilityCode().
DEBUG_TYPE |
Definition at line 295 of file DXILResourceAccess.cpp.
DXIL Resource false |
Definition at line 296 of file DXILResourceAccess.cpp.