[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