aboutsummaryrefslogtreecommitdiffstats
path: root/bootstrap/lib/stdlib/include/erl_bits.hrl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2019-02-09 15:38:08 +0100
committerBjörn Gustavsson <[email protected]>2019-02-21 14:38:09 +0100
commit547476f4d47c90b3d02314f5f1f327cdacf5e587 (patch)
tree19cd12c66abc86bf6c454fbf52483e65121c1537 /bootstrap/lib/stdlib/include/erl_bits.hrl
parent388fe9d0ef5d2ccae6a9c07da2d36ac568dd250f (diff)
downloadotp-547476f4d47c90b3d02314f5f1f327cdacf5e587.tar.gz
otp-547476f4d47c90b3d02314f5f1f327cdacf5e587.tar.bz2
otp-547476f4d47c90b3d02314f5f1f327cdacf5e587.zip
beam_ssa_type: Use types from some 'lists' functions
This commit lets the compiler know about the return type of some of the functions in the `lists` module. Knowing about the return will allow the compiler to emit fewer type test instructions, and also fewer instructions for throwing `case_clause` or `badmatch` exceptions, thus producing slightly faster and more compact code. This change makes the `lists` module a part of the language, but it could be argued that it already is because several functions (e.g. `member/2` and `keymember/3`) are implemented in as BIFs in the runtime system. Therefore, a user cannot simply change the `lists` module and expect everything to continue working as before. The compiler will now know the return types for the following functions: all/2 any/2 keymember/3 member/2 prefix/2 suffix/2 dropwhile/2 duplicate/2 filter/2 flatten/1 map/2 mapfoldl/3 mapfoldr/3 partition/2 reverse/1 sort/1 splitwith/1 takewhile/1 unzip/1 usort/1 zip/2 zipwith/3
Diffstat (limited to 'bootstrap/lib/stdlib/include/erl_bits.hrl')
0 files changed, 0 insertions, 0 deletions