aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_ssa_pp.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-08-28 16:11:45 +0200
committerBjörn Gustavsson <[email protected]>2018-09-12 14:19:06 +0200
commitc49e888ecdebab753500a1f17c62849a13a18a85 (patch)
tree7a47399c734a92255f9b28a26b1db60ed6439ee5 /lib/compiler/src/beam_ssa_pp.erl
parent07dd8d0a1632d446f5bc4bde9cc10fb1b112f4a1 (diff)
downloadotp-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/beam_ssa_pp.erl')
0 files changed, 0 insertions, 0 deletions