5 ms·
Julia does at least inline fairly aggressively, and it respects the `@inline` macro so long as the call is type stable. In practice, it may often inline more a
by celrod 6y ago
Julia does at least inline fairly aggressively, and it respects the `@inline` macro so long as the call is type stable.
In practice, it may often inline more aggressively as there aren't any boundaries that will prevent inlining.
If you write function `foo` calling `buz` from package `Buz.jl`, which calls `bar` from package `Bar.jl`, `bar` can be inlined into `foo`.
You can think of it as always have `-lto`, because the source of the Julia functions you're calling will always be available to the compiler and thus subject to (potentially aggressive) optimization.