diff options
author | Björn Gustavsson <[email protected]> | 2019-02-09 15:38:08 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2019-02-21 14:38:09 +0100 |
commit | 547476f4d47c90b3d02314f5f1f327cdacf5e587 (patch) | |
tree | 19cd12c66abc86bf6c454fbf52483e65121c1537 /bootstrap/lib/stdlib/include/erl_bits.hrl | |
parent | 388fe9d0ef5d2ccae6a9c07da2d36ac568dd250f (diff) | |
download | otp-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