aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/ops.tab
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2019-03-02 14:05:12 +0100
committerBjörn Gustavsson <[email protected]>2019-03-06 15:42:42 +0100
commit85b3b9d1930b0addad09c56576608c5133a4976f (patch)
treee31bc73a6eb75736fbf109e35eb5ec398dacc858 /erts/emulator/beam/ops.tab
parent131bb83e7ba123d35ea8201832ce2165fc447b10 (diff)
downloadotp-85b3b9d1930b0addad09c56576608c5133a4976f.tar.gz
otp-85b3b9d1930b0addad09c56576608c5133a4976f.tar.bz2
otp-85b3b9d1930b0addad09c56576608c5133a4976f.zip
Optimize hd/1 and tl/1 in guards
Diffstat (limited to 'erts/emulator/beam/ops.tab')
-rw-r--r--erts/emulator/beam/ops.tab3
1 files changed, 3 insertions, 0 deletions
diff --git a/erts/emulator/beam/ops.tab b/erts/emulator/beam/ops.tab
index 3cfc685336..9237fa1069 100644
--- a/erts/emulator/beam/ops.tab
+++ b/erts/emulator/beam/ops.tab
@@ -1035,6 +1035,9 @@ call_bif e
bif0 u$bif:erlang:self/0 Dst=d => self Dst
bif0 u$bif:erlang:node/0 Dst=d => node Dst
+bif1 Fail=f Bif=u$bif:erlang:hd/1 Src=x Dst=x => is_nonempty_list_get_hd Fail Src Dst
+bif1 Fail=f Bif=u$bif:erlang:tl/1 Src=x Dst=x => is_nonempty_list_get_tl Fail Src Dst
+
bif1 Fail Bif=u$bif:erlang:get/1 Src=s Dst=d => gen_get(Src, Dst)
bif2 Jump=j u$bif:erlang:element/2 S1=s S2=xy Dst=d => gen_element(Jump, S1, S2, Dst)