OSDN Git Service

android-x86/art.git
7 years agoInline methods that throw.
Nicolas Geoffray [Wed, 8 Feb 2017 15:07:18 +0000 (15:07 +0000)]
Inline methods that throw.

Forked from https://android-review.googlesource.com/214292

test: 637-checker-throw-inline
bug: 30933338
Change-Id: I184be82dfab0710af3f3796e9e486c7817fa9c60

7 years agoMerge "Add a DCHECK in thread::GetPeer."
Nicolas Geoffray [Wed, 15 Feb 2017 09:39:05 +0000 (09:39 +0000)]
Merge "Add a DCHECK in thread::GetPeer."

7 years agoMerge "Change behavior of $noinline$ to now force not inlining."
Nicolas Geoffray [Wed, 15 Feb 2017 09:06:26 +0000 (09:06 +0000)]
Merge "Change behavior of $noinline$ to now force not inlining."

7 years agoMerge "Fix DEX zip open error message printing"
David Sehr [Wed, 15 Feb 2017 05:39:20 +0000 (05:39 +0000)]
Merge "Fix DEX zip open error message printing"

7 years agoMerge "ART: Rewrite test 911"
Treehugger Robot [Wed, 15 Feb 2017 01:59:09 +0000 (01:59 +0000)]
Merge "ART: Rewrite test 911"

7 years agoMerge "ART: Change test 121-modifiers to use smali"
Treehugger Robot [Wed, 15 Feb 2017 01:58:42 +0000 (01:58 +0000)]
Merge "ART: Change test 121-modifiers to use smali"

7 years agoMerge "Address some comments for aog/333864"
Mathieu Chartier [Wed, 15 Feb 2017 01:12:15 +0000 (01:12 +0000)]
Merge "Address some comments for aog/333864"

7 years agoMerge "Revert "Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory"""
Treehugger Robot [Wed, 15 Feb 2017 00:00:49 +0000 (00:00 +0000)]
Merge "Revert "Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory"""

7 years agoAddress some comments for aog/333864
Mathieu Chartier [Tue, 14 Feb 2017 23:16:19 +0000 (15:16 -0800)]
Address some comments for aog/333864

Mostly comment changes.

Bug: 34621054

Test: test-art-host

Change-Id: I95f77651d47a8d0c71d580778d1126ab4aa1d751

7 years agoART: Rewrite test 911
Andreas Gampe [Tue, 14 Feb 2017 22:28:32 +0000 (14:28 -0800)]
ART: Rewrite test 911

Use explicit thread names to avoid output reliance on implicit
thread naming.

Bug: 31684812
Test: m test-art-host-run-test-911-get-stack-trace
Change-Id: I82004fea6f49831b5d378bef2c290b61c694a07a

7 years agoChange behavior of $noinline$ to now force not inlining.
Nicolas Geoffray [Tue, 14 Feb 2017 18:05:28 +0000 (18:05 +0000)]
Change behavior of $noinline$ to now force not inlining.

In order to start supporting more inlining, like inlining
methods that have a throwing branch, we need to change our
testing strategy.

test: test-art-host
Change-Id: I65354884898d86a18e78b96b7c21a8728c83f86d

7 years agoMerge "ART: Add operator == and != with nullptr to Handle"
Treehugger Robot [Tue, 14 Feb 2017 22:11:34 +0000 (22:11 +0000)]
Merge "ART: Add operator == and != with nullptr to Handle"

7 years agoMerge "Fix test scripts to account for new linker behavior"
Treehugger Robot [Tue, 14 Feb 2017 21:48:41 +0000 (21:48 +0000)]
Merge "Fix test scripts to account for new linker behavior"

7 years agoRevert "Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory""
Igor Murashkin [Tue, 14 Feb 2017 21:14:17 +0000 (21:14 +0000)]
Revert "Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory""

This reverts commit 960b2af8a05f0844e78004e2d0d3ae6ab058d430.

Fix failing 071-dex-file-map-clean on target
which was due to an IO race in the run-test script.

Test: make test-art-target
Bug: 27650033
Original-Change-Id: I18efbd392c5980ffe0d983833b6cc581e0237b92
Change-Id: I6f4ff1e85f8326916c2ae0842a32f53fb7901639

7 years agoMerge "Update test 044 for java-8"
Treehugger Robot [Tue, 14 Feb 2017 21:32:32 +0000 (21:32 +0000)]
Merge "Update test 044 for java-8"

7 years agoMerge "ART: Make dex2oat watchdog configurable"
Treehugger Robot [Tue, 14 Feb 2017 19:53:50 +0000 (19:53 +0000)]
Merge "ART: Make dex2oat watchdog configurable"

7 years agoART: Add operator == and != with nullptr to Handle
Andreas Gampe [Tue, 14 Feb 2017 19:10:34 +0000 (11:10 -0800)]
ART: Add operator == and != with nullptr to Handle

