Comment by gpderetta
1 year ago
The tail call interpreter is also calling through a function pointer. The cost here is purely the call+ret overhead, which can be non-trivial when it is per opcode; on some micro-architectures there is also a limit on taken jumps per cycle (sometimes as low as one taken jump every other cycle).
edit: trampolining would also collapse all indirect jumps to a single source address which is not ideal for branch prediction.
No comments yet
Contribute on Hacker News ↗