OSDN Git Service

android-x86/art.git
8 years agoRevert "Hold dex caches live in class table"
Brian Carlstrom [Sat, 4 Jun 2016 00:46:17 +0000 (00:46 +0000)]
Revert "Hold dex caches live in class table"
am: f102faf1bc

* commit 'f102faf1bcbdb2149e3e7bf27b1819f621b7894b':
  Revert "Hold dex caches live in class table"

Change-Id: I048421781af100212e6e8826c5dbbc5d8ca2877c

8 years agoRevert "Hold dex caches live in class table"
Brian Carlstrom [Sat, 4 Jun 2016 00:22:32 +0000 (00:22 +0000)]
Revert "Hold dex caches live in class table"

This reverts commit d6d49e56c2b7b11f474acb80cb02bb1fe9b7861e.

Bug: 29083330
Change-Id: Ie209b27897b8079f2d13fd0837fe5f83a7e61afc

8 years agoHold dex caches live in class table
Mathieu Chartier [Fri, 3 Jun 2016 20:50:41 +0000 (20:50 +0000)]
Hold dex caches live in class table
am: d6d49e56c2

* commit 'd6d49e56c2b7b11f474acb80cb02bb1fe9b7861e':
  Hold dex caches live in class table

Change-Id: I81bb893896d8c16762a78f2e3735e4ed26a27f69

8 years agoHold dex caches live in class table
Mathieu Chartier [Thu, 2 Jun 2016 18:48:30 +0000 (11:48 -0700)]
Hold dex caches live in class table

Prevents temporary dex caches being unloaded for the same dex file.
Usually this is OK, but if someone resolved a string in that dex
cache, it could leave stale pointers in BSS. Also it can use extra
memory in linear alloc if we allocate dex cache arrays multiple
times.

Bug: 29083330

(cherry picked from commit f284d448e3edd428b6ade473d0993028638b2064)

Change-Id: Ie1b0b0cf835a998e19227cbb90014011a6cd40c4

8 years agoDelay dex-to-dex compilation until Optimizing is done.
Vladimir Marko [Fri, 3 Jun 2016 14:27:22 +0000 (14:27 +0000)]
Delay dex-to-dex compilation until Optimizing is done.
am: b089eccf50

* commit 'b089eccf503646e6ed2d5bb20d973d9131166655':
  Delay dex-to-dex compilation until Optimizing is done.

Change-Id: I33105e36ec363b43e561ee60d31d31d7b2929a25

8 years agoFix ArtMethod::GetInvokeType for static methods on interfaces.
Nicolas Geoffray [Fri, 3 Jun 2016 12:51:03 +0000 (12:51 +0000)]
Fix ArtMethod::GetInvokeType for static methods on interfaces.
am: 2dc77ecf37

* commit '2dc77ecf375882f51ff7c09712c05b80e58abb6b':
  Fix ArtMethod::GetInvokeType for static methods on interfaces.

Change-Id: I41fc36cf86e2b3f2961b41206e6e85b0f3ea418c

8 years agoDelay dex-to-dex compilation until Optimizing is done.
Vladimir Marko [Wed, 1 Jun 2016 17:38:43 +0000 (18:38 +0100)]
Delay dex-to-dex compilation until Optimizing is done.

This fixes a race between inlining in the Optimizing
backend and dex-to-dex quickening where the Optimizing can
read the non-quickened opcode and then the quickened field
index or vtable index and look up the wrong field or method.
Even if we such tearing of the dex instruction does not
happen, the possible reordering of dex-to-dex and Optimizing
compilation makes the final oat file non-deterministic.

Also, remove VerificationResults::RemoveVerifiedMethod() as
we have only the Optimizing backend now and as such it was
dead code and would have interfered with this change.

Bug: 29043547
Bug: 29089975

(cherry picked from commit 492a7fa6df3b197a24099a50f5abf624164f3842)

Change-Id: I1337b772dc69318393845a790e5f6d38aa3de60f

8 years agoFix ArtMethod::GetInvokeType for static methods on interfaces.
Nicolas Geoffray [Thu, 2 Jun 2016 14:55:48 +0000 (15:55 +0100)]
Fix ArtMethod::GetInvokeType for static methods on interfaces.

And avoid calling ResolveMethod in the JIT, since it already
knows that method.

bug:29089267
bug:27521545

Change-Id: I5c5dae385804f1d2062defca459f69c26cdb4fef

8 years agoFix a bug in reference type propagation.
Nicolas Geoffray [Thu, 2 Jun 2016 14:51:40 +0000 (14:51 +0000)]
Fix a bug in reference type propagation.
am: e1dfa0c120

* commit 'e1dfa0c120c8aaa3794d9712e37231b4295d7c46':
  Fix a bug in reference type propagation.

Change-Id: Ib207828aa82c43ef1b56914f4bbf68a866647609

8 years agoFix a bug in reference type propagation.
Nicolas Geoffray [Wed, 1 Jun 2016 15:30:20 +0000 (16:30 +0100)]
Fix a bug in reference type propagation.

The upper bound of a bound type is always exact, so we should
not use it for setting the type of the bound type.

bug:28730986

(cherry picked from commit a90d489ab101891bbac7276b8748125e6b4fa0c2)

Change-Id: Ia3e9f88a274730be39e5c9b147204eec2a145de2

8 years agoMerge "Don\'t do any I/O when starting the profile saver" into nyc-dev
Calin Juravle [Thu, 2 Jun 2016 10:18:15 +0000 (10:18 +0000)]
Merge "Don\'t do any I/O when starting the profile saver" into nyc-dev
am: a833974c69

