I notice that the argument types in ccall are passed as a tuple of
types, whereas the arguments to llvmcall are passed as a tuple type.
That is, there is e.g.
ccall(:foo, Int, (Int, Int), ...)
and
llvmcall("foo", Int, Tuple{Int, Int}, ...)
Why is this? Is this just for historic reasons? Should this be changed?
Note that the llvmcall code receives multiple arguments (%0, %1, ...),
not just a single tuple argument.
-erik
--
Erik Schnetter <[email protected]>
http://www.perimeterinstitute.ca/personal/eschnetter/