summaryrefslogtreecommitdiffstats
path: root/llvm/docs/LangRef.rst
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2016-05-12 01:17:38 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2016-05-12 01:17:38 +0000
commite0aa414acf9bb455376df4579e244dcca1434e1f (patch)
tree8104efd7ced9cab63a9c566a3dcf0fe886eb3756 /llvm/docs/LangRef.rst
parentfe7bba4ee416ffcc1a5439700b230aa94c106957 (diff)
downloadbcm5719-llvm-e0aa414acf9bb455376df4579e244dcca1434e1f.tar.gz
bcm5719-llvm-e0aa414acf9bb455376df4579e244dcca1434e1f.zip
All llvm.deoptimize declarations must use the same calling convention
This new verifier rule lets us unambigously pick a calling convention when creating a new declaration for `@llvm.experimental.deoptimize.<ty>`. It is also congruent with our lowering strategy -- since all calls to `@llvm.experimental.deoptimize` are lowered to calls to `__llvm_deoptimize`, it is reasonable to enforce a unique calling convention. Some of the tests that were breaking this verifier rule have had to be split up into different .ll files. The inliner was violating this rule as well, and has been fixed to avoid producing invalid IR. llvm-svn: 269261
Diffstat (limited to 'llvm/docs/LangRef.rst')
-rw-r--r--llvm/docs/LangRef.rst3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst
index 39b119cfc8d..2fa6293744f 100644
--- a/llvm/docs/LangRef.rst
+++ b/llvm/docs/LangRef.rst
@@ -12339,6 +12339,9 @@ The inliner composes the ``"deopt"`` continuations of the caller into the
``"deopt"`` continuations present in the inlinee, and also updates calls to this
intrinsic to return directly from the frame of the function it inlined into.
+All declarations of ``@llvm.experimental.deoptimize`` must share the
+same calling convention.
+
.. _deoptimize_lowering:
Lowering:
OpenPOWER on IntegriCloud