<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/compiler/test, branch maint-22</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>compiler: Fix compiler crash introduced by OTP-15952</title>
<updated>2019-07-10T16:04:45+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-07-10T13:41:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9ca0e82455297040069b8274649e7ddd28a5d65b'/>
<id>9ca0e82455297040069b8274649e7ddd28a5d65b</id>
<content type='text'>
An assertion in code generation would fail when the common exit
block was ?BADARG_BLOCK, as some operations expect to always "fail"
directly to that block (= throw an exception) and we had inserted
a dummy block in between.

Other operations could also get funny fail labels, jumping to
blocks that immediately jumped to {f,0}, but these were all cleaned
up by beam_jump, sweeping the bug under the rug.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
An assertion in code generation would fail when the common exit
block was ?BADARG_BLOCK, as some operations expect to always "fail"
directly to that block (= throw an exception) and we had inserted
a dummy block in between.

Other operations could also get funny fail labels, jumping to
blocks that immediately jumped to {f,0}, but these were all cleaned
up by beam_jump, sweeping the bug under the rug.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'john/compiler/fix-fail-path-exceptions-bsm/OTP-15946' into maint-22</title>
<updated>2019-07-09T07:52:15+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-07-09T07:52:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=861aaf5ae85c9992329b0dbb726c46696ee22fff'/>
<id>861aaf5ae85c9992329b0dbb726c46696ee22fff</id>
<content type='text'>
* john/compiler/fix-fail-path-exceptions-bsm/OTP-15946:
  beam_ssa_bsm: Leave ?BADARG_BLOCK alone when cloning fail path
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/compiler/fix-fail-path-exceptions-bsm/OTP-15946:
  beam_ssa_bsm: Leave ?BADARG_BLOCK alone when cloning fail path
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'john/compiler/fix-unsafe-tuple_size-opt/OTP-15945' into maint-22</title>
<updated>2019-07-09T07:52:14+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-07-09T07:52:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=82bfcda20f6ca3ec77bc3f35974aca82c12b896f'/>
<id>82bfcda20f6ca3ec77bc3f35974aca82c12b896f</id>
<content type='text'>
* john/compiler/fix-unsafe-tuple_size-opt/OTP-15945:
  beam_ssa_opt: Do not apply tuple_size optimization outside guards
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/compiler/fix-unsafe-tuple_size-opt/OTP-15945:
  beam_ssa_opt: Do not apply tuple_size optimization outside guards
</pre>
</div>
</content>
</entry>
<entry>
<title>compiler: Fix broken 'receive' in try/catch blocks</title>
<updated>2019-07-09T07:35:13+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-07-08T12:37:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e20015186fa2372793650a98005faf88e6f6e0fa'/>
<id>e20015186fa2372793650a98005faf88e6f6e0fa</id>
<content type='text'>
This fix is rather ugly and tacked-on, but I'm not comfortable
refactoring the pass in an emergency patch.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fix is rather ugly and tacked-on, but I'm not comfortable
refactoring the pass in an emergency patch.
</pre>
</div>
</content>
</entry>
<entry>
<title>beam_ssa_bsm: Leave ?BADARG_BLOCK alone when cloning fail path</title>
<updated>2019-07-03T13:22:59+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-07-03T13:07:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a8461ffed773c4ff80779c16a3637ba3d2e915fd'/>
<id>a8461ffed773c4ff80779c16a3637ba3d2e915fd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>beam_ssa_opt: Do not apply tuple_size optimization outside guards</title>
<updated>2019-07-03T08:44:29+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-06-28T06:25:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=3dd5ab9473f888ceb8f2ae6d71f51cd92de83f5b'/>
<id>3dd5ab9473f888ceb8f2ae6d71f51cd92de83f5b</id>
<content type='text'>
Rewriting `tuple_size` to `is_tuple` + `tuple_size` will cause it
not to throw an exception, either crashing the compiler or the
emulator when the code runs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Rewriting `tuple_size` to `is_tuple` + `tuple_size` will cause it
not to throw an exception, either crashing the compiler or the
emulator when the code runs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'john/compiler/fix-bad-bitstring-type-opt/OTP-15872' into maint-22</title>
<updated>2019-06-12T07:51:20+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-06-12T07:51:20+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9fbc06998e2165b0ba33274eb659794999b1577c'/>
<id>9fbc06998e2165b0ba33274eb659794999b1577c</id>
<content type='text'>
* john/compiler/fix-bad-bitstring-type-opt/OTP-15872:
  beam_ssa_type: Fix incorrect bitstring unit determination
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/compiler/fix-bad-bitstring-type-opt/OTP-15872:
  beam_ssa_type: Fix incorrect bitstring unit determination
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Fix bad loader optimization of get_tuple_element</title>
<updated>2019-06-10T15:34:28+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-06-10T14:38:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5ee02a07b5c31aea4dd464060fa626d6e6ab8ceb'/>
<id>5ee02a07b5c31aea4dd464060fa626d6e6ab8ceb</id>
<content type='text'>
The following sequence would be wrongly optimized into a
i_get_tuple_element2 instruction, reading an element from the
wrong tuple:

    {get_tuple_element,{x,0},1,{x,0}}.
    {get_tuple_element,{x,0},2,{x,1}}.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The following sequence would be wrongly optimized into a
i_get_tuple_element2 instruction, reading an element from the
wrong tuple:

    {get_tuple_element,{x,0},1,{x,0}}.
    {get_tuple_element,{x,0},2,{x,1}}.
</pre>
</div>
</content>
</entry>
<entry>
<title>beam_ssa_type: Fix incorrect bitstring unit determination</title>
<updated>2019-06-10T15:26:55+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-06-10T15:21:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a726c015867beffe15cc20ee22e32778678e8fdf'/>
<id>a726c015867beffe15cc20ee22e32778678e8fdf</id>
<content type='text'>
The compiler would treat the "Unit" of bs_init instructions as
the unit of the result instead of the required unit of the input,
causing is_binary checks to be wrongly optimized away.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The compiler would treat the "Unit" of bs_init instructions as
the unit of the result instead of the required unit of the input,
causing is_binary checks to be wrongly optimized away.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'bjorn/compiler/fix-beam_ssa_dead-patch/OTP-15845' into maint-22</title>
<updated>2019-05-29T11:24:45+00:00</updated>
<author>
<name>Erlang/OTP</name>
<email>otp@erlang.org</email>
</author>
<published>2019-05-29T11:24:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=dd50db44140c4b143b371f07de69ac8c726e0519'/>
<id>dd50db44140c4b143b371f07de69ac8c726e0519</id>
<content type='text'>
* bjorn/compiler/fix-beam_ssa_dead-patch/OTP-15845:
  Fix unsafe optimizations where guard tests could be removed
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* bjorn/compiler/fix-beam_ssa_dead-patch/OTP-15845:
  Fix unsafe optimizations where guard tests could be removed
</pre>
</div>
</content>
</entry>
</feed>
