Calling Conventions
The native calling convention is designed for fast non-generic calls. It usually uses a specialized signature.
- LLVM ghosts (zero-length types) are omitted.
- LLVM scalars and vectors are passed by value.
The JL Call convention is for builtins and generic dispatch. Hand-written functions using this convention are declared via the macro JL_CALLABLE
. The convention uses exactly 3 parameters:
- - Julia representation of function that is being applied
args
- pointer to array of pointers to boxes
Tuples are always represented as C arrays.