<feed xmlns='http://www.w3.org/2005/Atom'>
<title>art/runtime/interpreter/interpreter_common.h, branch cm-13.0</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/'/>
<entry>
<title>ART: Allow PackedSwitch instructions with zero targets</title>
<updated>2015-06-18T16:08:13+00:00</updated>
<author>
<name>David Brazdil</name>
<email>dbrazdil@google.com</email>
</author>
<published>2015-06-17T17:20:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=df75bca6bd100ca9c2c395b1b8d2f8a871ab2c62'/>
<id>df75bca6bd100ca9c2c395b1b8d2f8a871ab2c62</id>
<content type='text'>
Optimizing and the interpreter wrongly assumed that a PackedSwitch
always has at least one target. This patch removes the corresponding
DCHECKs and adds a regression test case.

This is a resubmission of CL I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e

Bug: 21863783
Change-Id: I04e6e124bdd16591ba27c79490e6ce183c36b691
(cherry picked from commit 2ef645ba50544b879a82ea30e606f18c9af98917)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Optimizing and the interpreter wrongly assumed that a PackedSwitch
always has at least one target. This patch removes the corresponding
DCHECKs and adds a regression test case.

This is a resubmission of CL I32b7033ed38de6f1d1a6ee5d5bf12f3a47c9b37e

Bug: 21863783
Change-Id: I04e6e124bdd16591ba27c79490e6ce183c36b691
(cherry picked from commit 2ef645ba50544b879a82ea30e606f18c9af98917)
</pre>
</div>
</content>
</entry>
<entry>
<title>Move mirror::ArtMethod to native</title>
<updated>2015-06-02T16:21:27+00:00</updated>
<author>
<name>Mathieu Chartier</name>
<email>mathieuc@google.com</email>
</author>
<published>2015-04-22T20:56:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=3d21bdf8894e780d349c481e5c9e29fe1556051c'/>
<id>3d21bdf8894e780d349c481e5c9e29fe1556051c</id>
<content type='text'>
Optimizing + quick tests are passing, devices boot.

TODO: Test and fix bugs in mips64.

Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.
Some of the savings are from removal of virtual methods and direct
methods object arrays.

Bug: 19264997

(cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33)

Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d

Fix some ArtMethod related bugs

Added root visiting for runtime methods, not currently required
since the GcRoots in these methods are null.

Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes
--trace run-tests 005, 044.

Fixed optimizing compiler bug where we used a normal stack location
instead of double on ARM64, this fixes the debuggable tests.

TODO: Fix JDWP tests.

Bug: 19264997

Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3

ART: Fix casts for 64-bit pointers on 32-bit compiler.

Bug: 19264997
Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457

Fix JDWP tests after ArtMethod change

Fixes Throwable::GetStackDepth for exception event detection after
internal stack trace representation change.

Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of
proxy method.

Bug: 19264997
Change-Id: I363e293796848c3ec491c963813f62d868da44d2

Fix accidental IMT and root marking regression

Was always using the conflict trampoline. Also included fix for
regression in GC time caused by extra roots. Most of the regression
was IMT.

Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to
detached thread.

EvaluateAndApplyChanges:
From ~2500 -&gt; ~1980
GC time: 8.2s -&gt; 7.2s due to 1s less of MarkConcurrentRoots

Bug: 19264997
Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0

Fix bogus image test assert

Previously we were comparing the size of the non moving space to
size of the image file.

Now we properly compare the size of the image space against the size
of the image file.

Bug: 19264997
Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a

[MIPS64] Fix art_quick_invoke_stub argument offsets.

ArtMethod reference's size got bigger, so we need to move other args
and leave enough space for ArtMethod* and 'this' pointer.

This fixes mips64 boot.

Bug: 19264997
Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Optimizing + quick tests are passing, devices boot.

TODO: Test and fix bugs in mips64.

Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.
Some of the savings are from removal of virtual methods and direct
methods object arrays.

Bug: 19264997

(cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33)

Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d

Fix some ArtMethod related bugs

Added root visiting for runtime methods, not currently required
since the GcRoots in these methods are null.

Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes
--trace run-tests 005, 044.

Fixed optimizing compiler bug where we used a normal stack location
instead of double on ARM64, this fixes the debuggable tests.

TODO: Fix JDWP tests.

Bug: 19264997

Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3

ART: Fix casts for 64-bit pointers on 32-bit compiler.

Bug: 19264997
Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457

Fix JDWP tests after ArtMethod change

Fixes Throwable::GetStackDepth for exception event detection after
internal stack trace representation change.

Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of
proxy method.

Bug: 19264997
Change-Id: I363e293796848c3ec491c963813f62d868da44d2

Fix accidental IMT and root marking regression

Was always using the conflict trampoline. Also included fix for
regression in GC time caused by extra roots. Most of the regression
was IMT.

Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to
detached thread.