* commit 'a833974c6991fab4aa06c622454fe41001bc620f':
  Don't do any I/O when starting the profile saver

Change-Id: I451095eddf40890a778dc0d03eb4303f724f027a

8 years agoMerge "Don't do any I/O when starting the profile saver" into nyc-dev
Calin Juravle [Thu, 2 Jun 2016 10:10:35 +0000 (10:10 +0000)]
Merge "Don't do any I/O when starting the profile saver" into nyc-dev

8 years agoMerge "Fix race with host_dlopen_handles_" into nyc-dev
Mathieu Chartier [Wed, 1 Jun 2016 23:08:44 +0000 (23:08 +0000)]
Merge "Fix race with host_dlopen_handles_" into nyc-dev
am: c87c9bf620

* commit 'c87c9bf620467169fd12507a7b1f6f3dc1b34f77':
  Fix race with host_dlopen_handles_

Change-Id: I6e9de7430b623314d1c7ab7dfaed79f0024bc348

8 years agoInitial profman support for verbose dump
David Sehr [Wed, 1 Jun 2016 23:08:42 +0000 (23:08 +0000)]
Initial profman support for verbose dump
am: 07f468f117

* commit '07f468f117c4c30a032b7884c08cb1dd2964444e':
  Initial profman support for verbose dump

Change-Id: I9decde424c8cbb3fee06d5e3043019cf656025ae

8 years agoMerge "Fix race with host_dlopen_handles_" into nyc-dev
Mathieu Chartier [Wed, 1 Jun 2016 22:38:10 +0000 (22:38 +0000)]
Merge "Fix race with host_dlopen_handles_" into nyc-dev

8 years agoFix race with host_dlopen_handles_
Mathieu Chartier [Wed, 1 Jun 2016 17:48:19 +0000 (10:48 -0700)]
Fix race with host_dlopen_handles_

Thread 1 opens an already opened oat file.
Thread 2 dlcloses the oat file and removes it from
host_dlopen_handles_.
Thread 1 checks that it is not already in host_dlopen_handles_ and
proceeds to return the oat file. The problem now is that the BSS is
not cleared since it is the same oat file that was opened earlier.

The fix is to just hold the lock for dlopen / dlclose. This only
affects contention on host.

Bug: 28992179
Bug: 28990799
Bug: 28826195

(cherry picked from commit c7d3f4b8c294f36209ea2c129f9714a36ae1ec6b)

Change-Id: Ib462720fab26427d8ca0c6323080604878edb8b5

8 years agoInitial profman support for verbose dump
David Sehr [Tue, 24 May 2016 21:52:31 +0000 (14:52 -0700)]
Initial profman support for verbose dump

Bug: 28748264
Change-Id: Ibc59e7f31afa4646fcf048eececb87437dd83de9

8 years agoMerge "Relax annotation visibility so runtime includes build." into nyc-dev
Jeff Hao [Sat, 28 May 2016 01:18:54 +0000 (01:18 +0000)]
Merge "Relax annotation visibility so runtime includes build." into nyc-dev
am: aec92c397e

* commit 'aec92c397e73b74187c8d517f6cf439ba6147f4d':
  Relax annotation visibility so runtime includes build.

Change-Id: Ifbc56bc5413780813d83377818f396663f75c270

8 years agoMerge "Relax annotation visibility so runtime includes build." into nyc-dev
TreeHugger Robot [Sat, 28 May 2016 01:15:50 +0000 (01:15 +0000)]
Merge "Relax annotation visibility so runtime includes build." into nyc-dev

8 years agoRelax annotation visibility so runtime includes build.
Jeff Hao [Fri, 27 May 2016 01:39:17 +0000 (18:39 -0700)]
Relax annotation visibility so runtime includes build.

Previous behavior in M and earlier would allow annotations marked
VISIBILITY_BUILD to be visible to the runtime when they should not
have been. When targeting older sdks, revert to this behavior.

Bug: 28826610
Change-Id: I95e10da899ed11107ca78c62dd2e263808008310

8 years agoMerge "Don\'t use dlopen on host for already loaded oat files." into nyc-dev
Richard Uhler [Fri, 27 May 2016 21:03:23 +0000 (21:03 +0000)]
Merge "Don\'t use dlopen on host for already loaded oat files." into nyc-dev
am: a26e5d0cb0

* commit 'a26e5d0cb095c6ec88ae4ee517a3cd805edb50e2':
  Don't use dlopen on host for already loaded oat files.

Change-Id: I9a6e97bcb066b5abfa3b009ada58439772c6e957

8 years agoMerge "Don't use dlopen on host for already loaded oat files." into nyc-dev
Richard Uhler [Fri, 27 May 2016 20:50:15 +0000 (20:50 +0000)]
Merge "Don't use dlopen on host for already loaded oat files." into nyc-dev

8 years agoDon't use dlopen on host for already loaded oat files.
Richard Uhler [Tue, 24 May 2016 22:04:22 +0000 (15:04 -0700)]
Don't use dlopen on host for already loaded oat files.

Because the behavior of dlopen on the host is different then the
target in that case, and it causes tests to fail.

Bug: 28826195

(cherry picked from commit a206c745dbb64b14f05c87891d425475c2f6d63a)

Change-Id: I29b04be07b4d26dc1ac5e6f35550745eb15e6728

8 years agoMerge "Remove duplicate libcore failures expectations." into nyc-dev
Roland Levillain [Fri, 27 May 2016 11:24:11 +0000 (11:24 +0000)]
Merge "Remove duplicate libcore failures expectations." into nyc-dev
am: 5eda8d2a60

