diff options
author | Björn Gustavsson <[email protected]> | 2015-07-22 10:20:59 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2015-08-21 15:54:39 +0200 |
commit | 02d6135813dc133e018c161d803a642582aac36f (patch) | |
tree | 717f9b370d9e83b846ec9eda28ce3269060eb233 /lib/runtime_tools | |
parent | 7a47b20c3accf323bdbf7bcf9c86fbf8b2c18e20 (diff) | |
download | otp-02d6135813dc133e018c161d803a642582aac36f.tar.gz otp-02d6135813dc133e018c161d803a642582aac36f.tar.bz2 otp-02d6135813dc133e018c161d803a642582aac36f.zip |
beam_block: Improve the move optimizations
Here is an example of a move instruction that could not be optimized
away because the {x,2} register was not killed:
get_tuple_element Reg Pos {x,2}
.
.
.
move {x,2} {y,0}
put_list {x,2} nil Any
We can do the optimization if we replace all occurrences of the {x,2}
register as a source with {y,0}:
get_tuple_element Reg Pos {y,0}
.
.
.
put_list {y,0} nil Dst
Diffstat (limited to 'lib/runtime_tools')
0 files changed, 0 insertions, 0 deletions