Get it in line with ObjPtr and prettify our code.

Test: m
Change-Id: I1322e2a9bc7a85d7f2441034a19bf4d807b81a0e

7 years agoFix test scripts to account for new linker behavior
Dimitry Ivanov [Tue, 14 Feb 2017 19:06:14 +0000 (11:06 -0800)]
Fix test scripts to account for new linker behavior

Remove /system/lib from the java.library.path to
avoid loading system libraries in classloader-namespace
by dependencies originated from libarttestd.so

Add additional libraries used by libarttestd.so to
the list of public libraries.

Bug: http://b/26833548
Test: m -j32 test-art-target
Change-Id: I8cfb1b1bec17ca32b2c691597a97b4e9d1667a2f

7 years agoMerge "Added a few integral SIMD extensions for x86/x86_64 (SSE)."
Treehugger Robot [Tue, 14 Feb 2017 19:25:17 +0000 (19:25 +0000)]
Merge "Added a few integral SIMD extensions for x86/x86_64 (SSE)."

7 years agoMerge "Revert^6 "Make class redefinition work with native methods on stack.""
Treehugger Robot [Tue, 14 Feb 2017 19:11:26 +0000 (19:11 +0000)]
Merge "Revert^6 "Make class redefinition work with native methods on stack.""

7 years agoFix DEX zip open error message printing
David Sehr [Tue, 14 Feb 2017 18:57:47 +0000 (10:57 -0800)]
Fix DEX zip open error message printing

We were printing the pointer to the error message string rather than the
string itself.

Bug: none
Test: test-art-host
Change-Id: I06bd9afd100c425039847c52df1f4912966053b8

7 years agoRevert^6 "Make class redefinition work with native methods on stack."
Alex Light [Tue, 14 Feb 2017 15:31:45 +0000 (15:31 +0000)]
Revert^6 "Make class redefinition work with native methods on stack."

We were incorrectly trying to obtain the profiling information of a
native method.

This reverts commit 02b2349b1cd2a78e86b1a7542f8330e6c3aaeb35.

Reason for revert: Fixed test failure with jit configurations

Test: ART_TEST_JIT=true mma -j40 test-art-host

Change-Id: Ic7112104aec64e597d2df80db5dc2a505d2cc2dd

7 years agoMerge "Revert "Enable dex2oat swap test for CC on x86.""
Vladimir Marko [Tue, 14 Feb 2017 16:17:50 +0000 (16:17 +0000)]
Merge "Revert "Enable dex2oat swap test for CC on x86.""

7 years agoRevert "Enable dex2oat swap test for CC on x86."
Vladimir Marko [Tue, 14 Feb 2017 16:16:30 +0000 (16:16 +0000)]
Revert "Enable dex2oat swap test for CC on x86."

Is't still failing and the difference can be
rather huge:
    Expected: (native_alloc_2_) < (native_alloc_1_),
    actual: 379712 vs 248600

Bug: 29259363

This reverts commit 38f5663a970b633f08e144b4dff33633c51352ee.

Change-Id: Ie1d62fbba688aeadffb9d5aafd5b9cf632742ed6

7 years agoMerge "ART: invoke-custom support"
Orion Hodson [Tue, 14 Feb 2017 16:02:32 +0000 (16:02 +0000)]
Merge "ART: invoke-custom support"

7 years agoMerge "ARM64: Improve String.equals() intrinsic for const strings."
Treehugger Robot [Tue, 14 Feb 2017 15:43:22 +0000 (15:43 +0000)]
Merge "ARM64: Improve String.equals() intrinsic for const strings."

7 years agoAdd a DCHECK in thread::GetPeer.
Nicolas Geoffray [Fri, 10 Feb 2017 10:59:22 +0000 (10:59 +0000)]
Add a DCHECK in thread::GetPeer.

Motivated  by https://android-review.googlesource.com/#/c/333205/.

Test: test-art-host run-jdwp-test.sh
Change-Id: I173c060324aa0dc39144db55e3a97e672c012ba8

7 years agoMerge "Revert "Disable libcore tests for now.""
Nicolas Geoffray [Tue, 14 Feb 2017 15:18:32 +0000 (15:18 +0000)]
Merge "Revert "Disable libcore tests for now.""

7 years agoRevert "Disable libcore tests for now."
Nicolas Geoffray [Tue, 14 Feb 2017 15:18:13 +0000 (15:18 +0000)]
Revert "Disable libcore tests for now."

Vogar has been fixed.

bug:35308152

This reverts commit b1cde6a6d0101328e683fe07f81d40a1368eaae9.

Change-Id: I2440da0a97561f6794f8827b536481e1a6536c91

7 years agoART: invoke-custom support
Orion Hodson [Wed, 18 Jan 2017 09:23:12 +0000 (09:23 +0000)]
ART: invoke-custom support

