diff options
author | Björn Gustavsson <[email protected]> | 2012-09-05 12:38:45 +0200 |
---|---|---|
committer | Björn Gustavsson <[email protected]> | 2012-10-10 15:37:49 +0200 |
commit | e199e2471a6468a1908638d1b9fb863ea39e4d0e (patch) | |
tree | 41a7c081e26843d0638783fcef753d1de9aaabab /lib/compiler/src/beam_trim.erl | |
parent | 47d109fc4eda1288e8d21a31b603b3cfc300536a (diff) | |
download | otp-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.erl | 8 |
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). |