aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src
diff options
context:
space:
mode:
authorBjörn-Egil Dahlberg <[email protected]>2016-07-15 12:33:41 +0200
committerBjörn-Egil Dahlberg <[email protected]>2016-07-15 12:33:41 +0200
commit01a46375d8aae78d4ad01c043b554e58c5b40768 (patch)
treef705d1f2d4abafb9739831e9683e60feaad6a2f7 /lib/compiler/src
parentd050a82a419231e8435e6c3e2e98972c447b8ce6 (diff)
parent440445cfd0cbeee8f2bb86b99b6d16caf7a5c9c7 (diff)
downloadotp-01a46375d8aae78d4ad01c043b554e58c5b40768.tar.gz
otp-01a46375d8aae78d4ad01c043b554e58c5b40768.tar.bz2
otp-01a46375d8aae78d4ad01c043b554e58c5b40768.zip
Merge branch 'maint'
Conflicts: OTP_VERSION
Diffstat (limited to 'lib/compiler/src')
-rw-r--r--lib/compiler/src/beam_dead.erl7
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/compiler/src/beam_dead.erl b/lib/compiler/src/beam_dead.erl
index b01f58f683..6f6d742293 100644
--- a/lib/compiler/src/beam_dead.erl
+++ b/lib/compiler/src/beam_dead.erl
@@ -272,17 +272,14 @@ backward([{jump,{f,To}}=J|[{bif,Op,_,Ops,Reg}|Is]=Is0], D, Acc) ->
catch
throw:not_possible -> backward(Is0, D, [J|Acc])
end;
-backward([{test,bs_start_match2,F,Live,[R,_]=Args,Ctxt}|Is], D,
+backward([{test,bs_start_match2,F,_,[R,_],Ctxt}=I|Is], D,
[{test,bs_match_string,F,[Ctxt,Bs]},
{test,bs_test_tail2,F,[Ctxt,0]}|Acc0]=Acc) ->
- {f,To0} = F,
- To = shortcut_bs_start_match(To0, R, D),
case beam_utils:is_killed(Ctxt, Acc0, D) of
true ->
- Eq = {test,is_eq_exact,{f,To},[R,{literal,Bs}]},
+ Eq = {test,is_eq_exact,F,[R,{literal,Bs}]},
backward(Is, D, [Eq|Acc0]);
false ->
- I = {test,bs_start_match2,{f,To},Live,Args,Ctxt},
backward(Is, D, [I|Acc])
end;
backward([{test,bs_start_match2,{f,To0},Live,[Src|_]=Info,Dst}|Is], D, Acc) ->