back

by jjmarr·5mo ago·view on hn ↗
I'm writing a HIP (amd gpu kernels) linker in my job and the calling convention is contained in a metadata section in the object file.

Whether the array is passed in registers or pointers can be chosen by the compiler based on factors like profile guided optimization. That the ABI isn't stable doesn't matter because the linker handles it for the programmer.

This is all publicly documented in the llvm docs too so you can write your own loader.