Skip to content

Commit

Permalink
Update LangRef to emphasize the difference between "coldcc" and "pres…
Browse files Browse the repository at this point in the history
…erve_mostcc".

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199521 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
ributzka committed Jan 17, 2014
1 parent 6438260 commit dbee8c1
Showing 1 changed file with 9 additions and 2 deletions.
11 changes: 9 additions & 2 deletions docs/LangRef.rst
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,8 @@ added in the future:
so that the call does not break any live ranges in the caller side.
This calling convention does not support varargs and requires the
prototype of all callees to exactly match the prototype of the
function definition.
function definition. Furthermore the inliner doesn't consider such function
calls for inlining.
"``cc 10``" - GHC convention
This calling convention has been implemented specifically for use by
the `Glasgow Haskell Compiler (GHC) <http://www.haskell.org/ghc>`_.
Expand Down Expand Up @@ -375,7 +376,13 @@ added in the future:
that have a hot path and a cold path. The hot path is usually a small piece
of code that doesn't many registers. The cold path might need to call out to
another function and therefore only needs to preserve the caller-saved
registers, which haven't already been saved by the caller.
registers, which haven't already been saved by the caller. The
`PreserveMost` calling convention is very similar to the `cold` calling
convention in terms of caller/callee-saved registers, but they are used for
different types of function calls. `coldcc` is for function calls that are
rarely executed, whereas `preserve_mostcc` function calls are intended to be
on the hot path and definitely executed a lot. Furthermore `preserve_mostcc`
doesn't prevent the inliner from inlining the function call.

This calling convention will be used by a future version of the ObjectiveC
runtime and should therefore still be considered experimental at this time.
Expand Down

0 comments on commit dbee8c1

Please sign in to comment.