~clint-fewbar/ubuntu/precise/erlang/merge-15b

« back to all changes in this revision

Viewing changes to lib/compiler/src/beam_trim.erl

  • Committer: Package Import Robot
  • Author(s): Sergei Golovan
  • Date: 2011-12-15 19:20:10 UTC
  • mfrom: (1.1.18) (3.5.15 sid)
  • mto: (3.5.16 sid)
  • mto: This revision was merged to the branch mainline in revision 33.
  • Revision ID: package-import@ubuntu.com-20111215192010-jnxcfe3tbrpp0big
Tags: 1:15.b-dfsg-1
* New upstream release.
* Upload to experimental because this release breaks external drivers
  API along with ABI, so several applications are to be fixed.
* Removed SSL patch because the old SSL implementation is removed from
  the upstream distribution.
* Removed never used patch which added native code to erlang beam files.
* Removed the erlang-docbuilder binary package because the docbuilder
  application was dropped by upstream.
* Documented dropping ${erlang-docbuilder:Depends} substvar in
  erlang-depends(1) manpage.
* Made erlang-base and erlang-base-hipe provide virtual package
  erlang-abi-15.b (the number means the first erlang version, which
  provides current ABI).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
%%
2
2
%% %CopyrightBegin%
3
3
%% 
4
 
%% Copyright Ericsson AB 2007-2009. All Rights Reserved.
 
4
%% Copyright Ericsson AB 2007-2011. All Rights Reserved.
5
5
%% 
6
6
%% The contents of this file are subject to the Erlang Public License,
7
7
%% Version 1.1, (the "License"); you may not use this file except in
222
222
    reverse(Acc, [I|Is]);
223
223
remap([{call_ext_last,Ar,Name,N}|Is], Map, Acc) ->
224
224
    I = {call_ext_last,Ar,Name,Map({frame_size,N})},
225
 
    reverse(Acc, [I|Is]).
 
225
    reverse(Acc, [I|Is]);
 
226
remap([{line,_}=I|Is], Map, Acc) ->
 
227
    remap(Is, Map, [I|Acc]).
226
228
    
227
229
remap_block([{set,Ds0,Ss0,Info}|Is], Map, Acc) ->
228
230
    Ds = [Map(D) || D <- Ds0],
230
232
    remap_block(Is, Map, [{set,Ds,Ss,Info}|Acc]);
231
233
remap_block([], _, Acc) -> reverse(Acc).
232
234
    
233
 
safe_labels([{label,L},{badmatch,{Tag,_}}|Is], Acc) when Tag =/= y ->
234
 
    safe_labels(Is, [L|Acc]);
235
 
safe_labels([{label,L},{case_end,{Tag,_}}|Is], Acc) when Tag =/= y ->
236
 
    safe_labels(Is, [L|Acc]);
237
 
safe_labels([{label,L},if_end|Is], Acc) ->
 
235
safe_labels([{label,L},{line,_},{badmatch,{Tag,_}}|Is], Acc) when Tag =/= y ->
 
236
    safe_labels(Is, [L|Acc]);
 
237
safe_labels([{label,L},{line,_},{case_end,{Tag,_}}|Is], Acc) when Tag =/= y ->
 
238
    safe_labels(Is, [L|Acc]);
 
239
safe_labels([{label,L},{line,_},if_end|Is], Acc) ->
238
240
    safe_labels(Is, [L|Acc]);
239
241
safe_labels([{label,L},
240
242
             {block,[{set,[{x,0}],[{Tag,_}],move}]},
 
243
             {line,_},
241
244
             {call_ext,1,{extfunc,erlang,error,1}}|Is], Acc) when Tag =/= y ->
242
245
    safe_labels(Is, [L|Acc]);
243
246
safe_labels([_|Is], Acc) ->
321
324
frame_size([{deallocate,N}|_], _) -> N;
322
325
frame_size([{call_last,_,_,N}|_], _) -> N;
323
326
frame_size([{call_ext_last,_,_,N}|_], _) -> N;
 
327
frame_size([{line,_}|Is], Safe) ->
 
328
    frame_size(Is, Safe);
324
329
frame_size([_|_], _) -> throw(not_possible).
325
330
 
326
331
frame_size_branch(0, Is, Safe) ->