Adds invoke-custom instruction to the interpreter.

Bug: 33191717,30550796
Test: art/test/run-test --host 952
Change-Id: I3b754128649a8b3a00ade79ba2518d0e377f3a1e

7 years agoARM64: Improve String.equals() intrinsic for const strings.
Vladimir Marko [Fri, 10 Feb 2017 15:44:25 +0000 (15:44 +0000)]
ARM64: Improve String.equals() intrinsic for const strings.

And add additional tests to 021-string2.

aosp_angler-userdebug:
  before:
    arm64 boot*.oat: 43324664
    arm64 boot*.oat/string compression: 43411112
  after:
    arm64 boot*.oat: 43300136 (-24528)
    arm64 boot*.oat/string compression: 43345464 (-65648)

The string compression code size difference drops from
86448 to 45328.

Test: m test-art-target on Nexus 6P
Test: m test-art-target on Nexus 6P with string compression enabled.
Bug: 31040547
Change-Id: I99a3777b91b248da2b0ac25abd260f9e5abb2c09

7 years agoMerge "Bump oat version."
Treehugger Robot [Tue, 14 Feb 2017 13:19:15 +0000 (13:19 +0000)]
Merge "Bump oat version."

7 years agoBump oat version.
Vladimir Marko [Tue, 14 Feb 2017 11:34:09 +0000 (11:34 +0000)]
Bump oat version.

Two recent changes should have bumped the oat version but
they did not:
    https://android-review.googlesource.com/336161
    https://android-review.googlesource.com/338409

Test: Rely on Treehugger.
Change-Id: I105f2f2d54953ed808ded92234c06efcc155d313

7 years agoMerge changes I1042e87f,I58b17ecf
Treehugger Robot [Tue, 14 Feb 2017 11:37:33 +0000 (11:37 +0000)]
Merge changes I1042e87f,I58b17ecf

* changes:
  Remove remaining uses of DexFile::GetChecksum.
  Improve checking of multidex dex checksums.

7 years agoMerge "Revert "Revert^4 "Make class redefinition work with native methods on stack."""
Roland Levillain [Tue, 14 Feb 2017 10:50:49 +0000 (10:50 +0000)]
Merge "Revert "Revert^4 "Make class redefinition work with native methods on stack."""

7 years agoRevert "Revert^4 "Make class redefinition work with native methods on stack.""
Roland Levillain [Tue, 14 Feb 2017 10:49:09 +0000 (10:49 +0000)]
Revert "Revert^4 "Make class redefinition work with native methods on stack.""

ART run-test 945-obsolete-native is failing in automated
testing.

This reverts commit 724f77e2fed038d57a3d08fdcf656d703e3473ea.

Change-Id: I4eceb45765826ca442ee8f4800b2bed51f98e662

7 years agoRemove remaining uses of DexFile::GetChecksum.
Richard Uhler [Mon, 6 Feb 2017 15:12:45 +0000 (15:12 +0000)]
Remove remaining uses of DexFile::GetChecksum.

Remove or replace with DexFile::GetMultiDexChecksums as appropriate.

Bug: 34604632
Test: m test-art-host, added image_space_test to test ValidateOatFile.
Change-Id: I1042e87f29a242046d055f0be374ad9fbce4671a

7 years agoImprove checking of multidex dex checksums.
Richard Uhler [Tue, 24 Jan 2017 10:25:21 +0000 (10:25 +0000)]
Improve checking of multidex dex checksums.

* Fall back to odex file for all multidex entries if the apk is stripped,
  not just for the main multidex entry.
* Verify the number of multidex entries has not changed.
* Improve performance by getting all checksums from the apk in one go
  and cache the results instead of repeatedly opening the apk.
* Stop referring to non-main multidex entries as "secondary" dex files.

Bug: 34604632
Test: added tests to dex_file_test and oat_file_assistant_test
Test: m test-art-host

Change-Id: I58b17ecfbc9165a5bfeffd5281ee21d108f64479

7 years agoMerge "ART: Add DEX support for MethodHandle and CallSite info."
Orion Hodson [Tue, 14 Feb 2017 09:00:00 +0000 (09:00 +0000)]
Merge "ART: Add DEX support for MethodHandle and CallSite info."

7 years agoMerge "Revert^3 "Hash-based dex cache type array.""
Treehugger Robot [Tue, 14 Feb 2017 05:40:45 +0000 (05:40 +0000)]
Merge "Revert^3 "Hash-based dex cache type array.""

7 years agoMerge "ART: Correctly handle temporary classes in class-load events (4/3)"
Treehugger Robot [Tue, 14 Feb 2017 04:36:48 +0000 (04:36 +0000)]
Merge "ART: Correctly handle temporary classes in class-load events (4/3)"

