aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/beam_trim.erl
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2012-09-05 12:38:45 +0200
committerBjörn Gustavsson <[email protected]>2012-10-10 15:37:49 +0200
commite199e2471a6468a1908638d1b9fb863ea39e4d0e (patch)
tree41a7c081e26843d0638783fcef753d1de9aaabab /lib/compiler/src/beam_trim.erl
parent47d109fc4eda1288e8d21a31b603b3cfc300536a (diff)
downloadotp-e199e2471a6468a1908638d1b9fb863ea39e4d0e.tar.gz
otp-e199e2471a6468a1908638d1b9fb863ea39e4d0e.tar.bz2
otp-e199e2471a6468a1908638d1b9fb863ea39e4d0e.zip
Break apart tail-recursive call instructions
Somewhat reduce the code bloat by eliminating special cases.
Diffstat (limited to 'lib/compiler/src/beam_trim.erl')
-rw-r--r--lib/compiler/src/beam_trim.erl8
1 files changed, 0 insertions, 8 deletions
diff --git a/lib/compiler/src/beam_trim.erl b/lib/compiler/src/beam_trim.erl
index 05ebe917d9..d95db1f681 100644
--- a/lib/compiler/src/beam_trim.erl
+++ b/lib/compiler/src/beam_trim.erl
@@ -195,12 +195,6 @@ remap([{test,Name,Fail,Live,Ss,Dst}|Is], Map, Acc) ->
remap(Is, Map, [I|Acc]);
remap([return|_]=Is, _, Acc) ->
reverse(Acc, Is);
-remap([{call_last,Ar,Name,N}|Is], Map, Acc) ->
- I = {call_last,Ar,Name,Map({frame_size,N})},
- reverse(Acc, [I|Is]);
-remap([{call_ext_last,Ar,Name,N}|Is], Map, Acc) ->
- I = {call_ext_last,Ar,Name,Map({frame_size,N})},
- reverse(Acc, [I|Is]);
remap([{line,_}=I|Is], Map, Acc) ->
remap(Is, Map, [I|Acc]).
@@ -282,8 +276,6 @@ frame_size([{kill,_}|Is], Safe) ->
frame_size([{make_fun2,_,_,_,_}|Is], Safe) ->
frame_size(Is, Safe);
frame_size([{deallocate,N}|_], _) -> N;
-frame_size([{call_last,_,_,N}|_], _) -> N;
-frame_size([{call_ext_last,_,_,N}|_], _) -> N;
frame_size([{line,_}|Is], Safe) ->
frame_size(Is, Safe);
frame_size([_|_], _) -> throw(not_possible).