diff options
author | Björn Gustavsson <[email protected]> | 2018-11-01 07:26:11 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-11-06 10:16:53 +0100 |
commit | ff758397d8a2e4cc6038e72bc09bcc063de1b621 (patch) | |
tree | 00fb7268d453abd6af56627cd4837ae6e4d3d5ac /lib/compiler/info | |
parent | 181cfc4ef9d120c1188c8f28f306d7b0f106a80b (diff) | |
download | otp-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/info')
0 files changed, 0 insertions, 0 deletions