LLVM: lib/Target/DirectX/DXILResourceAccess.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | DEBUG_TYPE "dxil-resource-access" |
| Variables | |
|---|---|
| DEBUG_TYPE | |
| DXIL Resource | Access |
| DXIL Resource | false |
◆ DEBUG_TYPE
#define DEBUG_TYPE "dxil-resource-access"
◆ calculateGEPOffset()
Definition at line 31 of file DXILResourceAccess.cpp.
References assert(), llvm::cast(), DL, GEP, llvm::dxil::ResourceTypeInfo::getHandleTy(), llvm::Type::getScalarType(), llvm::TargetExtType::getTypeParameter(), llvm::dxil::ResourceTypeInfo::isTyped(), llvm_unreachable, llvm::Offset, Scaled, and llvm::APInt::udiv().
Referenced by replaceAccess().
◆ collectBlockUseDef()
Definition at line 342 of file DXILResourceAccess.cpp.
References A(), B(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), I, llvm::SmallPtrSetImpl< PtrType >::insert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::lookup(), llvm::SmallVectorImpl< T >::pop_back_val(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::sort().
Referenced by phiNodeReplacement().
◆ createCBufferLoad()
Definition at line 225 of file DXILResourceAccess.cpp.
References assert(), llvm::hlsl::CBufferRowSizeInBytes, DL, llvm::dyn_cast(), llvm::dyn_cast_if_present(), E(), llvm::formatv(), llvm::PoisonValue::get(), llvm::Instruction::getDataLayout(), llvm::Value::getName(), llvm::Value::getType(), llvm::ConstantInt::getZExtValue(), I, II, llvm::isa(), llvm::Offset, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::Value::replaceAllUsesWith(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by createLoadIntrinsic().
◆ createLoadIntrinsic()
Definition at line 309 of file DXILResourceAccess.cpp.
References llvm::dxil::CBuffer, createCBufferLoad(), createRawLoad(), createTypedBufferLoad(), llvm::dxil::FeedbackTexture2D, llvm::dxil::FeedbackTexture2DArray, llvm::dxil::ResourceTypeInfo::getResourceKind(), II, llvm::dxil::Invalid, llvm_unreachable, llvm::dxil::NumEntries, llvm::Offset, llvm::dxil::RawBuffer, llvm::reportFatalUsageError(), llvm::dxil::RTAccelerationStructure, llvm::dxil::Sampler, llvm::dxil::StructuredBuffer, llvm::dxil::TBuffer, llvm::dxil::Texture1D, llvm::dxil::Texture1DArray, llvm::dxil::Texture2D, llvm::dxil::Texture2DArray, llvm::dxil::Texture2DMS, llvm::dxil::Texture2DMSArray, llvm::dxil::Texture3D, llvm::dxil::TextureCube, llvm::dxil::TextureCubeArray, and llvm::dxil::TypedBuffer.
Referenced by llvm::ARMTargetLowering::lowerInterleavedLoad(), and replaceAccess().
◆ createRawLoad()
◆ createRawStore()
◆ createStoreIntrinsic()
Definition at line 118 of file DXILResourceAccess.cpp.
References llvm::dxil::CBuffer, createRawStore(), createTypedBufferStore(), llvm::dxil::FeedbackTexture2D, llvm::dxil::FeedbackTexture2DArray, llvm::dxil::ResourceTypeInfo::getResourceKind(), II, llvm::dxil::Invalid, llvm_unreachable, llvm::dxil::NumEntries, llvm::Offset, llvm::dxil::RawBuffer, llvm::reportFatalUsageError(), llvm::dxil::RTAccelerationStructure, llvm::dxil::Sampler, llvm::dxil::StructuredBuffer, llvm::dxil::TBuffer, llvm::dxil::Texture1D, llvm::dxil::Texture1DArray, llvm::dxil::Texture2D, llvm::dxil::Texture2DArray, llvm::dxil::Texture2DMS, llvm::dxil::Texture2DMSArray, llvm::dxil::Texture3D, llvm::dxil::TextureCube, llvm::dxil::TextureCubeArray, and llvm::dxil::TypedBuffer.
Referenced by llvm::ARMTargetLowering::lowerInterleavedStore(), and replaceAccess().
◆ createTypedBufferLoad()
Definition at line 150 of file DXILResourceAccess.cpp.
References llvm::dyn_cast(), llvm::PoisonValue::get(), llvm::StructType::get(), llvm::dxil::ResourceTypeInfo::getHandleTy(), llvm::Type::getInt1Ty(), llvm::Value::getType(), llvm::TargetExtType::getTypeParameter(), II, llvm::isa(), llvm::Offset, and llvm::Value::replaceAllUsesWith().
Referenced by createLoadIntrinsic().
◆ createTypedBufferStore()
◆ INITIALIZE_PASS_BEGIN()
| INITIALIZE_PASS_BEGIN | ( | DXILResourceAccessLegacy | , |
|---|---|---|---|
| DEBUG_TYPE | , | ||
| "DXIL Resource Access" | , | ||
| false | , | ||
| false | ) |
◆ phiNodeRemapHelper()
◆ phiNodeReplacement()
Definition at line 412 of file DXILResourceAccess.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::back(), llvm::SmallVectorImpl< T >::clear(), collectBlockUseDef(), llvm::dyn_cast(), E(), I, II, llvm::SetVector< T, Vector, Set, N >::insert(), llvm::isa(), phiNodeRemapHelper(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::reverse().
Referenced by transformResourcePointers().
◆ replaceAccess()
Definition at line 448 of file DXILResourceAccess.cpp.
References Access, assert(), llvm::SmallVectorTemplateCommon< T, typename >::back(), calculateGEPOffset(), createLoadIntrinsic(), createStoreIntrinsic(), llvm::dyn_cast(), llvm::SmallVectorTemplateCommon< T, typename >::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().
◆ transformResourcePointers()
Definition at line 489 of file DXILResourceAccess.cpp.
References llvm::cast(), llvm::SetVector< T, Vector, Set, N >::clear(), llvm::SmallVectorImpl< T >::clear(), llvm::dyn_cast(), llvm::SmallVectorImpl< T >::emplace_back(), llvm::SmallVectorTemplateCommon< T, typename >::empty(), F, I, II, llvm::make_early_inc_range(), phiNodeReplacement(), and replaceAccess().
Referenced by llvm::DXILResourceAccess::run().
◆ Access
Definition at line 560 of file DXILResourceAccess.cpp.
Referenced by llvm::dwarf::AccessibilityString(), llvm::logicalview::LVElement::accessibilityString(), llvm::codeview::BaseClassRecord::BaseClassRecord(), llvm::codeview::DataMemberRecord::DataMemberRecord(), llvm::codeview::EnumeratorRecord::EnumeratorRecord(), llvm::AA::PointerInfo::State::forallInterferingAccesses(), foreachMemoryAccess(), llvm::logicalview::LVElement::getAccessibilityCode(), getFD(), llvm::MemoryDepChecker::getInstructionsForAccess(), isAllocSiteRemovable(), mayLoopAccessLocation(), mayLoopAccessLocation(), llvm::codeview::MemberAttributes::MemberAttributes(), llvm::codeview::MemberAttributes::MemberAttributes(), llvm::codeview::OneMethodRecord::OneMethodRecord(), llvm::sys::fs::openFile(), llvm::sys::fs::openNativeFile(), llvm::pdb::operator<<(), llvm::logicalview::LVLogicalVisitor::printMemberAttributes(), llvm::raw_fd_ostream::raw_fd_ostream(), llvm::raw_fd_ostream::raw_fd_ostream(), replaceAccess(), llvm::logicalview::LVElement::setAccessibilityCode(), llvm::logicalview::LVElement::setAccessibilityCode(), llvm::codeview::StaticDataMemberRecord::StaticDataMemberRecord(), and llvm::codeview::VirtualBaseClassRecord::VirtualBaseClassRecord().