<feed xmlns='http://www.w3.org/2005/Atom'>
<title>toolchain_jack/dx, branch replicant-6.0</title>
<subtitle>toolchain/jack
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/'/>
<entry>
<title>Merge "Run DeadCodeRemover only one time" into ub-jack</title>
<updated>2015-04-28T16:16:24+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-04-28T16:16:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=9b8ac29d65bdff2c09ae14376ff4c93af6ddaa3a'/>
<id>9b8ac29d65bdff2c09ae14376ff4c93af6ddaa3a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize DexFile.prepare</title>
<updated>2015-04-28T11:13:18+00:00</updated>
<author>
<name>Wojciech Staszkiewicz</name>
<email>staszkiewicz@google.com</email>
</author>
<published>2015-03-24T15:25:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=fa94121fb92dea18f4d3810ae3ad864c66ab075f'/>
<id>fa94121fb92dea18f4d3810ae3ad864c66ab075f</id>
<content type='text'>
In current implementation DexFile.prepare takes a list of CstIndexMap
Those maps hold nondistinct constants, which are interned into
Sections. Because they are nondistinct, many intern attempts fail.
When compiling Music app incrementally it is 362980 failed intern
attempts vs only 142850 succesful. We can very easily save that time,
by passing to DexFile.prepare sets of distinct constants that we
compute in ConstantManager. This saves ~100ms of time.

Change-Id: Iaf8ba352f0619600642b103b3537b74608ba2f1e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In current implementation DexFile.prepare takes a list of CstIndexMap
Those maps hold nondistinct constants, which are interned into
Sections. Because they are nondistinct, many intern attempts fail.
When compiling Music app incrementally it is 362980 failed intern
attempts vs only 142850 succesful. We can very easily save that time,
by passing to DexFile.prepare sets of distinct constants that we
compute in ConstantManager. This saves ~100ms of time.

Change-Id: Iaf8ba352f0619600642b103b3537b74608ba2f1e
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce number of DexBuffer.Section instances created</title>
<updated>2015-04-28T11:00:06+00:00</updated>
<author>
<name>Wojciech Staszkiewicz</name>
<email>staszkiewicz@google.com</email>
</author>
<published>2015-03-20T16:02:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=56bb0fb3a2f359972e8a050ccb4a7aff121ea9be'/>
<id>56bb0fb3a2f359972e8a050ccb4a7aff121ea9be</id>
<content type='text'>
When compiling Music app incrementally Jack creates 417354 instances
of DexBuffer.Section. Most of them are created internally just to
call a method on them. This patch introduces an internal section
which is reused for those internal purposes. This reduces number of
created objects by 315577, which is around 8 MB.

Change-Id: Ic28dab607095d82879461e60efff2db3dfc62f13
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When compiling Music app incrementally Jack creates 417354 instances
of DexBuffer.Section. Most of them are created internally just to
call a method on them. This patch introduces an internal section
which is reused for those internal purposes. This reduces number of
created objects by 315577, which is around 8 MB.

Change-Id: Ic28dab607095d82879461e60efff2db3dfc62f13
</pre>
</div>
</content>
</entry>
<entry>
<title>Run DeadCodeRemover only one time</title>
<updated>2015-04-28T07:59:24+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-04-17T13:40:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=5b63e32311c433f9f63f2b7aa3082523691e7de0'/>
<id>5b63e32311c433f9f63f2b7aa3082523691e7de0</id>
<content type='text'>
- It is only mandatory to run it before Phi type resolver.

Change-Id: Id0eb78d58e4ac7eadb35079322e8cdf210dac79a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- It is only mandatory to run it before Phi type resolver.

Change-Id: Id0eb78d58e4ac7eadb35079322e8cdf210dac79a
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused parameters from dx</title>
<updated>2015-04-16T15:29:34+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-04-16T15:29:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=de56a67bed64e333e7f39d9b80593d64c5e6533e'/>
<id>de56a67bed64e333e7f39d9b80593d64c5e6533e</id>
<content type='text'>
Change-Id: I22068beaf08258e6e5c7a80e101e4aed682bd564
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I22068beaf08258e6e5c7a80e101e4aed682bd564
</pre>
</div>
</content>
</entry>
<entry>
<title>Speed-up Jack merger</title>
<updated>2015-04-07T15:03:37+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-02-19T10:32:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=bdbdeb2b2c143c8ff201058024bf77a78a425a80'/>
<id>bdbdeb2b2c143c8ff201058024bf77a78a425a80</id>
<content type='text'>
- Try to reuse same objects (CstString, CstType and so on) each time
that it is possible.
- Replace maps by arrays when it is possible.

