<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/hipe/test, branch maint</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>HiPE: Fix check for when ErLLVM is available</title>
<updated>2018-10-15T16:08:10+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2018-10-15T16:08:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=a515d78c3c30ac694399a823e8d680f8e8ea8f44'/>
<id>a515d78c3c30ac694399a823e8d680f8e8ea8f44</id>
<content type='text'>
The previous check whether ErLLVM could be enabled and/or tested simply
checked whether a suitable version of the LLVM tool chain was present
in the path. Obviously this is not enough: there should also be a check
that we are running in an architecture on which the ErLLVM compiler
has been ported. Fix the function that provides this functionality and
also rename it in order to more appropriately describe what it does.

In principle, this change introduces a backwards incompatibility as the
function is one of those exported by the `hipe' module, but this
function was not documented and the chances that it has been used
somewhere else that the test suite are pretty low (if not zero).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous check whether ErLLVM could be enabled and/or tested simply
checked whether a suitable version of the LLVM tool chain was present
in the path. Obviously this is not enough: there should also be a check
that we are running in an architecture on which the ErLLVM compiler
has been ported. Fix the function that provides this functionality and
also rename it in order to more appropriately describe what it does.

In principle, this change introduces a backwards incompatibility as the
function is one of those exported by the `hipe' module, but this
function was not documented and the chances that it has been used
somewhere else that the test suite are pretty low (if not zero).
</pre>
</div>
</content>
</entry>
<entry>
<title>hipe: Document new limitations and disable known failing tests</title>
<updated>2018-09-28T09:40:12+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2018-09-24T06:03:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=afa36d2081927c46a4c3ddceb40276fc7756bb51'/>
<id>afa36d2081927c46a4c3ddceb40276fc7756bb51</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>No reason to refer to wxSizer in the test</title>
<updated>2018-06-12T09:26:00+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2018-06-12T09:26:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1d48b1114d195228c750fd0fcd98cb223c714479'/>
<id>1d48b1114d195228c750fd0fcd98cb223c714479</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix a crash ih HoPE's lazy code motion pass</title>
<updated>2018-06-11T15:47:37+00:00</updated>
<author>
<name>Kostis Sagonas</name>
<email>kostis@it.uu.se</email>
</author>
<published>2018-06-11T15:47:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=992a1f18934f071858b5e87f32bda5b49bed637d'/>
<id>992a1f18934f071858b5e87f32bda5b49bed637d</id>
<content type='text'>
Some change in the BEAM compiler resulted in the creation of basic
blocks that differed from those previously created by the compiler.
As a result, the lazy code motion pass of RTL crashed when compiling
some of the new code.

Crashes were privately reported by @richcarl.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Some change in the BEAM compiler resulted in the creation of basic
blocks that differed from those previously created by the compiler.
As a result, the lazy code motion pass of RTL crashed when compiling
some of the new code.

Crashes were privately reported by @richcarl.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move erl_types test into a common_test suite</title>
<updated>2018-04-26T16:45:34+00:00</updated>
<author>
<name>Sean Cribbs</name>
<email>seancribbs@gmail.com</email>
</author>
<published>2018-04-03T16:01:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=e92eb8f4bd35c603b5a1b4c24beca01c93d17fe8'/>
<id>e92eb8f4bd35c603b5a1b4c24beca01c93d17fe8</id>
<content type='text'>
The existing test/0 function in erl_types was not being run in the OTP test
suite, and it had not been updated to match the implementation in the
module (maps vs. dict). This commit removes the macros that excluded some
functions, exports the functions now included in the module, and extracts the
test into a new common_test suite, erl_types_SUITE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The existing test/0 function in erl_types was not being run in the OTP test
suite, and it had not been updated to match the implementation in the
module (maps vs. dict). This commit removes the macros that excluded some
functions, exports the functions now included in the module, and extracts the
test into a new common_test suite, erl_types_SUITE.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't build a stacktrace if it's only passed to erlang:raise/3</title>
<updated>2018-01-22T13:23:52+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2017-11-28T06:28:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9b0122b65bdcafbae2a3cfd3299903da0948acab'/>
<id>9b0122b65bdcafbae2a3cfd3299903da0948acab</id>
<content type='text'>
Consider the following function:

    function({function,Name,Arity,CLabel,Is0}, Lc0) -&gt;
      try
        %% Optimize the code for the function.
      catch
        Class:Error:Stack -&gt;
          io:format("Function: ~w/~w\n", [Name,Arity]),
          erlang:raise(Class, Error, Stack)
      end.

The stacktrace is retrieved, but it is only used in the call
to erlang:raise/3. There is no need to build a stacktrace
in this function. We can avoid the building if we introduce
an instruction called raw_raise/3 that works exactly like
the erlang:raise/3 BIF except that its third argument must
be a raw stacktrace.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Consider the following function:

    function({function,Name,Arity,CLabel,Is0}, Lc0) -&gt;
      try
        %% Optimize the code for the function.
      catch
        Class:Error:Stack -&gt;
          io:format("Function: ~w/~w\n", [Name,Arity]),
          erlang:raise(Class, Error, Stack)
      end.

The stacktrace is retrieved, but it is only used in the call
to erlang:raise/3. There is no need to build a stacktrace
in this function. We can avoid the building if we introduce
an instruction called raw_raise/3 that works exactly like
the erlang:raise/3 BIF except that its third argument must
be a raw stacktrace.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2018-01-15T19:45:34+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-01-15T19:45:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f359cffc2590848c9ea4ff366d550c1351569479'/>
<id>f359cffc2590848c9ea4ff366d550c1351569479</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>hipe: Avoid out-of-memory crash for bs_SUITE:bs_construct</title>
<updated>2018-01-05T13:37:37+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2018-01-05T13:37:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=f496717590d610bd08f02bec39f8e97886c68729'/>
<id>f496717590d610bd08f02bec39f8e97886c68729</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>HiPE: Unique ref receive opt</title>
<updated>2017-11-16T12:24:55+00:00</updated>
<author>
<name>Magnus Lång</name>
<email>margnus1@telia.com</email>
</author>
<published>2017-11-05T15:12:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8e8380865bb31c119e7f11fbdbbb14ea58ebbef2'/>
<id>8e8380865bb31c119e7f11fbdbbb14ea58ebbef2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>HiPE: Verify GC safety of derived values</title>
<updated>2017-11-05T19:52:48+00:00</updated>
<author>
<name>Magnus Lång</name>
<email>margnus1@telia.com</email>
</author>
<published>2017-11-05T17:50:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=14250efc69cacde4310aeb89b3b1ef631d8e5fe9'/>
<id>14250efc69cacde4310aeb89b3b1ef631d8e5fe9</id>
<content type='text'>
HiPE has had metadata for gc safety on it's temporaries for a while, but
it has never been enforced or even checked, so naturally several
gc-safety violations has slipped through.

A new pass, hipe_rtl_verify_gcsafe verifies gcsafety on optimised RTL
and is used when running the testsuite, and can be manually enabled with
+{hipe,[verify_gcsafe]}.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
HiPE has had metadata for gc safety on it's temporaries for a while, but
it has never been enforced or even checked, so naturally several
gc-safety violations has slipped through.

A new pass, hipe_rtl_verify_gcsafe verifies gcsafety on optimised RTL
and is used when running the testsuite, and can be manually enabled with
+{hipe,[verify_gcsafe]}.
</pre>
</div>
</content>
</entry>
</feed>
