[PATCH] D65377: [FunctionAttrs] Annotate intrinsics with nosync

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 30 20:38:53 PDT 2019


jdoerfert added a comment.

I annotated some missing no-syncs when I realized you need to rebase to get the `willreturn` changes. Almost everything that is `willreturn` should be `nosync` too (except the mem* stuff).



================
Comment at: llvm/include/llvm/IR/Intrinsics.td:323
 def int_vaend   : Intrinsic<[], [llvm_ptr_ty], [], "llvm.va_end">;
 
 //===------------------- Garbage Collection Intrinsics --------------------===//
----------------
`no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:567
   [IntrNoMem, IntrSpeculatable, Commutative]
 >;
 
----------------
min/max `no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:580
                                [IntrNoMem, IntrSpeculatable, ImmArg<1>, ImmArg<2>, ImmArg<3>]>,
                                GCCBuiltin<"__builtin_object_size">;
 
----------------
`no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:585
 
 let IntrProperties = [IntrInaccessibleMemOnly] in {
   def int_experimental_constrained_fadd : Intrinsic<[ llvm_anyfloat_ty ],
----------------
`no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:714
 def int_expect : Intrinsic<[llvm_anyint_ty],
   [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>;
 
----------------
`no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:720
 // None of these intrinsics accesses memory at all.
 let IntrProperties = [IntrNoMem, IntrSpeculatable] in {
   def int_bswap: Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>]>;
----------------
`no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:730
 
 let IntrProperties = [IntrNoMem, IntrSpeculatable, ImmArg<1>] in {
   def int_ctlz : Intrinsic<[llvm_anyint_ty], [LLVMMatchType<0>, llvm_i1_ty]>;
----------------
`no-sync`


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1043
-
+                                [], "llvm.clear_cache">; 
 // Intrinsic to detect whether its argument is a constant.
 def int_is_constant : Intrinsic<[llvm_i1_ty], [llvm_any_ty], [IntrNoMem], "llvm.is.constant">;
----------------
unrelated.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65377/new/

https://reviews.llvm.org/D65377





More information about the llvm-commits mailing list