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.

    An argument or return values that is a homogeneous tuple is sometimes represented as an LLVM vector instead of an LLVM array.

    • - Julia representation of function that is being applied
    • args - pointer to array of pointers to boxes

    The return value is a pointer to a box.

    Tuples are always represented as C arrays.