diff options
author | Björn Gustavsson <[email protected]> | 2018-08-28 16:11:45 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2018-09-12 14:19:06 +0200 |
commit | c49e888ecdebab753500a1f17c62849a13a18a85 (patch) | |
tree | 7a47399c734a92255f9b28a26b1db60ed6439ee5 /lib/compiler/src/genop.tab | |
parent | 07dd8d0a1632d446f5bc4bde9cc10fb1b112f4a1 (diff) | |
download | otp-c49e888ecdebab753500a1f17c62849a13a18a85.tar.gz otp-c49e888ecdebab753500a1f17c62849a13a18a85.tar.bz2 otp-c49e888ecdebab753500a1f17c62849a13a18a85.zip |
beam_ssa_opt: Add a pass for coalescing phi nodes
Nested cases can led to code such as this:
10:
_1 = phi {literal value1, label 8}, {Var, label 9}
br 11
11:
_2 = phi {_1, label 10}, {literal false, label 3}
The phi nodes can be coalesced like this:
11:
_2 = phi {literal value1, label 8}, {Var, label 9},
{literal false, label 3}
Coalescing can help other optimizations, and can in some cases reduce
register shuffling (if the phi variables for two phi nodes happens to
be allocated to different registers).
Diffstat (limited to 'lib/compiler/src/genop.tab')
0 files changed, 0 insertions, 0 deletions