~ubuntu-branches/ubuntu/trusty/erlang/trusty

« back to all changes in this revision

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

  • Committer: Bazaar Package Importer
  • Author(s): Clint Byrum
  • Date: 2011-05-05 15:48:43 UTC
  • mfrom: (3.5.13 sid)
  • Revision ID: james.westby@ubuntu.com-20110505154843-0om6ekzg6m7ugj27
Tags: 1:14.b.2-dfsg-3ubuntu1
* Merge from debian unstable.  Remaining changes:
  - Drop libwxgtk2.8-dev build dependency. Wx isn't in main, and not
    supposed to.
  - Drop erlang-wx binary.
  - Drop erlang-wx dependency from -megaco, -common-test, and -reltool, they
    do not really need wx. Also drop it from -debugger; the GUI needs wx,
    but it apparently has CLI bits as well, and is also needed by -megaco,
    so let's keep the package for now.
  - debian/patches/series: Do what I meant, and enable build-options.patch
    instead.
* Additional changes:
  - Drop erlang-wx from -et
* Dropped Changes:
  - patches/pcre-crash.patch: CVE-2008-2371: outer level option with
    alternatives caused crash. (Applied Upstream)
  - fix for ssl certificate verification in newSSL: 
    ssl_cacertfile_fix.patch (Applied Upstream)
  - debian/patches/series: Enable native.patch again, to get stripped beam
    files and reduce the package size again. (build-options is what
    actually accomplished this)
  - Remove build-options.patch on advice from upstream and because it caused
    odd build failures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
%%
2
2
%% %CopyrightBegin%
3
 
%% 
4
 
%% Copyright Ericsson AB 1999-2009. All Rights Reserved.
5
 
%% 
 
3
%%
 
4
%% Copyright Ericsson AB 1999-2010. All Rights Reserved.
 
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
8
8
%% compliance with the License. You should have received a copy of the
9
9
%% Erlang Public License along with this software. If not, it can be
10
10
%% retrieved online at http://www.erlang.org/.
11
 
%% 
 
11
%%
12
12
%% Software distributed under the License is distributed on an "AS IS"
13
13
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
14
14
%% the License for the specific language governing rights and limitations
15
15
%% under the License.
16
 
%% 
 
16
%%
17
17
%% %CopyrightEnd%
18
18
%%
19
19
%% Purpose : Type-based optimisations.
76
76
    end,
77
77
    Ts = update(I, Ts0),
78
78
    simplify_basic_1(Is, Ts, [I|Acc]);
79
 
simplify_basic_1([{set,[_],[_],{bif,_,{f,0}}}=I|Is], Ts0, Acc) ->
80
 
    Ts = update(I, Ts0),
81
 
    simplify_basic_1(Is, Ts, [I|Acc]);
82
79
simplify_basic_1([{set,[D],[TupleReg],{get_tuple_element,0}}=I|Is0], Ts0, Acc) ->
83
80
    case tdb_find(TupleReg, Ts0) of
84
81
        {tuple,_,[Contents]} ->
118
115
            Ts = update(I, Ts0),
119
116
            simplify_basic_1(Is, Ts, [I|Acc])
120
117
    end;
121
 
 
122
118
simplify_basic_1([I|Is], Ts0, Acc) ->
123
119
    Ts = update(I, Ts0),
124
120
    simplify_basic_1(Is, Ts, [I|Acc]);
183
179
    {Is,Ts}.
184
180
 
185
181
opt_fmoves([{set,[{x,_}=R],[{fr,_}]=Src,fmove}=I1,
186
 
            {set,[{y,_}]=Dst,[{x,_}=R],move}=I2|Is], Acc) ->
 
182
            {set,[_]=Dst,[{x,_}=R],move}=I2|Is], Acc) ->
187
183
    case beam_utils:is_killed_block(R, Is) of
188
184
        false -> opt_fmoves(Is, [I2,I1|Acc]);
189
185
        true -> opt_fmoves(Is, [{set,Dst,Src,fmove}|Acc])
253
249
    {[],H+1,Fl};
254
250
flt_need_heap_2({set,_,_,put}, H, Fl) ->
255
251
    {[],H+1,Fl};
256
 
flt_need_heap_2({set,_,_,{put_string,L,_Str}}, H, Fl) ->
257
 
    {[],H+2*L,Fl};
258
252
%% Then the "neutral" instructions. We just pass them.
259
253
flt_need_heap_2({set,[{fr,_}],_,_}, H, Fl) ->
260
254
    {[],H,Fl};