7 years agoRevert^3 "Hash-based dex cache type array."
Mathieu Chartier [Tue, 14 Feb 2017 02:32:04 +0000 (18:32 -0800)]
Revert^3 "Hash-based dex cache type array."

Assert failing for "earchbox:search":
F zygote64: class_linker.cc:4612] Check failed: handle_scope_iface.Get() != nullptr

Test: m test-art-host
Bug: 34839984
Bug: 30627598
Bug: 34659969

This reverts commit 85c0f2ac03417f5125bc2ff1dab8109859c67d5c.

Change-Id: I39846c20295af5875b0f945be7035c73ded23135

7 years agoMerge "Revert^4 "Make class redefinition work with native methods on stack.""
Treehugger Robot [Tue, 14 Feb 2017 02:41:57 +0000 (02:41 +0000)]
Merge "Revert^4 "Make class redefinition work with native methods on stack.""

7 years agoART: Correctly handle temporary classes in class-load events (4/3)
Andreas Gampe [Tue, 14 Feb 2017 02:10:09 +0000 (18:10 -0800)]
ART: Correctly handle temporary classes in class-load events (4/3)

When a temporary class is given out in a ClassLoad event, all stored
references need to be fixed up before publishing a ClassPrepare event.

This CL handles objects stored in the heap as referents.

Bug: 31684920
Test: m test-art-host-run-test-912-classes
Change-Id: If140ecae675cd7bc648f622eaf200f8ad8b15438

7 years agoMerge "Deduplicate register maps for both inline and normal stack maps"
Treehugger Robot [Tue, 14 Feb 2017 01:38:18 +0000 (01:38 +0000)]
Merge "Deduplicate register maps for both inline and normal stack maps"

7 years agoUpdate test 044 for java-8
Alex Light [Tue, 14 Feb 2017 01:10:25 +0000 (17:10 -0800)]
Update test 044 for java-8

Jack will create a synthetic default bridge method for interfaces
where there is return-type variance. This changes the output of test
044-proxy very slightly since it ends up choosing the default version
when it is executed.

Test: mma -j40 test-art-host
Change-Id: I4e16eed04b59022e45a80324cd8c8106d21d4aef

7 years agoRevert^4 "Make class redefinition work with native methods on stack."
Alex Light [Sat, 11 Feb 2017 00:43:10 +0000 (00:43 +0000)]
Revert^4 "Make class redefinition work with native methods on stack."

We had a problem where there was a brief period of time where the dex
file for an obsolete method could not be obtained. This meant that not
all functions of ArtMethod could safely be called, causing some
problems.

This reverts commit 38c20d4a694eea44a1bd3af32a6a99512c139358.

Reason for revert: Fixed issues with interp-ac and relocate-npatchoat

Test: ART_TEST_RUN_TEST_RELOCATE_NO_PATCHOAT=true \
      ART_TEST_INTERPRETER_ACCESS_CHECKS=true \
      mma -j40 test-art-host

Change-Id: I04991f3e76813831b6446f97636b6fa404397f36

7 years agoDeduplicate register maps for both inline and normal stack maps
Mathieu Chartier [Thu, 9 Feb 2017 23:57:37 +0000 (15:57 -0800)]
Deduplicate register maps for both inline and normal stack maps

Before it only deduplicated the normal stack map dex register maps.
Code size for a large app: 93341616 -> 92678040 (-0.7%)

Added test.

Bug: 34621054

Test: test-art-host

Change-Id: I4fab4e40915bfa12cb978edbb3cbc19e2cf00954

7 years agoAdded a few integral SIMD extensions for x86/x86_64 (SSE).
Aart Bik [Mon, 13 Feb 2017 22:28:45 +0000 (14:28 -0800)]
Added a few integral SIMD extensions for x86/x86_64 (SSE).

Rationale:
ART vectorizer needs SIMD for integer operations too.

Test: assembler_x86[_64]_test
Bug: 34083438
Change-Id: Id6fec558c617d38cb643839eafcd10e59dcd6e0a

7 years agoMerge "Enable dex2oat swap test for CC on x86."
Treehugger Robot [Mon, 13 Feb 2017 21:34:20 +0000 (21:34 +0000)]
Merge "Enable dex2oat swap test for CC on x86."

7 years agoMerge "Remove special treatment of native method for CHA."
Mingyao Yang [Mon, 13 Feb 2017 21:26:22 +0000 (21:26 +0000)]
Merge "Remove special treatment of native method for CHA."

7 years agoMerge "Disable libcore tests for now."
Nicolas Geoffray [Mon, 13 Feb 2017 20:56:50 +0000 (20:56 +0000)]
Merge "Disable libcore tests for now."

7 years agoDisable libcore tests for now.
Nicolas Geoffray [Mon, 13 Feb 2017 20:55:27 +0000 (20:55 +0000)]
Disable libcore tests for now.

