[PATCH] D64904: [FunctionAttrs] Annotate "willreturn" for floating point and bit manipulation intrinsics.

Johannes Doerfert via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 18 10:59:50 PDT 2019


jdoerfert added a comment.

More opportunities for `willreturn`.



================
Comment at: llvm/include/llvm/IR/Intrinsics.td:456
                 [ IntrInaccessibleMemOrArgMemOnly, ReadOnly<0>, NoCapture<0>,
                   ImmArg<1>, ImmArg<2>]>;
 def int_pcmarker      : Intrinsic<[], [llvm_i32_ty]>;
----------------
`willreturn` (among other properties)


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:463
 // control dependencies will be maintained.
 def int_assume        : Intrinsic<[], [llvm_i1_ty], []>;
 
----------------
`willreturn` (among other properties)


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:507
                             [IntrArgMemOnly, NoCapture<0>, WriteOnly<0>,
                             ImmArg<3>]>;
 
----------------
`willreturn` (among other properties) for all three above.


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:585
 
 let IntrProperties = [IntrInaccessibleMemOnly] in {
   def int_experimental_constrained_fadd : Intrinsic<[ llvm_anyfloat_ty ],
----------------
`willreturn` (among other properties)


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:714
 def int_expect : Intrinsic<[llvm_anyint_ty],
   [LLVMMatchType<0>, LLVMMatchType<0>], [IntrNoMem]>;
 
----------------
`willreturn` (among other properties)


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:757
                                        [llvm_metadata_ty]>;
 }
 
----------------
`willreturn` (among other properties)


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:814
                                         [IntrInaccessibleMemOnly, IntrNoDuplicate],
                                         "llvm.codeview.annotation">;
 
----------------
`willreturn` (among other properties) the 4 above


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:827
 
 //===------------------------ Overflow Intrinsics -------------------------===//
 //
----------------
`willreturn` (among other properties) for the below intrinsics:
overflow, saturation, fix point, and combinations thereof


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:924
                                           [LLVMMatchType<0>],
                                           [IntrSpeculatable, IntrNoMem]>;
 
----------------
`willreturn` (among other properties) all 6 above


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1024
 // NOP: calls/invokes to this intrinsic are removed by codegen
 def int_donothing : Intrinsic<[], [], [IntrNoMem]>;
 
----------------
`willreturn` (among other properties) 


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1033
 // Intrisics to support half precision floating point format
 let IntrProperties = [IntrNoMem] in {
 def int_convert_to_fp16   : Intrinsic<[llvm_i16_ty], [llvm_anyfloat_ty]>;
----------------
`willreturn` (among other properties) 


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1044
 // Intrinsic to detect whether its argument is a constant.
 def int_is_constant : Intrinsic<[llvm_i1_ty], [llvm_any_ty], [IntrNoMem], "llvm.is.constant">;
 
----------------
`willreturn` (among other properties) 


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1090
                                       [llvm_ptr_ty, llvm_i32_ty, llvm_metadata_ty],
                                       [IntrNoMem]>;
 
----------------
`willreturn` (among other properties) for 8 above.


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1142
     : Intrinsic<[], [ llvm_anyptr_ty, llvm_i8_ty, llvm_anyint_ty, llvm_i32_ty ],
                 [ IntrArgMemOnly, NoCapture<0>, WriteOnly<0>, ImmArg<3> ]>;
 
----------------
`willreturn` (among other properties) the 3 above


================
Comment at: llvm/include/llvm/IR/Intrinsics.td:1144
 
 //===------------------------ Reduction Intrinsics ------------------------===//
 //
----------------
`willreturn` (among other properties) all reductions


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

https://reviews.llvm.org/D64904





More information about the llvm-commits mailing list