[llvm] [SPIRV] Legalize byte-buffer reinterpretation ptrcasts (#192523) (PR #212999)
Farzon Lotfi via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 24 20:03:25 PDT 2026
================
@@ -222,15 +222,207 @@ class SPIRVLegalizePointerCastImpl {
return std::make_pair(GEP, CurrentTy);
}
+ static IntrinsicInst *getResourceGetPointer(Value *Ptr) {
+ if (auto *II = dyn_cast<IntrinsicInst>(Ptr))
+ if (II->getIntrinsicID() == Intrinsic::spv_resource_getpointer)
+ return II;
+ return nullptr;
+ }
+
+ Value *gepByteOffset(IRBuilder<> &B, Value *BasePtr, unsigned ByteOffset) {
+ if (ByteOffset == 0)
+ return BasePtr;
+
+ IntrinsicInst *ResourcePtr = getResourceGetPointer(BasePtr);
+ assert(ResourcePtr &&
+ "byte layout pointer must come from spv.resource.getpointer");
----------------
farzonl wrote:
so if asserts are off and ResourcePtr is a nullptr line 240 will be a crash. maybe this should be llvm_unreachable instead?
https://github.com/llvm/llvm-project/pull/212999
More information about the llvm-commits
mailing list