EvaluateAndApplyChanges:
From ~2500 -&gt; ~1980
GC time: 8.2s -&gt; 7.2s due to 1s less of MarkConcurrentRoots

Bug: 19264997
Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0

Fix bogus image test assert

Previously we were comparing the size of the non moving space to
size of the image file.

Now we properly compare the size of the image space against the size
of the image file.

Bug: 19264997
Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a

[MIPS64] Fix art_quick_invoke_stub argument offsets.

ArtMethod reference's size got bigger, so we need to move other args
and leave enough space for ArtMethod* and 'this' pointer.

This fixes mips64 boot.

Bug: 19264997
Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace String CharArray with internal uint16_t array.</title>
<updated>2015-04-28T01:54:52+00:00</updated>
<author>
<name>Jeff Hao</name>
<email>jeffhao@google.com</email>
</author>
<published>2014-01-15T21:49:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=848f70a3d73833fc1bf3032a9ff6812e429661d9'/>
<id>848f70a3d73833fc1bf3032a9ff6812e429661d9</id>
<content type='text'>
Summary of high level changes:
  - Adds compiler inliner support to identify string init methods
  - Adds compiler support (quick &amp; optimizing) with new invoke code path
    that calls method off the thread pointer
  - Adds thread entrypoints for all string init methods
  - Adds map to verifier to log when receiver of string init has been
    copied to other registers. used by compiler and interpreter

Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary of high level changes:
  - Adds compiler inliner support to identify string init methods
  - Adds compiler support (quick &amp; optimizing) with new invoke code path
    that calls method off the thread pointer
  - Adds thread entrypoints for all string init methods
  - Adds map to verifier to log when receiver of string init has been
    copied to other registers. used by compiler and interpreter

Change-Id: I797b992a8feb566f9ad73060011ab6f51eb7ce01
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace NULL with nullptr</title>
<updated>2015-04-22T19:44:27+00:00</updated>
<author>
<name>Mathieu Chartier</name>
<email>mathieuc@google.com</email>
</author>
<published>2015-04-21T23:50:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=2cebb24bfc3247d3e9be138a3350106737455918'/>
<id>2cebb24bfc3247d3e9be138a3350106737455918</id>
<content type='text'>
Also fixed some lines that were too long, and a few other minor
details.

Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also fixed some lines that were too long, and a few other minor
details.

Change-Id: I6efba5fb6e03eb5d0a300fddb2a75bf8e2f175cb
</pre>
</div>
</content>
</entry>
<entry>
<title>Move ArtField to native</title>
<updated>2015-04-10T19:57:27+00:00</updated>
<author>
<name>Mathieu Chartier</name>
<email>mathieuc@google.com</email>
</author>
<published>2015-03-27T21:35:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=c785344b87221f5e4e6473e5b762e4e61fe65dcf'/>
<id>c785344b87221f5e4e6473e5b762e4e61fe65dcf</id>
<content type='text'>
Add linear alloc. Moved ArtField to be native object. Changed image
writer to put ArtFields after the mirror section.

Savings:
2MB on low ram devices
4MB on normal devices

Total PSS measurements before (normal N5, 95s after shell start):
Image size: 7729152 bytes
23112 kB: .NonMoving
23212 kB: .NonMoving
22868 kB: .NonMoving
23072 kB: .NonMoving
22836 kB: .NonMoving
19618 kB: .Zygote
19850 kB: .Zygote
19623 kB: .Zygote
19924 kB: .Zygote
19612 kB: .Zygote
Avg: 42745.4 kB

After:
Image size: 7462912 bytes
17440 kB: .NonMoving
16776 kB: .NonMoving
16804 kB: .NonMoving
17812 kB: .NonMoving
16820 kB: .NonMoving
18788 kB: .Zygote
18856 kB: .Zygote
19064 kB: .Zygote
18841 kB: .Zygote
18629 kB: .Zygote
3499 kB: .LinearAlloc
3408 kB: .LinearAlloc
3424 kB: .LinearAlloc
3600 kB: .LinearAlloc
3436 kB: .LinearAlloc
Avg: 39439.4 kB

No reflection performance changes.

Bug: 19264997
Bug: 17643507

Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add linear alloc. Moved ArtField to be native object. Changed image
writer to put ArtFields after the mirror section.

Savings:
2MB on low ram devices
4MB on normal devices

Total PSS measurements before (normal N5, 95s after shell start):
Image size: 7729152 bytes
23112 kB: .NonMoving
23212 kB: .NonMoving
22868 kB: .NonMoving
23072 kB: .NonMoving
22836 kB: .NonMoving
19618 kB: .Zygote
19850 kB: .Zygote
19623 kB: .Zygote
19924 kB: .Zygote
19612 kB: .Zygote
Avg: 42745.4 kB