* commit '5eda8d2a60e8da89336e2a1eba5fd2f7edaf2e1b':
  Remove duplicate libcore failures expectations.

Change-Id: I5b03108e70bc7a2ecc53d1d998d019c0f3aff553

8 years agoMerge "Remove duplicate libcore failures expectations." into nyc-dev
Narayan Kamath [Fri, 27 May 2016 11:14:56 +0000 (11:14 +0000)]
Merge "Remove duplicate libcore failures expectations." into nyc-dev

8 years agoDon\'t use JACK alpha anymore.
Nicolas Geoffray [Fri, 27 May 2016 10:21:23 +0000 (10:21 +0000)]
Don\'t use JACK alpha anymore.
am: 1c23f83ba6

* commit '1c23f83ba672611428f8993cb2a7770bee06e4a1':
  Don't use JACK alpha anymore.

Change-Id: If451f4e2ed0399831ea7afe6989fa12e7cb63c0b

8 years agoDon't use JACK alpha anymore.
Nicolas Geoffray [Thu, 14 Apr 2016 12:32:01 +0000 (13:32 +0100)]
Don't use JACK alpha anymore.

(cherry picked from commit 99e6d2d9b2585f605e02041f351b494f82f82121)

Bug: 28977632
Change-Id: Id37d90446be5d63cb0cf0131e34b562147e88335

8 years agoRemove duplicate libcore failures expectations.
Roland Levillain [Thu, 26 May 2016 16:38:46 +0000 (17:38 +0100)]
Remove duplicate libcore failures expectations.

Some jsr166 entries were already listed in
libcore/expectations/knownfailures.txt.

Bug: 28977632
Change-Id: I35788008262bac6f10d96f53e8e8f21e2364f091

8 years agoDon't do any I/O when starting the profile saver
Calin Juravle [Wed, 25 May 2016 15:45:16 +0000 (16:45 +0100)]
Don't do any I/O when starting the profile saver

The profile saver is started when the application is launched. During
the start we used to prepare the paths and transform them to canonical
paths to make sure we do the foreign dex checks on the actual paths.

Postpone the canonical path transformation to a later point to make sure
the impact is minimal.

Bug: 28785119
Bug: 28625993
Change-Id: I1aa378cdefde6ed6dc708762392db0f3a3158812

8 years agoMerge "Fix OatWriter to update the header checksum correctly." into nyc-dev
Vladimir Marko [Thu, 26 May 2016 11:44:26 +0000 (11:44 +0000)]
Merge "Fix OatWriter to update the header checksum correctly." into nyc-dev
am: 6c5b9b9113

* commit '6c5b9b91136aa4939d0252eb719c86289c72780e':
  Fix OatWriter to update the header checksum correctly.

Change-Id: Iff4c0b48f9314ed903d8396f83b30995bca0313d

8 years agoMerge "Fix OatWriter to update the header checksum correctly." into nyc-dev
Vladimir Marko [Thu, 26 May 2016 11:35:24 +0000 (11:35 +0000)]
Merge "Fix OatWriter to update the header checksum correctly." into nyc-dev

8 years agoMerge "Prune class path classes from profile" into nyc-dev
Mathieu Chartier [Thu, 26 May 2016 02:10:27 +0000 (02:10 +0000)]
Merge "Prune class path classes from profile" into nyc-dev
am: f498cd2a5e

* commit 'f498cd2a5e308ec4b66a1a0e363fe1c387bf1307':
  Prune class path classes from profile

Change-Id: Ibd4f400ea5dfee7a0536fd4a2923d74e74029416

8 years agoMerge "Prune class path classes from profile" into nyc-dev
Mathieu Chartier [Thu, 26 May 2016 01:38:14 +0000 (01:38 +0000)]
Merge "Prune class path classes from profile" into nyc-dev

8 years agoPrune class path classes from profile
Mathieu Chartier [Wed, 25 May 2016 22:05:59 +0000 (15:05 -0700)]
Prune class path classes from profile

Fixes a theoretical case where classes not in the app, but in the in
the class path could have been included in the image. The dex caches
for these classes are not properly handled and need to be pruned.
Not including the classes in the image classes makes sure the that
class linker automatically prunes them and frees the dex cache with
the explicit garbage collection.

Bug: 28452385
Change-Id: Ia44813863b5f1c79367049838021a64cc3842fc9

8 years agoMerge "Fix profile saver reference point when calculating the sleep time" into nyc-dev
Calin Juravle [Wed, 25 May 2016 21:47:45 +0000 (21:47 +0000)]
Merge "Fix profile saver reference point when calculating the sleep time" into nyc-dev
am: 38a68c7c05

* commit '38a68c7c05682e5489831de0b5894d4558f7246c':
  Fix profile saver reference point when calculating the sleep time

Change-Id: I49de08641419ccdb7ef654b14c9cbaecf9fc1cc4

8 years agoMerge "Fix profile saver reference point when calculating the sleep time" into nyc-dev
TreeHugger Robot [Wed, 25 May 2016 21:35:45 +0000 (21:35 +0000)]
Merge "Fix profile saver reference point when calculating the sleep time" into nyc-dev

8 years agoMerge changes Idf64b96b,Ie717089d into nyc-dev
Richard Uhler [Wed, 25 May 2016 19:29:16 +0000 (19:29 +0000)]
Merge changes Idf64b96b,Ie717089d into nyc-dev
am: c52269542a