Change-Id: I227326bd9eb707b94a4edd8761ac06766078362f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Try to reuse same objects (CstString, CstType and so on) each time
that it is possible.
- Replace maps by arrays when it is possible.

Change-Id: I227326bd9eb707b94a4edd8761ac06766078362f
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge "Simplify set and get method of IntList to enable Jit inlining" into ub-jack</title>
<updated>2015-03-27T15:32:52+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-03-27T15:32:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=7bc2a1beaee2d44685aa8a0e60f6b26fb9f64573'/>
<id>7bc2a1beaee2d44685aa8a0e60f6b26fb9f64573</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify set and get method of IntList to enable Jit inlining</title>
<updated>2015-03-26T12:23:44+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-03-26T12:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=ba1e0835896f5190fc3051d58ed0a1a384bb35c3'/>
<id>ba1e0835896f5190fc3051d58ed0a1a384bb35c3</id>
<content type='text'>
Change-Id: Ia28ac670894233f7434053b66fb8d6664f92d2fa
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: Ia28ac670894233f7434053b66fb8d6664f92d2fa
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify set0 and get0 method to enable Jit inlining</title>
<updated>2015-03-26T09:09:29+00:00</updated>
<author>
<name>mikaelpeltier</name>
<email>mikaelpeltier@google.com</email>
</author>
<published>2015-03-26T09:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=2dee53549d7288f4a01e7729ed36b98286fddd39'/>
<id>2dee53549d7288f4a01e7729ed36b98286fddd39</id>
<content type='text'>
Change-Id: I3cec0e9d56f55e5d784343573f99cd668b3727f2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change-Id: I3cec0e9d56f55e5d784343573f99cd668b3727f2
</pre>
</div>
</content>
</entry>
<entry>
<title>Stop creating CstString bytes eagerly.</title>
<updated>2015-03-16T11:12:21+00:00</updated>
<author>
<name>Piotr Jastrzebski</name>
<email>haaawk@google.com</email>
</author>
<published>2015-03-11T14:43:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/toolchain_jack/commit/?id=e83f6ae84fecf0f4c3d1ecf02c908566d001fcff'/>
<id>e83f6ae84fecf0f4c3d1ecf02c908566d001fcff</id>
<content type='text'>
Profiler showed that during a Music app compilation we create
1,364,332 instances of CstStrings. They require allocation of
395MB which is 6.4% of all memory allocated. It requires 5,457,328
allocations. Most of them is done in stringToUtf8Bytes. Fortunately
only 157,495 instances actually uses the |bytes| field. This means that
if we create |bytes| lazily then we can save a lot of memory and cpu
(stringToUtf8Bytes is also a cpu hotspot).

This change makes |bytes| in CtsString lazily computed.

For Music app the memory allocation is reduced by 353MB which is 5.6% of
all memory allocated. It also saves us 3,788,436 allocations.

Change-Id: I8f2980be07da29d31fc639543dfb9b3966c8cd4e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Profiler showed that during a Music app compilation we create
1,364,332 instances of CstStrings. They require allocation of
395MB which is 6.4% of all memory allocated. It requires 5,457,328
allocations. Most of them is done in stringToUtf8Bytes. Fortunately
only 157,495 instances actually uses the |bytes| field. This means that
if we create |bytes| lazily then we can save a lot of memory and cpu
(stringToUtf8Bytes is also a cpu hotspot).

This change makes |bytes| in CtsString lazily computed.

For Music app the memory allocation is reduced by 353MB which is 5.6% of
all memory allocated. It also saves us 3,788,436 allocations.

Change-Id: I8f2980be07da29d31fc639543dfb9b3966c8cd4e
</pre>
</div>
</content>
</entry>
</feed>