After:
Image size: 7462912 bytes
17440 kB: .NonMoving
16776 kB: .NonMoving
16804 kB: .NonMoving
17812 kB: .NonMoving
16820 kB: .NonMoving
18788 kB: .Zygote
18856 kB: .Zygote
19064 kB: .Zygote
18841 kB: .Zygote
18629 kB: .Zygote
3499 kB: .LinearAlloc
3408 kB: .LinearAlloc
3424 kB: .LinearAlloc
3600 kB: .LinearAlloc
3436 kB: .LinearAlloc
Avg: 39439.4 kB

No reflection performance changes.

Bug: 19264997
Bug: 17643507

Change-Id: I10c73a37913332080aeb978c7c94713bdfe4fe1c
</pre>
</div>
</content>
</entry>
<entry>
<title>Use va_list argument to abort transaction</title>
<updated>2015-04-03T14:27:19+00:00</updated>
<author>
<name>Sebastien Hertz</name>
<email>shertz@google.com</email>
</author>
<published>2015-04-03T14:07:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=45b1597c152af90f6d5792d02b64fd4e7c81ac9d'/>
<id>45b1597c152af90f6d5792d02b64fd4e7c81ac9d</id>
<content type='text'>
Creates AbortTransactionV taking a va_list argument and renames
AbortTransaction to AbortTransactionF which calls AbortTransactionV.

This fixes the compiler_driver_test under valgrind.

Change-Id: Ia1c57330091c055ae9e46585a944ce0b78864920
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Creates AbortTransactionV taking a va_list argument and renames
AbortTransaction to AbortTransactionF which calls AbortTransactionV.

This fixes the compiler_driver_test under valgrind.

Change-Id: Ia1c57330091c055ae9e46585a944ce0b78864920
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix interpreter to allow 0 size sparse switches.</title>
<updated>2015-03-21T02:44:35+00:00</updated>
<author>
<name>Jeff Hao</name>
<email>jeffhao@google.com</email>
</author>
<published>2015-03-21T02:44:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=935e01a1e4c0f0ac257c5a9b71bda50a9d441fa3'/>
<id>935e01a1e4c0f0ac257c5a9b71bda50a9d441fa3</id>
<content type='text'>
Bug: 19827056
Change-Id: I12eaf717f1a4b9bd5e0c8e2a508df9da4e61c4ec
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bug: 19827056
Change-Id: I12eaf717f1a4b9bd5e0c8e2a508df9da4e61c4ec
</pre>
</div>
</content>
</entry>
<entry>
<title>ART: Refactor unstarted runtime</title>
<updated>2015-03-11T16:27:03+00:00</updated>
<author>
<name>Andreas Gampe</name>
<email>agampe@google.com</email>
</author>
<published>2015-03-09T19:57:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=2969bcdcd80624e4a4fef696b54c2c76b44b6853'/>
<id>2969bcdcd80624e4a4fef696b54c2c76b44b6853</id>
<content type='text'>
Refactor and clean up unstarted runtime.

Bug: 19542228
Change-Id: Ib3e4b3517e06e8242d4fed32ca59419fef553a47
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor and clean up unstarted runtime.

Bug: 19542228
Change-Id: Ib3e4b3517e06e8242d4fed32ca59419fef553a47
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove ThrowLocation.</title>
<updated>2015-03-10T14:51:11+00:00</updated>
<author>
<name>Nicolas Geoffray</name>
<email>ngeoffray@google.com</email>
</author>
<published>2015-03-10T11:03:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=0aa50ce2fb75bfc2e815a0c33adf9b049561923b'/>
<id>0aa50ce2fb75bfc2e815a0c33adf9b049561923b</id>
<content type='text'>
Note that this is a cleanup change, and has no functionality change.
The ThrowLocation had no use anymore.

Change-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Note that this is a cleanup change, and has no functionality change.
The ThrowLocation had no use anymore.

Change-Id: I3d2126af1dc673cec3a0453ff3d56a172663a5f6
</pre>
</div>
</content>
</entry>
<entry>
<title>ART: Introduce NO_RETURN, Mark DoLongJump noreturn</title>
<updated>2015-02-23T18:23:06+00:00</updated>
<author>
<name>Andreas Gampe</name>
<email>agampe@google.com</email>
</author>
<published>2015-02-23T16:12:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.replicant.us/replicant/art/commit/?id=794ad76e8d5b5b9132819d5b08a0570e27615644'/>
<id>794ad76e8d5b5b9132819d5b08a0570e27615644</id>
<content type='text'>
Add NO_RETURN macro that adds C++11 noreturn attribute. Mark
DoLongJump methods as noreturn.

Change-Id: Ifde4318e370493237050d4c1349285a0382df23f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add NO_RETURN macro that adds C++11 noreturn attribute. Mark
DoLongJump methods as noreturn.

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