* commit 'c52269542a652250c011018f602d1db346f6cd68':
  Base isDexOptNeeded result on OatFileAssistant::IsUpToDate.
  Only compile dex files if they are not up to date.

Change-Id: Ie20c820d8339bdd2c79d2a6dbe9e5b3ef7192f3b

8 years agoMerge changes Idf64b96b,Ie717089d into nyc-dev
Richard Uhler [Wed, 25 May 2016 19:18:07 +0000 (19:18 +0000)]
Merge changes Idf64b96b,Ie717089d into nyc-dev

* changes:
  Base isDexOptNeeded result on OatFileAssistant::IsUpToDate.
  Only compile dex files if they are not up to date.

8 years agoFix profile saver reference point when calculating the sleep time
Calin Juravle [Wed, 25 May 2016 17:09:53 +0000 (18:09 +0100)]
Fix profile saver reference point when calculating the sleep time

It is wrong to use last_time_ns_saver_woke_up_ as a reference. We should
use sleep_start.

Bug: 28953776
Change-Id: I88ab36c18b3b7b6e310bcdc6c59cadedc4cc9260

8 years agoFix OatWriter to update the header checksum correctly.
Vladimir Marko [Wed, 25 May 2016 11:49:49 +0000 (12:49 +0100)]
Fix OatWriter to update the header checksum correctly.

Make sure we update the checksum with dex file data, type
lookup tables and thunks produced by the relative patcher.

Bug: 28874264
Change-Id: I5b83237132ccb784acea6c195d0ed909ee33b99a

8 years agoMerge "Remove bogus DCHECK." into nyc-dev
Nicolas Geoffray [Wed, 25 May 2016 16:56:33 +0000 (16:56 +0000)]
Merge "Remove bogus DCHECK." into nyc-dev
am: 26da99595f

* commit '26da99595fd9b4298af68937c1c6302faec4e4da':
  Remove bogus DCHECK.

Change-Id: I0590bd737d54d3cecaa89c4ae0500160ab48d3a9

8 years agoMerge "Remove bogus DCHECK." into nyc-dev
TreeHugger Robot [Wed, 25 May 2016 16:51:24 +0000 (16:51 +0000)]
Merge "Remove bogus DCHECK." into nyc-dev

8 years agoAvoid long sleep in ProfileSaver
Brian Carlstrom [Wed, 25 May 2016 15:41:56 +0000 (15:41 +0000)]
Avoid long sleep in ProfileSaver
am: 8f15335d96

* commit '8f15335d96eef7a3bcdd4f2b309a727791b67e68':
  Avoid long sleep in ProfileSaver

Change-Id: I7c1f68449cfec3fa4cc8578515f31e4182e383df

8 years agoRemove bogus DCHECK.
Nicolas Geoffray [Wed, 25 May 2016 13:52:37 +0000 (14:52 +0100)]
Remove bogus DCHECK.

bug:28771056

(cherry picked from commit 0950abe82f86a9943feb7719876ec291c6581037)

Change-Id: I8c5b737c0882ecb8d67d8f799356f30afe3dd87b

8 years agoAvoid long sleep in ProfileSaver
Brian Carlstrom [Wed, 25 May 2016 02:45:30 +0000 (19:45 -0700)]
Avoid long sleep in ProfileSaver

This was due to subtracting a >20s number of nanos from the constant for 20s.

Bug: 28880120
Change-Id: Ia30b80661f869843484cbac029008530128bd300

8 years agoFix broken DCHECK
Mathieu Chartier [Wed, 25 May 2016 01:27:16 +0000 (01:27 +0000)]
Fix broken DCHECK
am: 55accd5725

* commit '55accd5725442026c8c32dc773b1cd12a65f90f6':
  Fix broken DCHECK

Change-Id: I015af6d4e11db54c8784a76085e1c2607a7c8123

8 years agoFix broken DCHECK
Mathieu Chartier [Wed, 25 May 2016 00:41:21 +0000 (17:41 -0700)]
Fix broken DCHECK

Dex cache may now contain references into boot image. Only check
classes that are actually in the application image.

Bug: 28295348

Change-Id: I9d92137c99a53924b13182ded6afabdeb441437d

8 years agoMerge "Add methods with samples during launch to profile" into nyc-dev
Mathieu Chartier [Wed, 25 May 2016 00:22:55 +0000 (00:22 +0000)]
Merge "Add methods with samples during launch to profile" into nyc-dev
am: db6a864ed4

* commit 'db6a864ed402c2c7028e9b545d43182391d6bab6':
  Add methods with samples during launch to profile

Change-Id: Ic1a4cf1475071c2dc3e3f8c7f837c68881d36d1b

8 years agoMerge "Add methods with samples during launch to profile" into nyc-dev
Mathieu Chartier [Tue, 24 May 2016 23:30:03 +0000 (23:30 +0000)]
Merge "Add methods with samples during launch to profile" into nyc-dev

8 years agoMerge "Fix an assert during jdwp debugging." into nyc-dev
Mingyao Yang [Tue, 24 May 2016 23:16:22 +0000 (23:16 +0000)]
Merge "Fix an assert during jdwp debugging." into nyc-dev
am: 988df5652d

* commit '988df5652dad6bea8f7395b86d0ff0bc9364d0b0':
  Fix an assert during jdwp debugging.

Change-Id: I5247545c6f5d836321267c4406150ca6babcd8e7

8 years agoMerge "Revert "Revert "Move rewritten StringFactory call results into dex registers...
Mingyao Yang [Tue, 24 May 2016 23:16:21 +0000 (23:16 +0000)]
Merge "Revert "Revert "Move rewritten StringFactory call results into dex registers for deopt""" into nyc-dev
am: 3176415348

