aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys/unix/sys_uds.c
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2019-01-29 20:35:45 +0100
committerBjörn Gustavsson <[email protected]>2019-02-01 12:44:32 +0100
commitc86c4dd18da287e439770c47fa384d438c134f12 (patch)
tree0508d346806c48ad1f43a78e4be67d5d2e8a606b /erts/emulator/sys/unix/sys_uds.c
parent9a190cae9bd7213ff018e17a909efbab04a14a8c (diff)
downloadotp-c86c4dd18da287e439770c47fa384d438c134f12.tar.gz
otp-c86c4dd18da287e439770c47fa384d438c134f12.tar.bz2
otp-c86c4dd18da287e439770c47fa384d438c134f12.zip
Speed up beam_ssa_dead when there are many sequential blocks
beam_ssa_dead could be very slow if there were many blocks connected with unconditional branches (for example, if a block had contained many `call` instructions and been split by ssa_opt_split_blocks). It turns out that `comb_get_sw/3` does an unnecessary (and perhaps incorrect) recursive call to itself when the terminator for the block is an unconditional branch. Removing the recursive call does not disable any optimizations, but will be much faster if there are many blocks connected with unconditional branches. Reported-by: Michał Muskała
Diffstat (limited to 'erts/emulator/sys/unix/sys_uds.c')
0 files changed, 0 insertions, 0 deletions