bug:35308152
Test: run-libcore-tests.sh

Change-Id: I77f9a516d6dd99d332a214e838848cdc3fdf359a

7 years agoMerge "Clarify comment on JIT cache flush issue"
Treehugger Robot [Mon, 13 Feb 2017 20:20:47 +0000 (20:20 +0000)]
Merge "Clarify comment on JIT cache flush issue"

7 years agoMerge "Fix the empty checkpoint timeout."
Hiroshi Yamauchi [Mon, 13 Feb 2017 19:21:13 +0000 (19:21 +0000)]
Merge "Fix the empty checkpoint timeout."

7 years agoART: Make dex2oat watchdog configurable
Andreas Gampe [Thu, 19 Jan 2017 04:39:02 +0000 (20:39 -0800)]
ART: Make dex2oat watchdog configurable

Allow the watchdog timeout to be set on the command line. Add a
test.

Test: m
Test: m test-art-host
Change-Id: I04d0bd15fc7925d95fd2b6d87caf21fb85a797bd

7 years agoEnable dex2oat swap test for CC on x86.
Vladimir Marko [Mon, 13 Feb 2017 18:57:47 +0000 (18:57 +0000)]
Enable dex2oat swap test for CC on x86.

The test should be OK after
    https://android-review.googlesource.com/335763

Test: m ART_USE_READ_BARRIER=true test-art-host-gtest
Bug: 29259363
Change-Id: I16f4051036b247b4f520533e77eaa71d6ff7bb41

7 years agoMerge "ART: Correctly handle temporary classes in class-load events (3/3)"
Treehugger Robot [Mon, 13 Feb 2017 18:39:50 +0000 (18:39 +0000)]
Merge "ART: Correctly handle temporary classes in class-load events (3/3)"

7 years agoMerge "Use VerifierDeps test file for dex2oat swap tests."
Vladimir Marko [Mon, 13 Feb 2017 18:05:06 +0000 (18:05 +0000)]
Merge "Use VerifierDeps test file for dex2oat swap tests."

7 years agoMerge "Revert^2 "Hash-based dex cache type array.""
Vladimir Marko [Mon, 13 Feb 2017 16:53:03 +0000 (16:53 +0000)]
Merge "Revert^2 "Hash-based dex cache type array.""

7 years agoART: Add DEX support for MethodHandle and CallSite info.
Orion Hodson [Fri, 13 Jan 2017 16:43:12 +0000 (16:43 +0000)]
ART: Add DEX support for MethodHandle and CallSite info.

Adds new DEX file map items for CallSiteIds and MethodHandles.

Initializes CallSiteIds and MethodHandles from the DEX file map_list.

Bug: 33191717,30550796
Test: m test-art-host-gtest-dex_file_verifier_test
Change-Id: I3ad9c7342b661c3f6a8264709412650eee6bde01

7 years agoMerge "String Compression for MIPS32 and MIPS64"
Treehugger Robot [Mon, 13 Feb 2017 12:41:55 +0000 (12:41 +0000)]
Merge "String Compression for MIPS32 and MIPS64"

7 years agoMerge changes I425a7d61,I30365ad6
Roland Levillain [Mon, 13 Feb 2017 11:58:38 +0000 (11:58 +0000)]
Merge changes I425a7d61,I30365ad6

* changes:
  Regression test for issue with VIXL AArch64 veneer pool.
  ARM64: Remove all uses of BlockPoolsScope.

7 years agoString Compression for MIPS32 and MIPS64
Goran Jakovljevic [Fri, 10 Feb 2017 16:48:52 +0000 (17:48 +0100)]
String Compression for MIPS32 and MIPS64

Changes on intrinsics and Code Generation on MIPS32 and MIPS64 for
string compression feature.

Testing is done with STRING_COMPRESSION_ENABLED = true (in libcore),
mirror::kUseStringCompression = true and STRING_COMPRESSION_FEATURE set
to 1.

Test: booted MIPS32 and MIPS64 in QEMU
Test: mma test-art-target-run-test on CI20 (MIPS32R2)
Test: mma test-art-target-run-test in QEMU (MIPS64R6)

Change-Id: If50a6b6c0792bfa34d4fdff6bf2c7542211d2689

7 years agoMerge "Convert preload list to profile"
David Sehr [Sun, 12 Feb 2017 23:55:02 +0000 (23:55 +0000)]
Merge "Convert preload list to profile"

7 years agoMerge "Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory""
Nicolas Geoffray [Sun, 12 Feb 2017 15:48:29 +0000 (15:48 +0000)]
Merge "Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory""

7 years agoRevert "runtime: Mmap uncompressed dex files (in zip) as clean memory"
Nicolas Geoffray [Sun, 12 Feb 2017 15:48:07 +0000 (15:48 +0000)]
Revert "runtime: Mmap uncompressed dex files (in zip) as clean memory"

