From 9f636de3485c77a42011f05fec5428a4fdd19c30 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 8 Apr 2010 00:53:57 +0000 Subject: [PATCH] document isvolatile etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100737 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/LangRef.html | 68 ++++++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/docs/LangRef.html b/docs/LangRef.html index b7ddc3e17c8..5fe2316f828 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -5894,14 +5894,10 @@ LLVM.

all bit widths however.

-  declare void @llvm.memcpy.i8(i8 * <dest>, i8 * <src>,
-                               i8 <len>, i32 <align>)
-  declare void @llvm.memcpy.i16(i8 * <dest>, i8 * <src>,
-                                i16 <len>, i32 <align>)
-  declare void @llvm.memcpy.i32(i8 * <dest>, i8 * <src>,
-                                i32 <len>, i32 <align>)
-  declare void @llvm.memcpy.i64(i8 * <dest>, i8 * <src>,
-                                i64 <len>, i32 <align>)
+  declare void @llvm.memcpy.p0i8.p0i8.i32(i8 * <dest>, i8 * <src>,
+                                          i32 <len>, i32 <align>, i1 <isvolatile>)
+  declare void @llvm.memcpy.p0i8.p0i8.i64(i8 * <dest>, i8 * <src>,
+                                          i64 <len>, i32 <align>, i1 <isvolatile>)
 
Overview:
@@ -5909,19 +5905,26 @@ LLVM.

source location to the destination location.

Note that, unlike the standard libc function, the llvm.memcpy.* - intrinsics do not return a value, and takes an extra alignment argument.

+ intrinsics do not return a value, takes extra alignment/isvolatile arguments + and the pointers can be in specified address spaces.

Arguments:
+

The first argument is a pointer to the destination, the second is a pointer to the source. The third argument is an integer argument specifying the - number of bytes to copy, and the fourth argument is the alignment of the - source and destination locations.

+ number of bytes to copy, the fourth argument is the alignment of the + source and destination locations, and the fifth is a boolean indicating a + volatile access.

If the call to this intrinsic has an alignment value that is not 0 or 1, then the caller guarantees that both the source and destination pointers are aligned to that boundary.

+

Volatile accesses should not be deleted if dead, but the access behavior is + not very cleanly specified and it is unwise to depend on it.

+
Semantics:
+

The 'llvm.memcpy.*' intrinsics copy a block of memory from the source location to the destination location, which are not allowed to overlap. It copies "len" bytes of memory over. If the argument is known to @@ -5943,14 +5946,10 @@ LLVM.

widths however.

-  declare void @llvm.memmove.i8(i8 * <dest>, i8 * <src>,
-                                i8 <len>, i32 <align>)
-  declare void @llvm.memmove.i16(i8 * <dest>, i8 * <src>,
-                                 i16 <len>, i32 <align>)
-  declare void @llvm.memmove.i32(i8 * <dest>, i8 * <src>,
-                                 i32 <len>, i32 <align>)
-  declare void @llvm.memmove.i64(i8 * <dest>, i8 * <src>,
-                                 i64 <len>, i32 <align>)
+  declare void @llvm.memmove.p0i8.p0i8.i32(i8 * <dest>, i8 * <src>,
+                                           i32 <len>, i32 <align>, i1 <isvolatile>)
+  declare void @llvm.memmove.p0i8.p0i8.i64(i8 * <dest>, i8 * <src>,
+                                           i64 <len>, i32 <align>, i1 <isvolatile>)
 
Overview:
@@ -5960,19 +5959,26 @@ LLVM.

overlap.

Note that, unlike the standard libc function, the llvm.memmove.* - intrinsics do not return a value, and takes an extra alignment argument.

+ intrinsics do not return a value, takes extra alignment/isvolatile arguments + and the pointers can be in specified address spaces.

Arguments:
+

The first argument is a pointer to the destination, the second is a pointer to the source. The third argument is an integer argument specifying the - number of bytes to copy, and the fourth argument is the alignment of the - source and destination locations.

+ number of bytes to copy, the fourth argument is the alignment of the + source and destination locations, and the fifth is a boolean indicating a + volatile access.

If the call to this intrinsic has an alignment value that is not 0 or 1, then the caller guarantees that the source and destination pointers are aligned to that boundary.

+

Volatile accesses should not be deleted if dead, but the access behavior is + not very cleanly specified and it is unwise to depend on it.

+
Semantics:
+

The 'llvm.memmove.*' intrinsics copy a block of memory from the source location to the destination location, which may overlap. It copies "len" bytes of memory over. If the argument is known to be aligned to some @@ -5994,14 +6000,10 @@ LLVM.

widths however.

-  declare void @llvm.memset.i8(i8 * <dest>, i8 <val>,
-                               i8 <len>, i32 <align>)
-  declare void @llvm.memset.i16(i8 * <dest>, i8 <val>,
-                                i16 <len>, i32 <align>)
-  declare void @llvm.memset.i32(i8 * <dest>, i8 <val>,
-                                i32 <len>, i32 <align>)
-  declare void @llvm.memset.i64(i8 * <dest>, i8 <val>,
-                                i64 <len>, i32 <align>)
+  declare void @llvm.memset.p0i8.i32(i8 * <dest>, i8 <val>,
+                                     i32 <len>, i32 <align>, i1 &lgt;isvolatile>)
+  declare void @llvm.memset.p0i8.i64(i8 * <dest>, i8 <val>,
+                                     i64 <len>, i32 <align>, i1 &lgt;isvolatile>)
 
Overview:
@@ -6009,7 +6011,8 @@ LLVM.

particular byte value.

Note that, unlike the standard libc function, the llvm.memset - intrinsic does not return a value, and takes an extra alignment argument.

+ intrinsic does not return a value, takes extra alignment/volatile arguments, + and the destination can be in an arbitrary address space.

Arguments:

The first argument is a pointer to the destination to fill, the second is the @@ -6021,6 +6024,9 @@ LLVM.

then the caller guarantees that the destination pointer is aligned to that boundary.

+

Volatile accesses should not be deleted if dead, but the access behavior is + not very cleanly specified and it is unwise to depend on it.

+
Semantics:

The 'llvm.memset.*' intrinsics fill "len" bytes of memory starting at the destination location. If the argument is known to be aligned to some -- 2.34.1