aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_dead.erl
diff options
context:
space:
mode:
authorMichal Muskala <[email protected]>2017-04-19 12:50:04 +0200
committerMichal Muskala <[email protected]>2017-04-19 18:50:47 +0200
commit0377592dc2238f561291be854d2ce859dd9a5fb1 (patch)
tree3441115836c51f27a7a53a5df88fa86ae2164421 /lib/compiler/src/beam_dead.erl
parent6124bfc9b61227a5e82f1d7273d0895e909aac6e (diff)
downloadotp-0377592dc2238f561291be854d2ce859dd9a5fb1.tar.gz
otp-0377592dc2238f561291be854d2ce859dd9a5fb1.tar.bz2
otp-0377592dc2238f561291be854d2ce859dd9a5fb1.zip
Enhance type-driven optimisation in beam_type.erl
* kill type information only for affected registers in get_map_elements * bs_get_utf* will produce integers of unicode range This optimises code created by Elixir compiler, where: <<x::utf8,_::binary>> when x in 1..10 will compile the guard to is_integer(X) andalso X >= 1 andalso X =< 10 This allows us to eliminate the is_integer check. * bs_get_float will produce a float * allow to carry type information over other bs instructions killing only the affected registers * kill only x registers after call_fun and apply instructions
Diffstat (limited to 'lib/compiler/src/beam_dead.erl')
0 files changed, 0 insertions, 0 deletions