Getting on the bots:
+ERROR: Memory mapping for /data/run-test/test-6248/071-dexfile-map-clean-ex.jar is unexpectedly dirty
+Private_Dirty:         4 kB

Bug: 27650033

This reverts commit 19e5f834501c5e69fbd731038b88c10332cc6bc7.

Change-Id: I833ef95401187b764d336ab4558936c63678061c

7 years agoMerge "Allow testrunner to run test when inside ART directory"
Shubham Ajmera [Sat, 11 Feb 2017 12:10:41 +0000 (12:10 +0000)]
Merge "Allow testrunner to run test when inside ART directory"

7 years agoMerge "Use null error_msg for pic images"
Treehugger Robot [Sat, 11 Feb 2017 04:57:39 +0000 (04:57 +0000)]
Merge "Use null error_msg for pic images"

7 years agoMerge "Add extra logging for image decompression speed"
Treehugger Robot [Sat, 11 Feb 2017 03:31:04 +0000 (03:31 +0000)]
Merge "Add extra logging for image decompression speed"

7 years agoUse null error_msg for pic images
Mathieu Chartier [Sat, 11 Feb 2017 02:41:39 +0000 (18:41 -0800)]
Use null error_msg for pic images

Reduces 20ms of overhead for reading proc maps when the map can't be
placed at the optimal address.

Bug: 34927277

Test: test-art-host && device boot

Change-Id: Ib91fff2b832f61c49e67edcd2b7a222ab4409984

7 years agoAdd extra logging for image decompression speed
Mathieu Chartier [Sat, 11 Feb 2017 01:22:41 +0000 (17:22 -0800)]
Add extra logging for image decompression speed

Sample output:
I zygote  : Decompressing image took 3.173ms (678MB/s)

Test: Phone boot with -verbose:image

Bug: 34927277
Change-Id: If0689594bca52d5b98d32d10adfe64f6d2402020

7 years agoMerge "Revert "Revert "Revert "Make class redefinition work with native methods on...
Alex Light [Sat, 11 Feb 2017 00:39:14 +0000 (00:39 +0000)]
Merge "Revert "Revert "Revert "Make class redefinition work with native methods on stack.""""

7 years agoRevert "Revert "Revert "Make class redefinition work with native methods on stack."""
Alex Light [Sat, 11 Feb 2017 00:38:35 +0000 (00:38 +0000)]
Revert "Revert "Revert "Make class redefinition work with native methods on stack."""

This reverts commit 4493f92dfc70e01d95ad57bc4c0c38f59a616f70.

Reason for revert: Fails interpreter-ac and relocate-npatchoat

Change-Id: I15eb4964c9101fa04e34b52acf9ffe25e6d4e60d
Test: revert

7 years agoART: Correctly handle temporary classes in class-load events (3/3)
Andreas Gampe [Sat, 11 Feb 2017 00:18:30 +0000 (16:18 -0800)]
ART: Correctly handle temporary classes in class-load events (3/3)

When a temporary class is given out in a ClassLoad event, all stored
references need to be fixed up before publishing a ClassPrepare event.

This CL handles objects stored in the heap.

Bug: 31684920
Test: m test-art-host-run-test-912-classes
Change-Id: Ia0456c81fd848618e637b93301edf4dbc8d848f2

7 years agoFix the empty checkpoint timeout.
Hiroshi Yamauchi [Thu, 9 Feb 2017 00:35:45 +0000 (16:35 -0800)]
Fix the empty checkpoint timeout.

The problem happens when a thread is indirectly blocked on a mutex
that another thread holds and is blocked on a weak ref access.

Add a way to do a dummy wakeup on a thread that's blocked on a mutex
so that the thread will respond to the empty checkpoint request. Do
this for the mutexes that are expected to be held when a weak ref is
accessed. Add a check that detects an unexpected case.

Bug: 33006388
Bug: 12687968
Test: test-art-host.
Change-Id: Iefec69b9a21aa25a928cb31fcf4fb872f867a8c2

7 years agoMerge "ART: Remove run-test blacklist"
Treehugger Robot [Sat, 11 Feb 2017 00:10:52 +0000 (00:10 +0000)]
Merge "ART: Remove run-test blacklist"

7 years agoMerge "Remove breakpoints from redefined classes"
Treehugger Robot [Fri, 10 Feb 2017 23:45:29 +0000 (23:45 +0000)]
Merge "Remove breakpoints from redefined classes"

7 years agoMerge "Fix a moving gc bug in Instrumentation::ExceptionCaughtEvent."
Treehugger Robot [Fri, 10 Feb 2017 23:41:51 +0000 (23:41 +0000)]
Merge "Fix a moving gc bug in Instrumentation::ExceptionCaughtEvent."

