diff --git a/docs/LangRef.html b/docs/LangRef.html index 1b3f4f4afe9..05f4e66f882 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -210,6 +210,10 @@
  • llvm.var.annotation' Intrinsic
  • +
      +
    1. + llvm.annotation' Intrinsic
    2. +
    @@ -5263,6 +5267,39 @@ This can be useful for special purpose optimizations that want to look for these generation and optimization. + +
    + 'llvm.annotation' Intrinsic +
    + +
    + +
    Syntax:
    +
    +  declare i32 @llvm.annotation(i32 <val>, i8* <str>, i8* <str>, i32  <int> )
    +
    + +
    Overview:
    +

    This is an overloaded intrinsic. You can use 'llvm.annotation' on +any integer bit width. Not all targets support all bit widths however. +

    + +
    Arguments:
    + +

    +The first argument is an integer value (result of some expression), +the second is a pointer to a global string, the third is a pointer to a global +string which is the source file name, and the last argument is the line number. +

    + +
    Semantics:
    + +

    +This intrinsic allows annotations to be put on arbitrary expressions +with arbitrary strings. This can be useful for special purpose optimizations +that want to look for these annotations. These have no other defined use, they +are ignored by code generation and optimization. +


    diff --git a/include/llvm/Intrinsics.td b/include/llvm/Intrinsics.td index f7b46b2e6c1..9d3b1804faf 100644 --- a/include/llvm/Intrinsics.td +++ b/include/llvm/Intrinsics.td @@ -240,6 +240,10 @@ def int_eh_dwarf_cfa : Intrinsic<[llvm_ptr_ty, llvm_i32_ty]>; def int_var_annotation : Intrinsic<[llvm_void_ty, llvm_ptr_ty, llvm_ptr_ty, llvm_ptr_ty, llvm_i32_ty], [], "llvm.var.annotation">; + +def int_annotation : Intrinsic<[llvm_anyint_ty, LLVMMatchType<0>, llvm_ptr_ty, + llvm_ptr_ty, llvm_i32_ty], + [], "llvm.annotation">; //===------------------------ Trampoline Intrinsics -----------------------===// //