[erlang-bugs] Native compilation hangs with rm-reverse-eta-conversion
Kostis Sagonas
kostis@REDACTED
Tue Mar 12 20:07:46 CET 2013
On 01/23/2013 12:49 PM, Anthony Ramine wrote:
> Hi,
>
> The bytecode invariant that I broke is the fact that a function cannot be used as
> a closure and as a normal function both at the same time, thus the eta-abstraction
> is needed by HiPE.
>
> Fredrik, for the time being you should probably revert rm-reverse-eta-conversion
> because I don't think I'll be able to make HiPE work with the eta-abstraction in
> that much time.
>
> Kostis, could you give me directions on how to make HiPE not need the intermediate
> closures when doing fun Name/Arity?
Thanks to Anthony repeatedly prompting me to look into this and sending
me a minimal example to test and to Bjorn Gustavsson for checking the
code of hipe_icode_coordinator, today I adapted the assumptions of the
native code compiler and simplified the code that computes escaping
functions. The following hipe patch should be included in OTP:
git fetch git://github.com/kostis/otp.git hipe-cleanup-escaping
After its inclusion, Anthony's patch that removes the automatic
eta-abstraction for function references from the BEAM compiler can
probably be included without any problems.
Kostis
More information about the erlang-bugs
mailing list