diff options
author | Björn Gustavsson <[email protected]> | 2016-10-24 06:32:20 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2016-10-24 06:41:59 +0200 |
commit | 8052922d105d236c6cf071333107181fc82c191d (patch) | |
tree | 306089b8b77743e1f9fcff4d96f3fc880dc00ded /lib/erl_interface | |
parent | 055b1b09537b8900489d28ba37078edd7be57d04 (diff) | |
download | otp-8052922d105d236c6cf071333107181fc82c191d.tar.gz otp-8052922d105d236c6cf071333107181fc82c191d.tar.bz2 otp-8052922d105d236c6cf071333107181fc82c191d.zip |
Don't let inline_list_funcs degrade optimizations
83199af0263 refactored sys_core_fold to break out the code for the
inline_lists_funcs option to its own module. Unfortunately, it also
accidentally turned off compile-time evaluation of calls to BIFs with
wholly or partial constant arguments.
For example, the code for the following funtion gets much worse
when inline_list_funcs is used:
b() ->
R0 = #r{},
R1 = setelement(1+2, R0, "deux"),
R2 = setelement(1+3, R1, "trois"),
R3 = setelement(1+5, R2, "cinq"),
R4 = setelement(1+2, R3, "DEUX"),
R4.
ERL-285
Diffstat (limited to 'lib/erl_interface')
0 files changed, 0 insertions, 0 deletions