* commit '31764153483a77124c8c52d512fa7ef6dcc16fa6':
  Revert "Revert "Move rewritten StringFactory call results into dex registers for deopt""

Change-Id: If69888d6d11ab3bbedbdc2902ab1cbde9d4873c0

8 years agoMerge "Fix an assert during jdwp debugging." into nyc-dev
Mingyao Yang [Tue, 24 May 2016 23:09:36 +0000 (23:09 +0000)]
Merge "Fix an assert during jdwp debugging." into nyc-dev

8 years agoMerge "Revert "Revert "Move rewritten StringFactory call results into dex registers...
Mingyao Yang [Tue, 24 May 2016 23:09:23 +0000 (23:09 +0000)]
Merge "Revert "Revert "Move rewritten StringFactory call results into dex registers for deopt""" into nyc-dev

8 years agoBase isDexOptNeeded result on OatFileAssistant::IsUpToDate.
Richard Uhler [Tue, 24 May 2016 22:42:37 +0000 (15:42 -0700)]
Base isDexOptNeeded result on OatFileAssistant::IsUpToDate.

So that it is consistent with when ART will try to run dex2oat.

Bug: 28826195
Change-Id: Idf64b96bf9a6f4ee67dd1af78e6177e078a3c593

8 years agoOnly compile dex files if they are not up to date.
Richard Uhler [Tue, 17 May 2016 17:34:52 +0000 (10:34 -0700)]
Only compile dex files if they are not up to date.

Instead of trying to compile them all the time, and relying on file
permissions to keep us from overwriting up-to-date dex files with
different compiler filters.

Bug: 27641809
Bug: 28639246
Bug: 28826195
Change-Id: Ie717089d58517427b6f9a522b48146761c57a1a9

8 years agoAdd methods with samples during launch to profile
Mathieu Chartier [Wed, 18 May 2016 15:51:52 +0000 (08:51 -0700)]
Add methods with samples during launch to profile

For the snapshot taken after application launch we look at all of
the methods with one or more samples.

Launch time:
books: 1933ms -> 1457ms (33% speedup).
plus: 1361ms -> 1260ms (8% speedup)
music: 3085ms -> 2963ms (4% speedup)
maps: 1583ms -> 1390ms (14% speedup)

Oat sizes:
books: 10871424 -> 13365888 (+23%)
plus: 17715624 -> 19493288 (+13%)
music: 17076864 -> 18289280 (+7%)
maps: 32264832 -> 35787392 (+12%)

Bug: 28750506

Change-Id: I3a955dc74b41a96911254ac5087de77bea2267c7

8 years agoMerge "Fix bug in verifier: soft fail was hiding hard fail." into nyc-dev
Aart Bik [Tue, 24 May 2016 20:13:05 +0000 (20:13 +0000)]
Merge "Fix bug in verifier: soft fail was hiding hard fail." into nyc-dev
am: 1621936c1b

* commit '1621936c1bdf8263e7e9f2d88f16ccaad5d3de81':
  Fix bug in verifier: soft fail was hiding hard fail.

Change-Id: I519f25a72c51306f19b99606aa731d19c17a4943

8 years agoMerge "Don\'t update checksum if data ptr is null." into nyc-dev
Jeff Hao [Tue, 24 May 2016 20:13:03 +0000 (20:13 +0000)]
Merge "Don\'t update checksum if data ptr is null." into nyc-dev
am: ea14dfea44

* commit 'ea14dfea44b3a7e4426709914d98092ff1db5a5c':
  Don't update checksum if data ptr is null.

Change-Id: I697528ae47654455f07993ff9115a1a576e1edf4

8 years agoMerge "Fix bug in verifier: soft fail was hiding hard fail." into nyc-dev
Aart Bik [Tue, 24 May 2016 19:51:37 +0000 (19:51 +0000)]
Merge "Fix bug in verifier: soft fail was hiding hard fail." into nyc-dev

8 years agoMerge "Don't update checksum if data ptr is null." into nyc-dev
TreeHugger Robot [Tue, 24 May 2016 19:44:05 +0000 (19:44 +0000)]
Merge "Don't update checksum if data ptr is null." into nyc-dev

8 years agoMerge "Put boot class loader classes and strings in dex cache of app images." into...
Nicolas Geoffray [Tue, 24 May 2016 18:50:40 +0000 (18:50 +0000)]
Merge "Put boot class loader classes and strings in dex cache of app images." into nyc-dev
am: 8fdde87a55

* commit '8fdde87a55eb36da90ee170bd75ee7778f2702b8':
  Put boot class loader classes and strings in dex cache of app images.

Change-Id: I0c441094603867c40da246adc263048d05d6fa12

8 years agoMerge "Put boot class loader classes and strings in dex cache of app images." into...
TreeHugger Robot [Tue, 24 May 2016 18:26:18 +0000 (18:26 +0000)]
Merge "Put boot class loader classes and strings in dex cache of app images." into nyc-dev

8 years agoDon't update checksum if data ptr is null.
Jeff Hao [Tue, 24 May 2016 02:17:04 +0000 (19:17 -0700)]
Don't update checksum if data ptr is null.

Passing a nullptr to adler32 resets it to its initial value.

Bug: 28874264
Change-Id: I863fa4d489618c1c6fa579cc89fb050f4cd23760

