<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/erts, branch master</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge branch 'john/erts/cp-management-fixup'</title>
<updated>2019-08-27T09:31:25+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-08-27T09:31:25+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=689c3a5bed74bc80ae999e06983810f9543a8cd7'/>
<id>689c3a5bed74bc80ae999e06983810f9543a8cd7</id>
<content type='text'>
* john/erts/cp-management-fixup:
  erts: Simplify deallocate_return
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* john/erts/cp-management-fixup:
  erts: Simplify deallocate_return
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2019-08-27T09:31:14+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-08-27T09:31:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5abb822ee402f008b3fdd2d863ffac93bbe6bc09'/>
<id>5abb822ee402f008b3fdd2d863ffac93bbe6bc09</id>
<content type='text'>
* maint:
  erts: Add missing prototype
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* maint:
  erts: Add missing prototype
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Add missing prototype</title>
<updated>2019-08-26T10:32:45+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-08-26T10:32:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=825f4eee8ddd478a619f26f1dfe50a67ac946012'/>
<id>825f4eee8ddd478a619f26f1dfe50a67ac946012</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>erts: Simplify deallocate_return</title>
<updated>2019-08-26T08:38:06+00:00</updated>
<author>
<name>John Högberg</name>
<email>john@erlang.org</email>
</author>
<published>2019-08-26T08:26:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=9ee1b789e2a085a8cf59c249b46130a8c8801d0e'/>
<id>9ee1b789e2a085a8cf59c249b46130a8c8801d0e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2345 from garazdawi/lukas/erts/hash_opt/OTP-16014</title>
<updated>2019-08-23T08:01:57+00:00</updated>
<author>
<name>Lukas Larsson</name>
<email>lukas@erlang.org</email>
</author>
<published>2019-08-23T08:01:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1b9555761cee3ff018a86dc1762792b5bda26c23'/>
<id>1b9555761cee3ff018a86dc1762792b5bda26c23</id>
<content type='text'>
Change internal hash table implementation</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change internal hash table implementation</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2019-08-22T15:12:52+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2019-08-22T15:12:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1b839af83d7dbc73da1cb39122a8711075322aac'/>
<id>1b839af83d7dbc73da1cb39122a8711075322aac</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'sverker/ets-delete-tree-trapping' into maint</title>
<updated>2019-08-22T15:12:32+00:00</updated>
<author>
<name>Sverker Eriksson</name>
<email>sverker@erlang.org</email>
</author>
<published>2019-08-22T15:12:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=601c64de017b225602edf29b046b68dd1d01fe4b'/>
<id>601c64de017b225602edf29b046b68dd1d01fe4b</id>
<content type='text'>
* sverker/ets-delete-tree-trapping:
  erts: Refactor ets catree deletion
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* sverker/ets-delete-tree-trapping:
  erts: Refactor ets catree deletion
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #2351 from bjorng/bjorn/erts/optimize-cp-management/OTP-15077</title>
<updated>2019-08-22T11:40:54+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2019-08-22T11:40:54+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=cabdfc991278d6322564ef7342e80b3dd3cdbc92'/>
<id>cabdfc991278d6322564ef7342e80b3dd3cdbc92</id>
<content type='text'>
Optimize continuation pointer management</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Optimize continuation pointer management</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize the move_call instructions</title>
<updated>2019-08-22T11:37:41+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2019-08-18T06:31:53+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=07a323813a47f92abf05bdf2255dc1354e82c55c'/>
<id>07a323813a47f92abf05bdf2255dc1354e82c55c</id>
<content type='text'>
The `move_call` instructions are combinations of a `move` instruction
and a `call` instruction. As currently implemented, the `move` part of
the instruction is executed in its entirety before the `call` part is
even started. The reason is that the C compiler cannot see that it
would be safe to read the target address of the call before writing to
the move destination.

Rewrite the instructions to explicitly read both the source for the
move and the target address for the call before writing the
destination of the move.

Micro-benchmarks show a small but consistent speed-up after this
change.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `move_call` instructions are combinations of a `move` instruction
and a `call` instruction. As currently implemented, the `move` part of
the instruction is executed in its entirety before the `call` part is
even started. The reason is that the C compiler cannot see that it
would be safe to read the target address of the call before writing to
the move destination.

Rewrite the instructions to explicitly read both the source for the
move and the target address for the call before writing the
destination of the move.

Micro-benchmarks show a small but consistent speed-up after this
change.
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize deallocate_return instructions</title>
<updated>2019-08-22T11:37:41+00:00</updated>
<author>
<name>Björn Gustavsson</name>
<email>bjorn@erlang.org</email>
</author>
<published>2019-08-16T14:04:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8041849a8e55281b4d954e63e9415995607e1870'/>
<id>8041849a8e55281b4d954e63e9415995607e1870</id>
<content type='text'>
Eliminating the CP register and putting continuation
pointers directly on the stack made the deallocate_return
instruction slower.

Try to mitigate this slow down by specializing deallocate_return
for small stack. For the move_deallocate_return instruction,
reorder instructions to make it possible to execute the read
instructions in parallel.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Eliminating the CP register and putting continuation
pointers directly on the stack made the deallocate_return
instruction slower.

Try to mitigate this slow down by specializing deallocate_return
for small stack. For the move_deallocate_return instruction,
reorder instructions to make it possible to execute the read
instructions in parallel.
</pre>
</div>
</content>
</entry>
</feed>
