[clang] [llvm] [HLSL] Add support for dynamic resources (PR #221103)
Justin Bogner via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 14 07:56:48 PDT 2026
================
@@ -1063,6 +1063,27 @@ Value *CodeGenFunction::EmitHLSLBuiltinExpr(unsigned BuiltinID,
return EmitIntrinsicCall(IntrinsicID, {HandleTy, MainHandle->getType()},
Args);
}
+ case Builtin::BI__builtin_hlsl_resource_handlefromheap: {
+ llvm::Type *HandleTy = CGM.getTypes().ConvertType(E->getType());
+ Value *IndexOp = EmitScalarExpr(E->getArg(1));
+ llvm::Intrinsic::ID IntrinsicID =
+ CGM.getHLSLRuntime().getCreateHandleFromHeapIntrinsic();
+ SmallVector<Value *> Args{IndexOp};
+ return Builder.CreateIntrinsic(HandleTy, IntrinsicID, Args);
+ }
+ case Builtin::BI__builtin_hlsl_resource_counterhandlefromheap: {
+ Value *MainHandle = EmitScalarExpr(E->getArg(0));
+ if (!CGM.getTriple().isSPIRV())
+ return MainHandle;
+
+ llvm::Type *HandleTy = CGM.getTypes().ConvertType(E->getType());
+ llvm::Intrinsic::ID IntrinsicID =
+ llvm::Intrinsic::spv_resource_counterhandlefromheap;
+ SmallVector<Value *> Args{MainHandle};
+ return EmitIntrinsicCall(IntrinsicID, {HandleTy, MainHandle->getType()},
+ Args);
----------------
bogner wrote:
Same
https://github.com/llvm/llvm-project/pull/221103
More information about the llvm-commits
mailing list