aboutsummaryrefslogtreecommitdiffstats
path: root/lib/hipe/icode/hipe_icode_primops.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2018-01-24 12:33:32 +0100
committerGitHub <[email protected]>2018-01-24 12:33:32 +0100
commit4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd (patch)
treeb0f72307cfeb11a886820845e07f0c67d870b9dc /lib/hipe/icode/hipe_icode_primops.erl
parent8e66754dac8963a6631c850b1eb63b27408259a2 (diff)
parent9b0122b65bdcafbae2a3cfd3299903da0948acab (diff)
downloadotp-4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd.tar.gz
otp-4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd.tar.bz2
otp-4571e13801c53e1c2bbf744ab178a4a0f9f0a7cd.zip
Merge pull request #1682 from bjorng/bjorn/optimize-unbuilt-stacktrace
Don't build a stacktrace if it's only passed to erlang:raise/3
Diffstat (limited to 'lib/hipe/icode/hipe_icode_primops.erl')
-rw-r--r--lib/hipe/icode/hipe_icode_primops.erl5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/hipe/icode/hipe_icode_primops.erl b/lib/hipe/icode/hipe_icode_primops.erl
index 941516e8b1..a1f1128124 100644
--- a/lib/hipe/icode/hipe_icode_primops.erl
+++ b/lib/hipe/icode/hipe_icode_primops.erl
@@ -236,6 +236,7 @@ fails({hipe_bs_primop, {bs_append, _, _, _, _}}) -> true;
fails({hipe_bs_primop, {bs_private_append, _, _}}) -> true;
fails({hipe_bs_primop, bs_init_writable}) -> true;
fails(build_stacktrace) -> false;
+fails(raw_raise) -> true;
fails(#mkfun{}) -> false;
fails(#unsafe_element{}) -> false;
fails(#unsafe_update_element{}) -> false;
@@ -735,6 +736,8 @@ type(Primop, Args) ->
erl_types:t_any();
build_stacktrace ->
erl_types:t_list();
+ raw_raise ->
+ erl_types:t_atom();
{M, F, A} ->
erl_bif_types:type(M, F, A, Args)
end.
@@ -909,6 +912,8 @@ type(Primop) ->
%%% Other
build_stacktrace ->
erl_types:t_any();
+ raw_raise ->
+ erl_types:t_any();
#closure_element{} ->
erl_types:t_any();
redtest ->