From: Chris Bieneman Date: Tue, 2 Aug 2022 21:55:46 +0000 (-0500) Subject: [DX] Remove IntrNoMem from create handle intrinsic X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ee4d8150083792242b3c56e5a7f9fe8aaa374b72;p=platform%2Fupstream%2Fllvm.git [DX] Remove IntrNoMem from create handle intrinsic The create handle intrinsic calls can't be removed, so it was incorrect to mark them as IntrNoMem. --- diff --git a/llvm/include/llvm/IR/IntrinsicsDirectX.td b/llvm/include/llvm/IR/IntrinsicsDirectX.td index 80e5b79..2fe4fdf 100644 --- a/llvm/include/llvm/IR/IntrinsicsDirectX.td +++ b/llvm/include/llvm/IR/IntrinsicsDirectX.td @@ -18,5 +18,5 @@ def int_dx_thread_id_in_group : Intrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoM 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]>; + Intrinsic<[ llvm_ptr_ty ], [llvm_i8_ty], [IntrWillReturn]>; } diff --git a/llvm/test/Transforms/EarlyCSE/DirectX/create_handle.ll b/llvm/test/Transforms/EarlyCSE/DirectX/create_handle.ll new file mode 100644 index 0000000..c580721 --- /dev/null +++ b/llvm/test/Transforms/EarlyCSE/DirectX/create_handle.ll @@ -0,0 +1,17 @@ +; RUN: opt %s -early-cse -S | FileCheck %s + +define void @fn() { +entry: + %0 = tail call ptr @llvm.dx.create.handle(i8 1) + %1 = tail call ptr @llvm.dx.create.handle(i8 1) + ret void +} + +; Function Attrs: mustprogress nounwind willreturn +declare ptr @llvm.dx.create.handle(i8) #0 + +attributes #0 = { mustprogress nounwind willreturn } + +; CSE needs to leave this alone +; CHECK: %0 = tail call ptr @llvm.dx.create.handle(i8 1) +; CHECK: %1 = tail call ptr @llvm.dx.create.handle(i8 1) \ No newline at end of file