[PATCH] D130016: [HLSL] Add __builtin_hlsl_create_handle
Chris Bieneman via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jul 18 08:11:10 PDT 2022
beanz created this revision.
beanz added reviewers: aaron.ballman, Anastasia, kuhar, bogner, python3kgae.
Herald added a project: All.
beanz requested review of this revision.
Herald added projects: clang, LLVM.
Herald added a subscriber: llvm-commits.
This is pretty straightforward, it just adds a builtin to return a
pointer to a resource handle. This maps to a dx intrinsic.
The shape of this builtin and the underlying intrinsic will likely
shift a bit as this implementation becomes more feature complete, but
this is a good basis to get started.
Depends on D128569 <https://reviews.llvm.org/D128569>.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D130016
Files:
clang/include/clang/Basic/Builtins.def
clang/test/CodeGenHLSL/builtins/create_handle.hlsl
llvm/include/llvm/IR/IntrinsicsDirectX.td
Index: llvm/include/llvm/IR/IntrinsicsDirectX.td
===================================================================
--- llvm/include/llvm/IR/IntrinsicsDirectX.td
+++ llvm/include/llvm/IR/IntrinsicsDirectX.td
@@ -17,4 +17,6 @@
def int_dx_thread_id_in_group : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem, IntrWillReturn]>;
def int_dx_flattened_thread_id_in_group : Intrinsic<[llvm_i32_ty], [], [IntrNoMem, IntrWillReturn]>;
+def int_dx_create_handle : ClangBuiltin<"__builtin_hlsl_create_handle">,
+ Intrinsic<[ llvm_ptr_ty ], [llvm_i8_ty], [IntrNoMem, IntrWillReturn]>;
}
Index: clang/test/CodeGenHLSL/builtins/create_handle.hlsl
===================================================================
--- /dev/null
+++ clang/test/CodeGenHLSL/builtins/create_handle.hlsl
@@ -0,0 +1,7 @@
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s
+
+void fn() {
+ (void)__builtin_hlsl_create_handle(0);
+}
+
+// CHECK: call ptr @llvm.dx.create.handle(i8 0)
Index: clang/include/clang/Basic/Builtins.def
===================================================================
--- clang/include/clang/Basic/Builtins.def
+++ clang/include/clang/Basic/Builtins.def
@@ -1700,6 +1700,7 @@
// HLSL
LANGBUILTIN(__builtin_hlsl_wave_active_count_bits, "Uib", "nc", HLSL_LANG)
+LANGBUILTIN(__builtin_hlsl_create_handle, "v*Uc", "nc", HLSL_LANG)
// Builtins for XRay
BUILTIN(__xray_customevent, "vcC*z", "")
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D130016.445516.patch
Type: text/x-patch
Size: 1474 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20220718/387b93b7/attachment-0001.bin>
More information about the cfe-commits
mailing list