8 years agoFix bug in verifier: soft fail was hiding hard fail.
Aart Bik [Mon, 23 May 2016 21:58:49 +0000 (14:58 -0700)]
Fix bug in verifier: soft fail was hiding hard fail.

Rationale:
Dexfuzzing found a situation where a soft fail (modifying
a final field) was hiding a hard fail (type error on that
field), which caused a crash in the compiler later on.
Also added a crash-before/pass-after regression test,
so we don't add the return by accident later.

BUG=28908555

(cherry picked from commit c2bc26513ea7c5e2dd9f3b102fb23fd207e4ce63)

Change-Id: Ie79c4afa28cddbca4dfb78e5c75da6644612c15c

8 years agoRevert "Revert "Move rewritten StringFactory call results into dex registers for...
Mingyao Yang [Thu, 19 May 2016 17:48:40 +0000 (10:48 -0700)]
Revert "Revert "Move rewritten StringFactory call results into dex registers for deopt""

Potential gc points can make the result value stale. We now set the result value
to null proactively once it's moved to shadow frame registers. IsStringInit()
is written in a way that does string comparison instead of requiring method
resolution so that it doesn't have a gc point. Also we don't cache the callee
method during frame unwinding since the method may be rewritten already.

(cherry picked from commit ffedec510c07cf0f77d0cce51940838f2e630514)

Bug: 28555675

Change-Id: Ic51511a4a0fc84a852d8d907f91e7835f49ac478

8 years agoMerge "Compile JNI stubs for verify-profile and interpret-only." into nyc-dev
Vladimir Marko [Tue, 24 May 2016 15:45:56 +0000 (15:45 +0000)]
Merge "Compile JNI stubs for verify-profile and interpret-only." into nyc-dev
am: 67e44c0aef

* commit '67e44c0aef679038eda36b6155a8a63c85a521cc':
  Compile JNI stubs for verify-profile and interpret-only.

Change-Id: Icf0a7e811270f52230851a5c5d4bc02eca80f3d0

8 years agoMerge "Remove no-op call to android_update_LD_LIBRARY_PATH" into nyc-dev
Dimitry Ivanov [Tue, 24 May 2016 15:45:55 +0000 (15:45 +0000)]
Merge "Remove no-op call to android_update_LD_LIBRARY_PATH" into nyc-dev
am: 05f221c84b

* commit '05f221c84b02580838b980b3605a25ce4e54cee0':
  Remove no-op call to android_update_LD_LIBRARY_PATH

Change-Id: I7c3b6f9213878bfffaf43156480740baa18e8625

8 years agoMerge "Compile JNI stubs for verify-profile and interpret-only." into nyc-dev
Vladimir Marko [Tue, 24 May 2016 15:40:04 +0000 (15:40 +0000)]
Merge "Compile JNI stubs for verify-profile and interpret-only." into nyc-dev

8 years agoMerge "Remove no-op call to android_update_LD_LIBRARY_PATH" into nyc-dev
Dimitry Ivanov [Tue, 24 May 2016 15:35:58 +0000 (15:35 +0000)]
Merge "Remove no-op call to android_update_LD_LIBRARY_PATH" into nyc-dev

8 years agoEnforce class definition ordering rules in v37 Dex files.
Roland Levillain [Tue, 24 May 2016 12:46:39 +0000 (12:46 +0000)]
Enforce class definition ordering rules in v37 Dex files.
am: 31349988d7

* commit '31349988d7c44fe453bde9525fd10a371e543c28':
  Enforce class definition ordering rules in v37 Dex files.

Change-Id: Ie6a437bc417a3ed30f1040f69b2beb66d3bbc635

8 years agoEnforce class definition ordering rules in v37 Dex files.
Roland Levillain [Wed, 18 May 2016 10:41:33 +0000 (11:41 +0100)]
Enforce class definition ordering rules in v37 Dex files.

These new checks also reject classes extending or
implementing themselves directly or transitively within
a single Dex file.

(cherry picked from commit 621b5eab8eed7746925bca489114d706ad455572)

Bug: 28812524
Bug: 28797012
Bug: 28685551
Bug: 27682580

Change-Id: I51c43f8b4b6a7abaade63682411e61f21767f5d4

8 years agoPut boot class loader classes and strings in dex cache of app images.
Nicolas Geoffray [Tue, 26 Apr 2016 17:30:31 +0000 (18:30 +0100)]
Put boot class loader classes and strings in dex cache of app images.

The reason for b/28295348 was that an ArtMethod of the boot image was
in the app image dex cache, but the declaring class of that
boot image method was not.

Since objects of boot images don't need fixups, the comparisons for
FixupStrings and FixupResolvedTypes was always false for them.

bug:28295348

Change-Id: Ida6d42c902692914c302b7fe3d003f73710de6e1

8 years agoRemove no-op call to android_update_LD_LIBRARY_PATH
Dimitry Ivanov [Tue, 24 May 2016 00:16:55 +0000 (17:16 -0700)]
Remove no-op call to android_update_LD_LIBRARY_PATH

With linker-namespaces enabled for all target sdk versions
the call to android_update_LD_LIBRARY_PATH is no longer needed.

Bug: http://b/26040253
Bug: http://b/27702070
Change-Id: I77c27c10a435e223824e1b69f727d0bc37a26306

8 years agoMerge "Fix oat_writer to use WriteData which updates checksum." into nyc-dev
Jeff Hao [Mon, 23 May 2016 23:27:02 +0000 (23:27 +0000)]
Merge "Fix oat_writer to use WriteData which updates checksum." into nyc-dev
am: 1d84c20c8c

