[erlang-questions] Why can't HiPE inline functions across modules?

Thomas Lindgren <>
Wed Nov 19 15:05:55 CET 2008




--- On Wed, 11/19/08, Mikael Pettersson <> 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