diff options
author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-05-12 01:17:38 +0000 |
---|---|---|
committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-05-12 01:17:38 +0000 |
commit | e0aa414acf9bb455376df4579e244dcca1434e1f (patch) | |
tree | 8104efd7ced9cab63a9c566a3dcf0fe886eb3756 /llvm/docs/LangRef.rst | |
parent | fe7bba4ee416ffcc1a5439700b230aa94c106957 (diff) | |
download | bcm5719-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.rst | 3 |
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: |