* commit '1d84c20c8c7b7d30f23b5e6913e7dfdf79cb8f39':
  Fix oat_writer to use WriteData which updates checksum.

Change-Id: Ib24d46812f1f14b6bd35292aa4e30aa2c26ac553

8 years agoMerge "Fix oat_writer to use WriteData which updates checksum." into nyc-dev
Jeff Hao [Mon, 23 May 2016 23:18:09 +0000 (23:18 +0000)]
Merge "Fix oat_writer to use WriteData which updates checksum." into nyc-dev

8 years agoFix oat_writer to use WriteData which updates checksum.
Jeff Hao [Mon, 23 May 2016 21:30:44 +0000 (14:30 -0700)]
Fix oat_writer to use WriteData which updates checksum.

OatWriter was using WriteFully in some places instead.

Bug: 28874264
Change-Id: Ibaea4536a7838f49feb98efe9c00a976fb5b2453

8 years agoCompile JNI stubs for verify-profile and interpret-only.
Vladimir Marko [Mon, 23 May 2016 14:32:42 +0000 (15:32 +0100)]
Compile JNI stubs for verify-profile and interpret-only.

This is the intended behavior to have a good JNI transition
performance.

Bug: 28902384
Change-Id: Iedb2ca343d66cf422ef2dc0527639e81d6ba8960

8 years agoDo not set property jpda.settings.syncPort in JDWP tests.
Roland Levillain [Mon, 23 May 2016 15:07:29 +0000 (15:07 +0000)]
Do not set property jpda.settings.syncPort in JDWP tests.
am: 135d9f8819

* commit '135d9f881970d160405a93fbcab8206a2e6d498b':
  Do not set property jpda.settings.syncPort in JDWP tests.

Change-Id: Ia49b0bdd2f17da5008a65669aabd17cd02c2b5d1

8 years agoDo not set property jpda.settings.syncPort in JDWP tests.
Roland Levillain [Fri, 20 May 2016 17:16:54 +0000 (18:16 +0100)]
Do not set property jpda.settings.syncPort in JDWP tests.

Let the OS choose the port automatically.

(cherry picked from commit 7235dd15e47d6f4b5e92400269cc206e01c514da)

Bug: 28869570
Change-Id: I79775f9e72f7f8d0f9ec3d68c6f0bdb057ca13ff

8 years agoMerge "Only fill methods with 0xFE on debug builds" into nyc-dev
Mathieu Chartier [Fri, 20 May 2016 23:27:06 +0000 (23:27 +0000)]
Merge "Only fill methods with 0xFE on debug builds" into nyc-dev
am: 6b2f0b5775

* commit '6b2f0b5775380de2cb8714f9d2cee91ea4c6d543':
  Only fill methods with 0xFE on debug builds

Change-Id: I2deb4002dfeb4c618324cb4dfd2f0876e3425f20

8 years agoMerge "Only fill methods with 0xFE on debug builds" into nyc-dev
Mathieu Chartier [Fri, 20 May 2016 23:20:00 +0000 (23:20 +0000)]
Merge "Only fill methods with 0xFE on debug builds" into nyc-dev

8 years agoOnly fill methods with 0xFE on debug builds
Mathieu Chartier [Thu, 19 May 2016 17:13:04 +0000 (10:13 -0700)]
Only fill methods with 0xFE on debug builds

The GC scans classes without holding any locks, we can not fill
the methods if it is running. Added a GC critical section to address
this. Fixes random crash when scanning classes' methods.

Only for debug builds to not hurt performance.

Bug: 28699001
Change-Id: If96155eaf3fc0e6df31f57dcf32fbd4063b09345

8 years agoMerge "ART: Check whether an oat file exists before opening" into nyc-dev
Andreas Gampe [Thu, 19 May 2016 22:41:01 +0000 (22:41 +0000)]
Merge "ART: Check whether an oat file exists before opening" into nyc-dev
am: 1e8a22fa84

* commit '1e8a22fa849119aa8ea24b3811e74dea12bdb8c3':
  ART: Check whether an oat file exists before opening

Change-Id: If7aa7cb04a827073a840771eae63f6ecbe4a3cd9

8 years agoMerge "Do not allow OSR jump while debugging is active." into nyc-dev
Aart Bik [Thu, 19 May 2016 22:41:00 +0000 (22:41 +0000)]
Merge "Do not allow OSR jump while debugging is active." into nyc-dev
am: 8a325a905d

* commit '8a325a905df6bf8269bc8457bcbc665bf492ee1a':
  Do not allow OSR jump while debugging is active.

Change-Id: Ifc8b6b939b0474ffcd74c2c9bce799458b5511ae

8 years agoMerge "ART: Check whether an oat file exists before opening" into nyc-dev
Andreas Gampe [Thu, 19 May 2016 22:35:45 +0000 (22:35 +0000)]
Merge "ART: Check whether an oat file exists before opening" into nyc-dev

8 years agoMerge "Do not allow OSR jump while debugging is active." into nyc-dev
Aart Bik [Thu, 19 May 2016 22:34:19 +0000 (22:34 +0000)]
Merge "Do not allow OSR jump while debugging is active." into nyc-dev

8 years agoDo not allow OSR jump while debugging is active.
Aart Bik [Wed, 18 May 2016 22:44:07 +0000 (15:44 -0700)]
Do not allow OSR jump while debugging is active.

Rationale:
This prevents dangerous transitions between interpreter
and osr compiled code while e.g. single stepping through
a method that is becoming hot.

BUG=28672961

(cherry picked from commit 29bdaeef925f35eed68f3e52d04416daa0a62317)

