[llvm] 4f5e92c - Mark gc.relocate and gc.result as readnone (try 2)

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 25 14:51:06 PDT 2021


Author: Philip Reames
Date: 2021-03-25T14:50:07-07:00
New Revision: 4f5e92cc0562629ad2180b3ed2b0dad31ef7797c

URL: https://github.com/llvm/llvm-project/commit/4f5e92cc0562629ad2180b3ed2b0dad31ef7797c
DIFF: https://github.com/llvm/llvm-project/commit/4f5e92cc0562629ad2180b3ed2b0dad31ef7797c.diff

LOG: 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

Added: 
    

Modified: 
    llvm/include/llvm/IR/Intrinsics.td

Removed: 
    


################################################################################
diff  --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td
index 801da1fa8588..d2b990691b1b 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<ArgIndex<4>>]>;
 
 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<ArgIndex<1>>,
+                                             [IntrNoMem, ImmArg<ArgIndex<1>>,
                                               ImmArg<ArgIndex<2>>]>;
 
 //===------------------------ Coroutine Intrinsics ---------------===//


        


More information about the llvm-commits mailing list