diff options
author | Björn Gustavsson <bjorn@erlang.org> | 2012-04-01 09:28:34 +0200 |
---|---|---|
committer | Björn Gustavsson <bjorn@erlang.org> | 2015-07-06 13:37:55 +0200 |
commit | 6d6fce257cf666113e982c0887121739dff5bf1d (patch) | |
tree | b4aae4f7dd73aefb4c50faba2d2bb5de87ae75ef /erts/emulator/beam/ops.tab | |
parent | fad052472def54fff1268b21313b15bd666437c3 (diff) | |
download | otp-6d6fce257cf666113e982c0887121739dff5bf1d.tar.gz otp-6d6fce257cf666113e982c0887121739dff5bf1d.tar.bz2 otp-6d6fce257cf666113e982c0887121739dff5bf1d.zip |
Eliminate prefetch for conditional instructions
Not pre-fetching in conditional instructions (instructions that use
-fail_action) seems to improve performance slightly.
The reason for that is that conditional instructions may jump to the
failure label, wasting the pre-fetched instruction. Another reason
is that that many conditional instructions do a function call, and
the register pressure is therefore high. Avoiding the pre-fetch
may reduce the register pressure and pontentially result in more
efficient code.
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r-- | erts/emulator/beam/ops.tab | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab index bce6bacd5c..3d52da77d3 100644 --- a/erts/emulator/beam/ops.tab +++ b/erts/emulator/beam/ops.tab @@ -477,7 +477,7 @@ i_is_ne_exact_literal f x c i_is_ne_exact_literal f y c is_eq_exact Lbl Y=y X=x => is_eq_exact Lbl X Y -%macro: is_eq_exact EqualExact -fail_action +%macro: is_eq_exact EqualExact -fail_action -pack is_eq_exact f x x is_eq_exact f x y is_eq_exact f s s |