diff --git a/docs/LangRef.html b/docs/LangRef.html index c615bb3c501..655738ccd68 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -1068,16 +1068,14 @@ instruction.

Examples:
- - + + + + +
- { i32, i32, i32 }
- { float, i32 (i32) * }
-
- a triple of three i32 values
- A pair, where the first element is a float and the second element - is a pointer to a function - that takes an i32, returning an i32.
-
{ i32, i32, i32 }A triple of three i32 values
{ float, i32 (i32) * }A pair, where the first element is a float and the + second element is a pointer to a + function that takes an i32, returning + an i32.
@@ -1100,16 +1098,14 @@ instruction.

Examples:
- - + + + + +
- < { i32, i32, i32 } >
- < { float, i32 (i32) * } >
-
- a triple of three i32 values
- A pair, where the first element is a float and the second element - is a pointer to a function - that takes an i32, returning an i32.
-
< { i32, i32, i32 } >A triple of three i32 values
< { float, i32 (i32) * } >A pair, where the first element is a float and the + second element is a pointer to a + function that takes an i32, returning + an i32.
@@ -1302,7 +1298,7 @@ and smaller aggregate constants.

Vector constants are represented with notation similar to vector type definitions (a comma separated list of elements, surrounded by less-than/greater-than's (<>)). For example: "< i32 42, - i32 11, i32 74, i32 100 >". VEctor constants must have ". Vector constants must have vector type, and the number and types of elements must match those specified by the type.
@@ -1400,12 +1396,12 @@ following is the syntax for constant expressions:

uitofp ( CST to TYPE )
Convert an unsigned integer constant to the corresponding floating point constant. TYPE must be floating point. CST must be of integer type. If the - value won't fit in the floating point type, the results are undefined.
+ value won't fit in the floating point type, precision may be lost.
sitofp ( CST to TYPE )
Convert a signed integer constant to the corresponding floating point constant. TYPE must be floating point. CST must be of integer type. If the - value won't fit in the floating point type, the results are undefined.
+ value won't fit in the floating point type, precision may be lost.
ptrtoint ( CST to TYPE )
Convert a pointer typed constant to the corresponding integer constant @@ -1746,10 +1742,10 @@ exception. Additionally, this is important for implementation of
Example:
-  %retval = invoke i32 %Test(i32 15)             to label %Continue
-              unwind label %TestCleanup     ; {i32}:retval set
-  %retval = invoke coldcc i32 %Test(i32 15)             to label %Continue
-              unwind label %TestCleanup     ; {i32}:retval set
+  %retval = invoke i32 %Test(i32 15) to label %Continue
+              unwind label %TestCleanup              ; {i32}:retval set
+  %retval = invoke coldcc i32 %Test(i32 15) to label %Continue
+              unwind label %TestCleanup              ; {i32}:retval set
 
@@ -1950,10 +1946,10 @@ Instruction

The 'fdiv' instruction returns the quotient of its two operands.

Arguments:
-

The two arguments to the 'div' instruction must be +

The two arguments to the 'fdiv' instruction must be floating point values. Both arguments must have identical types. This instruction can also take vector -versions of the values in which case the elements must be floating point.

+versions of floating point values.

Semantics:

The value produced is the floating point quotient of the two operands.

Example:
@@ -2075,7 +2071,7 @@ Instruction
Overview:

The 'lshr' instruction (logical shift right) returns the first -operand shifted to the right a specified number of bits.

+operand shifted to the right a specified number of bits with zero fill.

Arguments:

Both arguments to the 'lshr' instruction must be the same @@ -2106,7 +2102,7 @@ Instruction

Overview:

The 'ashr' instruction (arithmetic shift right) returns the first -operand shifted to the right a specified number of bits.

+operand shifted to the right a specified number of bits with sign extension.

Arguments:

Both arguments to the 'ashr' instruction must be the same @@ -2299,7 +2295,7 @@ identical types.

LLVM supports several instructions to represent vector operations in a -target-independent manner. This instructions cover the element-access and +target-independent manner. These instructions cover the element-access and vector-specific operations needed to process vectors effectively. While LLVM does directly support these vector operations, many sophisticated algorithms will want to use target-specific intrinsics to take full advantage of a specific @@ -2447,7 +2443,7 @@ operand may be undef if performing a shuffle from only one vector.

   %result = shufflevector <4 x i32> %v1, <4 x i32> %v2, 
-                          <4 x i32> <i32 0, i32 4, i32 1, i32 5>    ; yields <4 x i32>
+                          <4 x i32> <i32 0, i32 4, i32 1, i32 5>  ; yields <4 x i32>
   %result = shufflevector <4 x i32> %v1, <4 x i32> undef, 
                           <4 x i32> <i32 0, i32 1, i32 2, i32 3>  ; yields <4 x i32> - Identity shuffle.
 
@@ -2569,8 +2565,8 @@ after this instruction executes.

Overview:
-

The 'alloca' instruction allocates memory on the current -stack frame of the procedure that is live until the current function +

The 'alloca' instruction allocates memory on the stack frame of the +currently executing function, to be automatically released when this function returns to its caller.

Arguments:
@@ -2641,7 +2637,7 @@ Instruction

The 'store' instruction is used to write to memory.

Arguments:

There are two arguments to the 'store' instruction: a value -to store and an address in which to store it. The type of the '<pointer>' +to store and an address at which to store it. The type of the '<pointer>' operand must be a pointer to the type of the '<value>' operand. If the store is marked as volatile, then the optimizer is not allowed to modify the number or order of execution of @@ -2725,7 +2721,7 @@ compiled to LLVM:

on the pointer type that is being indexed into. Pointer and array types can use a 32-bit or 64-bit integer type but the value will always be sign extended -to 64-bits. Structure types, require i32 +to 64-bits. Structure types require i32 constants.

In the example above, the first index is indexing into the '%ST*' @@ -2745,8 +2741,8 @@ the LLVM code for the given testcase is equivalent to:

   define i32* %foo(%ST* %s) {
     %t1 = getelementptr %ST* %s, i32 1                        ; yields %ST*:%t1
-    %t2 = getelementptr %ST* %t1, i32 0, i32 2               ; yields %RT*:%t2
-    %t3 = getelementptr %RT* %t2, i32 0, i32 1               ; yields [10 x [20 x i32]]*:%t3
+    %t2 = getelementptr %ST* %t1, i32 0, i32 2                ; yields %RT*:%t2
+    %t3 = getelementptr %RT* %t2, i32 0, i32 1                ; yields [10 x [20 x i32]]*:%t3
     %t4 = getelementptr [10 x [20 x i32]]* %t3, i32 0, i32 5  ; yields [20 x i32]*:%t4
     %t5 = getelementptr [20 x i32]* %t4, i32 0, i32 13        ; yields i32*:%t5
     ret i32* %t5
@@ -3073,7 +3069,7 @@ be a floating point type.

Semantics:

The 'uitofp' instruction interprets its operand as an unsigned integer quantity and converts it to the corresponding floating point value. If -the value cannot fit in the floating point value, the results are undefined.

+the value cannot fit in the floating point value, precision may be lost.

Example:
@@ -3106,7 +3102,7 @@ a floating point type.

Semantics:

The 'sitofp' instruction interprets its operand as a signed integer quantity and converts it to the corresponding floating point value. If -the value cannot fit in the floating point value, the results are undefined.

+the value cannot fit in the floating point value, precision may be lost.

Example: