Skip to content

Commit 4f5e92c

Browse files
committed
Mark gc.relocate and gc.result as readnone (try 2)
As noted in the LangRef, these are semantically readnone projections from the result value of the associated statepoint. However, it turned out we had a few latent bugs being covered up by the fact we were only marking them readonly (see PR49607 for context). As of this change, all known issues are resolved. This is a deliberately minimal patch to make it easy to test downstream and revert with minimal change if that turns out to be necessary. Differential Revision: https://reviews.llvm.org/D98729
1 parent e7ebb87 commit 4f5e92c

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

llvm/include/llvm/IR/Intrinsics.td

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1183,11 +1183,11 @@ def int_experimental_gc_statepoint : Intrinsic<[llvm_token_ty],
11831183
ImmArg<ArgIndex<4>>]>;
11841184

11851185
def int_experimental_gc_result : Intrinsic<[llvm_any_ty], [llvm_token_ty],
1186-
[IntrReadMem]>;
1186+
[IntrNoMem]>;
11871187
def int_experimental_gc_relocate : Intrinsic<[llvm_any_ty],
11881188
[llvm_token_ty, llvm_i32_ty,
11891189
llvm_i32_ty],
1190-
[IntrReadMem, ImmArg<ArgIndex<1>>,
1190+
[IntrNoMem, ImmArg<ArgIndex<1>>,
11911191
ImmArg<ArgIndex<2>>]>;
11921192

11931193
//===------------------------ Coroutine Intrinsics ---------------===//

0 commit comments

Comments
 (0)