diff --git a/llvm/docs/LangRef.html b/llvm/docs/LangRef.html index 7adb89621f41..c59057918156 100644 --- a/llvm/docs/LangRef.html +++ b/llvm/docs/LangRef.html @@ -7018,8 +7018,9 @@ LLVM.

object's lifetime.

Arguments:
-

The first argument is a the size of the object, or -1 if it is variable - sized. The second argument is a pointer to the object.

+

The first argument is a constant integer representing the size of the + object, or -1 if it is variable sized. The second argument is a pointer to + the object.

Semantics:

This intrinsic indicates that before this point in the code, the value of the @@ -7047,8 +7048,9 @@ LLVM.

object's lifetime.

Arguments:
-

The first argument is a the size of the object, or -1 if it is variable - sized. The second argument is a pointer to the object.

+

The first argument is a constant integer representing the size of the + object, or -1 if it is variable sized. The second argument is a pointer to + the object.

Semantics:

This intrinsic indicates that after this point in the code, the value of the @@ -7075,8 +7077,9 @@ LLVM.

a memory object will not change.

Arguments:
-

The first argument is a the size of the object, or -1 if it is variable - sized. The second argument is a pointer to the object.

+

The first argument is a constant integer representing the size of the + object, or -1 if it is variable sized. The second argument is a pointer to + the object.

Semantics:

This intrinsic indicates that until an llvm.invariant.end that uses @@ -7103,8 +7106,9 @@ LLVM.

Arguments:

The first argument is the matching llvm.invariant.start intrinsic. - The second argument is a the size of the object, or -1 if it is variable - sized and the third argument is a pointer to the object.

+ The second argument is a constant integer representing the size of the + object, or -1 if it is variable sized and the third argument is a pointer + to the object.

Semantics:

This intrinsic indicates that the memory is mutable again.

diff --git a/llvm/lib/VMCore/Verifier.cpp b/llvm/lib/VMCore/Verifier.cpp index 257b2495a8ac..75ea4c3e2f28 100644 --- a/llvm/lib/VMCore/Verifier.cpp +++ b/llvm/lib/VMCore/Verifier.cpp @@ -1578,6 +1578,17 @@ void Verifier::visitIntrinsicFunctionCall(Intrinsic::ID ID, CallInst &CI) { "llvm.stackprotector parameter #2 must resolve to an alloca.", &CI); break; + case Intrinsic::lifetime_start: + case Intrinsic::lifetime_end: + case Intrinsic::invariant_start: + Assert1(isa(CI.getOperand(1)), + "size argument of memory use markers must be a constant integer", + &CI); + break; + case Intrinsic::invariant_end: + Assert1(isa(CI.getOperand(2)), + "llvm.invariant.end parameter #2 must be a constant integer", &CI); + break; } }