diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td index 3050bd2acec733..9667f583728699 100644 --- a/llvm/include/llvm/IR/Intrinsics.td +++ b/llvm/include/llvm/IR/Intrinsics.td @@ -1256,21 +1256,20 @@ def int_experimental_gc_statepoint : Intrinsic<[llvm_token_ty], ImmArg>, ImmArg>, ImmArg>]>; -def int_experimental_gc_result : Intrinsic<[llvm_any_ty], [llvm_token_ty], - [IntrNoMem]>; -def int_experimental_gc_relocate : Intrinsic<[llvm_any_ty], - [llvm_token_ty, llvm_i32_ty, - llvm_i32_ty], - [IntrNoMem, ImmArg>, - ImmArg>]>; - -def int_experimental_gc_get_pointer_base : Intrinsic<[llvm_anyptr_ty], - [llvm_anyptr_ty], [IntrNoMem, IntrWillReturn, - ReadNone>, NoCapture>]>; - -def int_experimental_gc_get_pointer_offset : Intrinsic<[llvm_i64_ty], - [llvm_anyptr_ty], [IntrNoMem, IntrWillReturn, - ReadNone>, NoCapture>]>; +def int_experimental_gc_result : DefaultAttrsIntrinsic< + [llvm_any_ty], [llvm_token_ty], [IntrNoMem]>; + +def int_experimental_gc_relocate : DefaultAttrsIntrinsic< + [llvm_any_ty], [llvm_token_ty, llvm_i32_ty, llvm_i32_ty], + [IntrNoMem, ImmArg>, ImmArg>]>; + +def int_experimental_gc_get_pointer_base : DefaultAttrsIntrinsic< + [llvm_anyptr_ty], [llvm_anyptr_ty], + [IntrNoMem, IntrWillReturn, ReadNone>, NoCapture>]>; + +def int_experimental_gc_get_pointer_offset : DefaultAttrsIntrinsic< + [llvm_i64_ty], [llvm_anyptr_ty], + [IntrNoMem, IntrWillReturn, ReadNone>, NoCapture>]>; //===------------------------ Coroutine Intrinsics ---------------===// // These are documented in docs/Coroutines.rst diff --git a/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-attrs.ll b/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-attrs.ll index 1eb6cefc4dcd8c..120679b5dc665a 100644 --- a/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-attrs.ll +++ b/llvm/test/Transforms/RewriteStatepointsForGC/statepoint-attrs.ll @@ -20,6 +20,6 @@ define void @test1(i8 addrspace(1)* %arg) gc "statepoint-example" { attributes #1 = { norecurse noimplicitfloat } ;. -; CHECK: attributes #[[ATTR0:[0-9]+]] = { nounwind memory(none) } +; CHECK: attributes #[[ATTR0:[0-9]+]] = { nocallback nofree nosync nounwind willreturn memory(none) } ; CHECK: attributes #[[ATTR1]] = { noimplicitfloat norecurse } ;.