diff options
author | Björn Gustavsson <[email protected]> | 2018-01-04 20:07:09 +0100 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-01-10 11:39:31 +0100 |
commit | 161e67441cca56419fea70edf3ea790aff0f7b32 (patch) | |
tree | 30b4f8ec3f95469c393e05a1b467d4248db2345c /erl-build-tool-vars.sh | |
parent | eb5399aa43a9c5dac82f4d102e8dd8dd5b27a9f8 (diff) | |
download | otp-161e67441cca56419fea70edf3ea790aff0f7b32.tar.gz otp-161e67441cca56419fea70edf3ea790aff0f7b32.tar.bz2 otp-161e67441cca56419fea70edf3ea790aff0f7b32.zip |
beam_type: Enhance coalescing of allocation instructions
An 'allocate' or 'allocate_zero' instruction should not be
shortly followed by a 'test_heap' instruction. For example,
we don't want this type of code:
{allocate_zero,3,4}.
{line,...}.
{test_heap,7,4}.
{bif,element,{f,0},...,...}.
While the code is safe because 'allocate_zero' has initialized the
stack frame, it is wasteful. Also note that the code would become
unsafe if the 'allocate_zero' instruction were to be replaced with
an 'allocate' instruction.
What we want to see is this:
{allocate_heap_zero,3,7,4}.
{line,...}.
{bif,element,{f,0},...,...}.
Diffstat (limited to 'erl-build-tool-vars.sh')
0 files changed, 0 insertions, 0 deletions