summaryrefslogtreecommitdiffstats
path: root/llvm/docs
diff options
context:
space:
mode:
authorArnold Schwaighofer <aschwaighofer@apple.com>2016-09-10 19:42:53 +0000
committerArnold Schwaighofer <aschwaighofer@apple.com>2016-09-10 19:42:53 +0000
commit6c57f4f56dbeea75afe22cd08332d415c2601f37 (patch)
tree45a4b85ad520d90f04f6fbdb6082bbeefd0bdecd /llvm/docs
parentb1c174aa1c2a4a903b728625f646d075a861ece4 (diff)
downloadbcm5719-llvm-6c57f4f56dbeea75afe22cd08332d415c2601f37.tar.gz
bcm5719-llvm-6c57f4f56dbeea75afe22cd08332d415c2601f37.zip
It should also be legal to pass a swifterror parameter to a call as a swifterror
argument. rdar://28233388 llvm-svn: 281147
Diffstat (limited to 'llvm/docs')
-rw-r--r--llvm/docs/LangRef.rst9
1 files changed, 5 insertions, 4 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index b2ac11b5ee1..917a54622a8 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -1126,10 +1126,11 @@ Currently, only the following parameter attributes are defined:
This attribute is motivated to model and optimize Swift error handling. It
can be applied to a parameter with pointer to pointer type or a
pointer-sized alloca. At the call site, the actual argument that corresponds
- to a ``swifterror`` parameter has to come from a ``swifterror`` alloca. A
- ``swifterror`` value (either the parameter or the alloca) can only be loaded
- and stored from, or used as a ``swifterror`` argument. This is not a valid
- attribute for return values and can only be applied to one parameter.
+ to a ``swifterror`` parameter has to come from a ``swifterror`` alloca or
+ the ``swifterror`` parameter of the caller. A ``swifterror`` value (either
+ the parameter or the alloca) can only be loaded and stored from, or used as
+ a ``swifterror`` argument. This is not a valid attribute for return values
+ and can only be applied to one parameter.
These constraints allow the calling convention to optimize access to
``swifterror`` variables by associating them with a specific register at
OpenPOWER on IntegriCloud