aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2012-04-01 09:28:34 +0200
committerBjörn Gustavsson <[email protected]>2015-07-06 13:37:55 +0200
commit6d6fce257cf666113e982c0887121739dff5bf1d (patch)
treeb4aae4f7dd73aefb4c50faba2d2bb5de87ae75ef /erts/emulator/beam
parentfad052472def54fff1268b21313b15bd666437c3 (diff)
downloadotp-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')
-rw-r--r--erts/emulator/beam/ops.tab2
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