diff --git a/docs/LangRef.html b/docs/LangRef.html index b4dc3f975f1..41b1f6d5a30 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -687,27 +687,29 @@ a power of 2.

type so two functions types that differ only by the parameter attributes are different function types.

-

Parameter attributes consist of an at sign (@) followed by either a single - keyword or a comma separate list of keywords enclosed in parentheses. For +

Parameter attributes are simple keywords that follow the type specified. If + multiple parameter attributes are needed, they are space separated. For example:

-    %someFunc = i16 @zext (i8 @(sext) %someParam)
-    %someFunc = i16 @zext (i8 @zext %someParam)
+ %someFunc = i16 (i8 sext %someParam) zext + %someFunc = i16 (i8 zext %someParam) zext

Note that the two function types above are unique because the parameter has - a different attribute (@sext in the first one, @zext in the second).

+ a different attribute (sext in the first one, zext in the second). Also note + that the attribute for the function result (zext) comes immediately after the + argument list.

Currently, only the following parameter attributes are defined:

-
@zext
+
zext
This indicates that the parameter should be zero extended just before a call to this function.
-
@sext
+
sext
This indicates that the parameter should be sign extended just before a call to this function.

The current motivation for parameter attributes is to enable the sign and zero extend information necessary for the C calling convention to be passed - from the front end to LLVM. The @zext and @sext attributes + from the front end to LLVM. The zext and sext attributes are used by the code generator to perform the required extension. However, parameter attributes are an orthogonal feature to calling conventions and may be used for other purposes in the future.