Index: docs/LangRef.html =================================================================== --- docs/LangRef.html +++ docs/LangRef.html @@ -330,6 +330,8 @@
  • 'llvm.objectsize' Intrinsic
  • + 'llvm.invariant' Intrinsic
  • +
  • 'llvm.expect' Intrinsic
  • 'llvm.donothing' Intrinsic
  • @@ -9057,6 +9059,34 @@

    + 'llvm.invariant' Intrinsic +

    + +
    + +
    Syntax:
    +
    +  declare void @llvm.invariant(i1 %cond)
    +
    + +
    Overview:
    +

    The 'llvm.invariant' intrinsic allows the optimizer to assume + that the provided condition is true. This information can then be used + in simplifying other parts of the code.

    + +
    Arguments:
    + +

    The condition which the optimizer may assume is always true.

    + +
    Semantics:
    + +

    The intrinsic allows the optimizer to assume that the provided condition is + always true. No code is generated for this intrinsic, and instructions that + contribute only to the provided condition are not used for code generation.

    +
    + + +

    'llvm.donothing' Intrinsic

    Index: include/llvm/Intrinsics.td =================================================================== --- include/llvm/Intrinsics.td +++ include/llvm/Intrinsics.td @@ -234,6 +234,8 @@ def int_readcyclecounter : Intrinsic<[llvm_i64_ty]>; +def int_invariant : Intrinsic<[], [llvm_i1_ty], [IntrNoMem]>; + // Stack Protector Intrinsic - The stackprotector intrinsic writes the stack // guard to the correct place on the stack frame. def int_stackprotector : Intrinsic<[], [llvm_ptr_ty, llvm_ptrptr_ty], []>;