[erlang-questions] Why can't HiPE inline functions across modules?
Thomas Lindgren
thomasl_erlang@REDACTED
Wed Nov 19 15:05:55 CET 2008
--- On Wed, 11/19/08, Mikael Pettersson <mikpe@REDACTED> wrote:
> For better or worse, HiPE is not structured as a typical
> Java JIT,
> but more as a traditional ahead-of-time compiler (though it
> can be
> invoked at runtime in a running system). One of its current
> limitations
> is that it does not retain the native code's original
> Erlang/BEAM code
> at runtime, and that makes runtime recompilation of native
> code impossible.
>
> This can be overcome by adding that metadata and code to
> process it
> at various runtime events, but that would require a
> substantial
> investment of money and manpower, both of which are in
> short supply now.
The beam code of a module should (usually) be available for loading via the code server, though it might be useful to be less heavy-weight than reading and parsing the whole module.
Also, one further important piece of infrastructure would be a (preferrably flexible) profiling framework to drive reoptimization.
(Those interested might note that Hipe's predecessor Jerico actually had some of these features. See e.g. section 4.4 of the following:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.33.5232&rep=rep1&type=pdf
)
Best,
Thomas
More information about the erlang-questions
mailing list