aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_utils.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-11-01 07:26:11 +0100
committerBjörn Gustavsson <[email protected]>2018-11-06 10:16:53 +0100
commitff758397d8a2e4cc6038e72bc09bcc063de1b621 (patch)
tree00fb7268d453abd6af56627cd4837ae6e4d3d5ac /lib/compiler/src/beam_utils.erl
parent181cfc4ef9d120c1188c8f28f306d7b0f106a80b (diff)
downloadotp-ff758397d8a2e4cc6038e72bc09bcc063de1b621.tar.gz
otp-ff758397d8a2e4cc6038e72bc09bcc063de1b621.tar.bz2
otp-ff758397d8a2e4cc6038e72bc09bcc063de1b621.zip
beam_trim: Stop using beam_utils:is_not_used/3
Eliminate the use of beam_utils:is_not_used/3 by implementing a simple is_not_used() function in beam_trim itself. The new version actually makes trimming possible in more circumstances, because beam_utils:is_not_used/3 was too conservative for the purpose of stack trimming (it was previously used for optimizations where it was necessary to be more conservative). Alternatives considered: I tried to implement stack trimming in beam_ssa_codegen but it turned out to be a total mess. Not surprisingly, it turns out that an optimization that renumbers Y registers is hard to do on an intermediate representation that still use variables instead of BEAM registers.
Diffstat (limited to 'lib/compiler/src/beam_utils.erl')
0 files changed, 0 insertions, 0 deletions