Change-Id: I7647710dbe794a1b3320a9666d3e3be85fc40ccd

8 years agoMerge "Add missing check for IsShuttingDown in profile saver" into nyc-dev
Calin Juravle [Thu, 19 May 2016 19:12:37 +0000 (19:12 +0000)]
Merge "Add missing check for IsShuttingDown in profile saver" into nyc-dev
am: 29173dece8

* commit '29173dece894749d9e37fd9a93cb911ee36c1b41':
  Add missing check for IsShuttingDown in profile saver

Change-Id: Ie5f389bff7e7cf43b3740987d28098d4bf0bfe25

8 years agoMerge "Add missing check for IsShuttingDown in profile saver" into nyc-dev
TreeHugger Robot [Thu, 19 May 2016 18:52:34 +0000 (18:52 +0000)]
Merge "Add missing check for IsShuttingDown in profile saver" into nyc-dev

8 years agoMerge "Fix profile saver initial wait" into nyc-dev
Mathieu Chartier [Thu, 19 May 2016 17:23:31 +0000 (17:23 +0000)]
Merge "Fix profile saver initial wait" into nyc-dev
am: 84c5ad8ea5

* commit '84c5ad8ea51f8fde8eedddd3dc979dcc1f6e02aa':
  Fix profile saver initial wait

Change-Id: I4ec430e720673bf19af856edab13cbd1b3199d96

8 years agoAdd missing check for IsShuttingDown in profile saver
Calin Juravle [Wed, 18 May 2016 22:49:36 +0000 (15:49 -0700)]
Add missing check for IsShuttingDown in profile saver

Bug: 28814718
Change-Id: I709fc30147047c7a420cd6ff2f0c3b57c54c2021

8 years agoMerge "Fix profile saver initial wait" into nyc-dev
Mathieu Chartier [Thu, 19 May 2016 17:04:35 +0000 (17:04 +0000)]
Merge "Fix profile saver initial wait" into nyc-dev

8 years agoMerge "Revert "Move rewritten StringFactory call results into dex registers for deopt...
Roland Levillain [Thu, 19 May 2016 14:40:58 +0000 (14:40 +0000)]
Merge "Revert "Move rewritten StringFactory call results into dex registers for deopt"" into nyc-dev
am: 79d123fae7

* commit '79d123fae76a8c03983a37997f2e2039f7e2bc96':
  Revert "Move rewritten StringFactory call results into dex registers for deopt"

Change-Id: I5782a3c70910e9cb7644059288c50b9e34c45d8c

8 years agoMerge "Revert "Move rewritten StringFactory call results into dex registers for deopt...
TreeHugger Robot [Thu, 19 May 2016 14:30:18 +0000 (14:30 +0000)]
Merge "Revert "Move rewritten StringFactory call results into dex registers for deopt"" into nyc-dev

8 years agoRevert "Move rewritten StringFactory call results into dex registers for deopt"
Roland Levillain [Thu, 19 May 2016 13:00:55 +0000 (13:00 +0000)]
Revert "Move rewritten StringFactory call results into dex registers for deopt"

This reverts commit 0ea451b4d74e8ddc28ea5ce87ef6d21113a3cdd5.

597-deopt-new-string is failing.

Bug: 28846692
Bug: 28555675
Change-Id: I8274e5ae1d065dedc562132882b39e7f3fe5baf4

8 years agoART: Fix Mac build
Andreas Gampe [Thu, 19 May 2016 05:11:44 +0000 (05:11 +0000)]
ART: Fix Mac build
am: 17fc4bda79

* commit '17fc4bda7987654709dcc24ea5a7bd6a859e0966':
  ART: Fix Mac build

Change-Id: Ie955a9907abcb1a94b0c6106bb573d9b42288f6c

8 years agoART: Fix Mac build
Andreas Gampe [Thu, 19 May 2016 04:27:00 +0000 (21:27 -0700)]
ART: Fix Mac build

Follow-up to 9821cceebf077cb747aed543582b3d740a03ea7f.

Bug: 28801010
Change-Id: I0bbdf83d64ea81e56824aa19bfae3baa341a2b73

8 years agoART: Check whether an oat file exists before opening
Andreas Gampe [Thu, 19 May 2016 04:10:42 +0000 (21:10 -0700)]
ART: Check whether an oat file exists before opening

The two-stage process of dlopen and our own loader is expensive.
Considering that the OatFileAssistant needs to check two locations,
one of which is unlikely to have a file for the common case of apps
installed in data, do a file existence check before attempting to
load the file.

Remove an unused variable.

Saves about 0.25ms on a N6P.

Bug: 28801010
Change-Id: I0aff9c276c0f539723f8a92663f14ce72160c44d

8 years agoMerge "ART: Optimize PreSetup pass for oat-file open" into nyc-dev
Andreas Gampe [Thu, 19 May 2016 03:56:35 +0000 (03:56 +0000)]
Merge "ART: Optimize PreSetup pass for oat-file open" into nyc-dev
am: b938d19c29

* commit 'b938d19c29aa055118a35885c2411824fd3e20a7':
  ART: Optimize PreSetup pass for oat-file open

Change-Id: I1452ccdd5efb249ac2ad23118547f7afaf48ba4e

8 years agoMerge "ART: Optimize PreSetup pass for oat-file open" into nyc-dev
TreeHugger Robot [Thu, 19 May 2016 03:51:04 +0000 (03:51 +0000)]
Merge "ART: Optimize PreSetup pass for oat-file open" into nyc-dev