7 years agoAllow testrunner to run test when inside ART directory
Shubham Ajmera [Fri, 10 Feb 2017 23:15:05 +0000 (23:15 +0000)]
Allow testrunner to run test when inside ART directory

Test: ./test/testrunner/testrunner.py -j64 --host -b
Bug: 35257742
Change-Id: Ib6264378971ad9f83ece7a51afc95c81935e08fc

7 years agoMerge "ART: Fix potential deadlock in class-load events"
Treehugger Robot [Fri, 10 Feb 2017 23:14:56 +0000 (23:14 +0000)]
Merge "ART: Fix potential deadlock in class-load events"

7 years agoMerge "Revert "Revert "Make class redefinition work with native methods on stack."""
Treehugger Robot [Fri, 10 Feb 2017 23:04:49 +0000 (23:04 +0000)]
Merge "Revert "Revert "Make class redefinition work with native methods on stack."""

7 years agoConvert preload list to profile
David Sehr [Wed, 8 Feb 2017 00:47:58 +0000 (16:47 -0800)]
Convert preload list to profile

Add functionality to profman to take a list of classes in a text file
(dot notation rather than descriptors) and build a compiler profile
file from it.

Bug: 34929204
Test: test-art-host
Change-Id: Id867ec7b436cbd8412809a8adb093f588ff474b7

7 years agoMerge "ART: Correctly handle temporary classes in class-load events (2/3)"
Treehugger Robot [Fri, 10 Feb 2017 22:09:45 +0000 (22:09 +0000)]
Merge "ART: Correctly handle temporary classes in class-load events (2/3)"

7 years agoRemove special treatment of native method for CHA.
Mingyao Yang [Fri, 10 Feb 2017 19:25:05 +0000 (11:25 -0800)]
Remove special treatment of native method for CHA.

This special treatment is not necessary and causes complexity and issues.

Bug: 35104526
Test: m test-art-host
Change-Id: Icb07d147b433388d0b9430212b9b4c4bf04eafae

7 years agoART: Remove run-test blacklist
Andreas Gampe [Fri, 10 Feb 2017 18:04:04 +0000 (10:04 -0800)]
ART: Remove run-test blacklist

Follow-up to commit e2744c615e5808d335eed512349d67d724773c1f.

Bug: 31684920
Test: m ART_TEST_JIT=true test-art-host-run-test-912-classes
Test: art/test/testrunner/testrunner.py --jit --host -b -t 912-classes
Change-Id: I482af4d4b202d44f94cf941165a9b0247fa07112

7 years agoRemove breakpoints from redefined classes
Alex Light [Wed, 8 Feb 2017 19:39:07 +0000 (11:39 -0800)]
Remove breakpoints from redefined classes

Test: Manual
Change-Id: If8d9a38635bda7a0d69925b735b6f10055192b34

7 years agoMerge "runtime: Mmap uncompressed dex files (in zip) as clean memory"
Treehugger Robot [Fri, 10 Feb 2017 20:47:19 +0000 (20:47 +0000)]
Merge "runtime: Mmap uncompressed dex files (in zip) as clean memory"

7 years agoFix a moving gc bug in Instrumentation::ExceptionCaughtEvent.
Hiroshi Yamauchi [Fri, 10 Feb 2017 20:07:36 +0000 (12:07 -0800)]
Fix a moving gc bug in Instrumentation::ExceptionCaughtEvent.

This fixes JDWP exception caught test crashes.

Bug: 34929692
Test: CtsJdwpTestCases on angler.
Test: test-art-host
Test: The jdwp test on host.
Change-Id: I2f6a66d7e871e6c7d65a8ad287249286b301c3b1

7 years agoART: Fix potential deadlock in class-load events
Andreas Gampe [Fri, 10 Feb 2017 19:49:12 +0000 (11:49 -0800)]
ART: Fix potential deadlock in class-load events

When a temporary class is given out in a ClassLoad event, all stored
references need to be fixed up before publishing a ClassPrepare event.

This CL fixes a potential deadlock when multiple classes are loaded
at the same time.

Bug: 31684920
Test: m test-art-host-run-test-912-classes
Change-Id: Iccabd8c17838f686a81a825badc7c2b1a1589708

7 years agoART: Correctly handle temporary classes in class-load events (2/3)
Andreas Gampe [Fri, 10 Feb 2017 02:19:21 +0000 (18:19 -0800)]
ART: Correctly handle temporary classes in class-load events (2/3)

When a temporary class is given out in a ClassLoad event, all stored
references need to be fixed up before publishing a ClassPrepare event.

This CL handles objects stored as local references.

Bug: 31684920
Test: m test-art-host-run-test-912-classes
Change-Id: I3c6bbfdaca31d0c0d8ae9bf1facef404e949b6aa

7 years agoRevert "Revert "Make class redefinition work with native methods on stack.""
Alex Light [Fri, 10 Feb 2017 16:33:26 +0000 (16:33 +0000)]
Revert "Revert "Make class redefinition work with native methods on stack.""

