22 ms·
What's with the snappy tone? >Good luck with inlining and devirtualization across DLLs with AOT. An AOT compiler/linker is unable to inline calls across DLL b
by fluoridation 5y ago
What's with the snappy tone?
>Good luck with inlining and devirtualization across DLLs with AOT.
An AOT compiler/linker is unable to inline calls across DLL boundaries because DLLs present a black-box interface. A JIT compiler would run into the exact same problem when presented with a DLL whose interface it doesn't understand or is incompatible with. If you really want a call inlined the solution is to link the caller and function statically (whether the native code generation happens at compile- or run-time), not to depend on unknown capabilities of the run-time.
>The best toolchains can do both, so it is never a matter of either AOT or JIT.
You're refuting a false dichotomy no one raised.
- pjmlp 5y agoI am sarcastic by nature, that is why. JIT compilers for Java and .NET do inline across shared libraries and devirtualization, including native calls. When people discuss A vs B there is always a dichotomy.