I was learning about closure conversion in my compilers class a little while ago, and wondered how much of a performance overhead there is to calling a closure vs. a function.
Consider a function returning a closure which takes zero parameters (so no variable captures), and the only difference is that calling said closure would be a jump to an absolute address, as opposed to a relative address for calling a function which is translated to a label.
Does absolute jump have any performance overhead compared to a relative jump? As an example, is bx Rm
slower than b label
in ARM64 processors?