summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorBjörn Gustavsson <bjorn@erlang.org>2019-09-14 16:39:36 +0200
committerBjörn Gustavsson <bjorn@erlang.org>2019-09-20 10:06:39 +0200
commit39096dc64590ea39d13cc9bcb52bc5c7240a3c69 (patch)
treeadece52919fd33991fd3cdd51be5909498b0bf56 /lib
parent47082ab42ed8abec6ebcf621afe6a92881dcd1f5 (diff)
downloaderlang-39096dc64590ea39d13cc9bcb52bc5c7240a3c69.tar.gz
Eliminate the #k_guard_match{} and #k_guard_break{} records
Diffstat (limited to 'lib')
-rw-r--r--lib/compiler/src/beam_kernel_to_ssa.erl6
-rw-r--r--lib/compiler/src/v3_kernel.erl16
-rw-r--r--lib/compiler/src/v3_kernel.hrl2
-rw-r--r--lib/compiler/src/v3_kernel_pp.erl15
4 files changed, 3 insertions, 36 deletions
diff --git a/lib/compiler/src/beam_kernel_to_ssa.erl b/lib/compiler/src/beam_kernel_to_ssa.erl
index cc4a74373a..3753a8925e 100644
--- a/lib/compiler/src/beam_kernel_to_ssa.erl
+++ b/lib/compiler/src/beam_kernel_to_ssa.erl
@@ -106,8 +106,6 @@ make_failure(Reason, St0) ->
cg(#k_match{body=M,ret=Rs}, St) ->
do_match_cg(M, Rs, St);
-cg(#k_guard_match{body=M,ret=Rs}, St) ->
- do_match_cg(M, Rs, St);
cg(#k_seq{arg=Arg,body=Body}, St0) ->
{ArgIs,St1} = cg(Arg, St0),
{BodyIs,St} = cg(Body, St1),
@@ -139,9 +137,7 @@ cg(#k_return{args=[Ret0]}, St) ->
{[#b_ret{arg=Ret}],St};
cg(#k_break{args=Bs}, #cg{break=Br}=St) ->
Args = ssa_args(Bs, St),
- {[#cg_break{args=Args,phi=Br}],St};
-cg(#k_guard_break{args=Bs}, St) ->
- cg(#k_break{args=Bs}, St).
+ {[#cg_break{args=Args,phi=Br}],St}.
%% match_cg(Matc, [Ret], State) -> {[Ainstr],State}.
%% Generate code for a match.
diff --git a/lib/compiler/src/v3_kernel.erl b/lib/compiler/src/v3_kernel.erl
index 96cc51aee1..42e36c188c 100644
--- a/lib/compiler/src/v3_kernel.erl
+++ b/lib/compiler/src/v3_kernel.erl
@@ -1869,12 +1869,7 @@ ubody(#ivalues{anno=A,args=As}, return, St) ->
{#k_return{anno=A,args=As},Au,St};
ubody(#ivalues{anno=A,args=As}, {break,_Vbs}, St) ->
Au = lit_list_vars(As),
- case is_in_guard(St) of
- true ->
- {#k_guard_break{anno=A,args=As},Au,St};
- false ->
- {#k_break{anno=A,args=As},Au,St}
- end;
+ {#k_break{anno=A,args=As},Au,St};
ubody(E, return, St0) ->
%% Enterable expressions need no trailing return.
case is_enter_expr(E) of
@@ -1992,14 +1987,7 @@ uexpr(#k_bif{anno=A,op=Op,args=As}=Bif, {break,Rs}, St0) ->
uexpr(#k_match{anno=A,vars=Vs,body=B0}, Br, St0) ->
Rs = break_rets(Br),
{B1,Bu,St1} = umatch(B0, Br, St0),
- case is_in_guard(St1) of
- true ->
- {#k_guard_match{anno=A,
- vars=Vs,body=B1,ret=Rs},Bu,St1};
- false ->
- {#k_match{anno=A,
- vars=Vs,body=B1,ret=Rs},Bu,St1}
- end;
+ {#k_match{anno=A,vars=Vs,body=B1,ret=Rs},Bu,St1};
uexpr(#k_receive{anno=A,var=V,body=B0,timeout=T,action=A0}, Br, St0) ->
Rs = break_rets(Br),
Tu = lit_vars(T), %Timeout is atomic
diff --git a/lib/compiler/src/v3_kernel.hrl b/lib/compiler/src/v3_kernel.hrl
index 0a171649be..b68cd61b19 100644
--- a/lib/compiler/src/v3_kernel.hrl
+++ b/lib/compiler/src/v3_kernel.hrl
@@ -64,7 +64,6 @@
-record(k_protected, {anno=[],arg,ret=[],inner}).
-record(k_catch, {anno=[],body,ret=[]}).
--record(k_guard_match, {anno=[],vars,body,ret=[]}).
-record(k_match, {anno=[],vars,body,ret=[]}).
-record(k_alt, {anno=[],first,then}).
-record(k_select, {anno=[],var,types}).
@@ -74,7 +73,6 @@
-record(k_guard_clause, {anno=[],guard,body}).
-record(k_break, {anno=[],args=[]}).
--record(k_guard_break, {anno=[],args=[]}).
-record(k_return, {anno=[],args=[]}).
%%k_get_anno(Thing) -> element(2, Thing).
diff --git a/lib/compiler/src/v3_kernel_pp.erl b/lib/compiler/src/v3_kernel_pp.erl
index 240d17aae2..d99502f571 100644
--- a/lib/compiler/src/v3_kernel_pp.erl
+++ b/lib/compiler/src/v3_kernel_pp.erl
@@ -166,16 +166,6 @@ format_1(#k_match{vars=Vs,body=Bs,ret=Rs}, Ctxt) ->
"end",
format_ret(Rs, Ctxt1)
];
-format_1(#k_guard_match{vars=Vs,body=Bs,ret=Rs}, Ctxt) ->
- Ctxt1 = ctxt_bump_indent(Ctxt, Ctxt#ctxt.item_indent),
- ["guard_match ",
- format_hseq(Vs, ",", ctxt_bump_indent(Ctxt, 6), fun format/2),
- nl_indent(Ctxt1),
- format(Bs, Ctxt1),
- nl_indent(Ctxt),
- "end",
- format_ret(Rs, Ctxt1)
- ];
format_1(#k_alt{first=O,then=T}, Ctxt) ->
Ctxt1 = ctxt_bump_indent(Ctxt, Ctxt#ctxt.item_indent),
["alt",
@@ -319,11 +309,6 @@ format_1(#k_break{args=As}, Ctxt) ->
format_hseq(As, ",", ctxt_bump_indent(Ctxt, 1), fun format/2),
">"
];
-format_1(#k_guard_break{args=As}, Ctxt) ->
- [":<",
- format_hseq(As, ",", ctxt_bump_indent(Ctxt, 1), fun format/2),
- ">:"
- ];
format_1(#k_return{args=As}, Ctxt) ->
["<<",
format_hseq(As, ",", ctxt_bump_indent(Ctxt, 1), fun format/2),