From 4f5e92cc0562629ad2180b3ed2b0dad31ef7797c Mon Sep 17 00:00:00 2001 From: Philip Reames Date: Thu, 25 Mar 2021 14:50:07 -0700 Subject: [PATCH] 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 --- llvm/include/llvm/IR/Intrinsics.td | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td index 801da1f..d2b9906 100644 --- a/llvm/include/llvm/IR/Intrinsics.td +++ b/llvm/include/llvm/IR/Intrinsics.td @@ -1183,11 +1183,11 @@ def int_experimental_gc_statepoint : Intrinsic<[llvm_token_ty], ImmArg>]>; def int_experimental_gc_result : Intrinsic<[llvm_any_ty], [llvm_token_ty], - [IntrReadMem]>; + [IntrNoMem]>; def int_experimental_gc_relocate : Intrinsic<[llvm_any_ty], [llvm_token_ty, llvm_i32_ty, llvm_i32_ty], - [IntrReadMem, ImmArg>, + [IntrNoMem, ImmArg>, ImmArg>]>; //===------------------------ Coroutine Intrinsics ---------------===// -- 2.7.4