aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2016-10-11 08:51:11 +0200
committerBjörn Gustavsson <[email protected]>2016-11-18 11:58:35 +0100
commit9f3c69458c1258c21e44c35d487eceb2394fab74 (patch)
tree0f088111d796f56e4700dae95f044baabb100512 /lib/diameter
parent506f0982825f032b404425e777010459e974596f (diff)
downloadotp-9f3c69458c1258c21e44c35d487eceb2394fab74.tar.gz
otp-9f3c69458c1258c21e44c35d487eceb2394fab74.tar.bz2
otp-9f3c69458c1258c21e44c35d487eceb2394fab74.zip
beam_dead: Remove redundant 'bif' instructions
A 'bif' or 'gc_bif' instruction is redundant if it has the same failure label as a 'jump' instruction immediately following it. There is no need to test for liveness of the destination register, because the code at the failure label cannot safely assume that the destination register is initialized. See the comments in the code for further details. In practice, this optimization will only apply to contrived guards that are almost never used in real applications. The only reason we add this optimization is to help approach the goal of zero tolerance for 'bif' instructions instead of 'test' instructions in guards.
Diffstat (limited to 'lib/diameter')
0 files changed, 0 insertions, 0 deletions