When we were scanning the stack for tracing we were getting the wrong
stack-frame size for obsolete native methods. This fixes it by
creating real obsolete native methods so we can recognize them and
then doing the (rather long) calculation to find their real
stack-frame size.

This reverts commit 7558d27ccd0837fef7c4bfbff7fc82f07a787316.

Reason for revert: Fixed tracing failures.

Test: mma -j40 test-art-host
Test: ART_TEST_TRACE=true ART_TEST_INTERPRETER=true mma -j40 test-art-host

Change-Id: Ic65da1b51a43733ff60131832753afa0c4ce66b1

7 years agoMerge "ART: Correctly handle temporary classes in class-load events (1/3)"
Treehugger Robot [Fri, 10 Feb 2017 19:43:16 +0000 (19:43 +0000)]
Merge "ART: Correctly handle temporary classes in class-load events (1/3)"

7 years agoruntime: Mmap uncompressed dex files (in zip) as clean memory
Igor Murashkin [Tue, 7 Feb 2017 23:20:54 +0000 (15:20 -0800)]
runtime: Mmap uncompressed dex files (in zip) as clean memory

Saves 3MB of RAM (system-wide) in AGSA (search toolbar).
Also makes 3MB of RAM clean (previously dirty).

----

classes.dex from different processes will now have
their memory shared (as clean) globally.

To take advantage of this, the app/service just
needs to build their .JARs zipaligned and with
classes.dex being stored uncompressed.

-----

classes[N].dex within ZIP files will now get memory-mapped
as file-backed, clean memory when opening a DexFile.

(The zip entry must be at least 4-byte aligned).

Compressed DEX files still get extracted first to dirty memory.

Test: art/tools/run-test 071-dexfile-map-clean
Bug: 27650033
Change-Id: I18efbd392c5980ffe0d983833b6cc581e0237b92

7 years agoRegression test for issue with VIXL AArch64 veneer pool.
Roland Levillain [Fri, 3 Feb 2017 11:23:31 +0000 (11:23 +0000)]
Regression test for issue with VIXL AArch64 veneer pool.

Dex2oat used to crash on this assertion:

  external/vixl/src/aarch64/macro-assembler-aarch64.cc:245: void vixl::aarch64::VeneerPool::CheckEmitFor(size_t, vixl::aarch64::Pool::EmitOption): assertion "masm_->GetCursorOffset() < unresolved_branches_.GetFirstLimit()" failed

Test: test-art-target (on ARM64)
Bug: 34850123
Change-Id: I425a7d612cc20bf2a6fb1125028af35a73794b52

7 years agoClarify comment on JIT cache flush issue
Kevin Brodsky [Thu, 15 Dec 2016 14:23:09 +0000 (14:23 +0000)]
Clarify comment on JIT cache flush issue

The original fix (#304947) is needed, but the comment was suggesting a
hardware cause and a link with A53 errata. In all likelihood neither
of these is true, and the issue is actually caused by a kernel issue
affecting many Qualcomm devices (like those using the msm tree).

Change-Id: Ie750e6fd9eb7130982d184c22917b5c3ea4beed0

7 years agoMerge "testrunner: Speed up printing --help by 4x"
Treehugger Robot [Fri, 10 Feb 2017 15:15:51 +0000 (15:15 +0000)]
Merge "testrunner: Speed up printing --help by 4x"

7 years agoARM64: Remove all uses of BlockPoolsScope.
Artem Serov [Tue, 7 Feb 2017 14:33:49 +0000 (14:33 +0000)]
ARM64: Remove all uses of BlockPoolsScope.

BlockPoolsScope should not be used because it is a VIXL scope
for VIXL internal usage only. In arm64 backend the intent was to
block pools between a particular instruction (Ldr, Str, Blr, etc)
and a subsequent MaybeRecordImplicitNullCheck or RecordPcInfo call.
However pools should be emitted at the opening of a scope if this
is required to satisfy branch/ldr ranges. This is not done by the
BlockPoolsScope, so proper scopes are now used now:
ExactAssemblyScope and EmissionCheckScope.

Test: test-art-host
Test: test-art-target

Bug: 34850123

Change-Id: I30365ad63c644cf9dd85d5a3c2118f9c57be9d20

7 years agoMerge "Use entrypoint switching on x86 & x86-64 for GC root read barriers."
Roland Levillain [Fri, 10 Feb 2017 14:15:33 +0000 (14:15 +0000)]
Merge "Use entrypoint switching on x86 & x86-64 for GC root read barriers."

7 years agoMerge "Change type initialization entrypoints to kSaveEverything."
Vladimir Marko [Fri, 10 Feb 2017 13:11:42 +0000 (13:11 +0000)]
Merge "Change type initialization entrypoints to kSaveEverything."