OSDN Git Service

android-x86/art.git
7 years agoMerge "String compression on intrinsics x86 and x86_64"
Jeff Hao [Fri, 30 Sep 2016 22:44:45 +0000 (22:44 +0000)]
Merge "String compression on intrinsics x86 and x86_64"

7 years agoMerge "ART: Add odex IMT dumping to oatdump"
Treehugger Robot [Fri, 30 Sep 2016 22:20:10 +0000 (22:20 +0000)]
Merge "ART: Add odex IMT dumping to oatdump"

7 years agoMerge "Set coverage to false for dex2oat."
Treehugger Robot [Fri, 30 Sep 2016 22:08:56 +0000 (22:08 +0000)]
Merge "Set coverage to false for dex2oat."

7 years agoMerge "Remove dependency on libcutils"
Dimitry Ivanov [Fri, 30 Sep 2016 17:37:57 +0000 (17:37 +0000)]
Merge "Remove dependency on libcutils"

7 years agoMerge "Revert "Store resolved Strings for AOT code in .bss.""
Vladimir Marko [Fri, 30 Sep 2016 17:12:41 +0000 (17:12 +0000)]
Merge "Revert "Store resolved Strings for AOT code in .bss.""

7 years agoString compression on intrinsics x86 and x86_64
jessicahandojo [Fri, 9 Sep 2016 02:49:13 +0000 (19:49 -0700)]
String compression on intrinsics x86 and x86_64

Changes on intrinsics and Code Generation (x86 and x86_64)
for string compression feature. Currently the feature is off.

The size of boot.oat and boot.art for x86 before and after the
changes (feature OFF) are still. When the feature ON,
boot.oat increased by 0.83% and boot.art decreased by 19.32%.

Meanwhile for x86_64, size of boot.oat and boot.art before and
after changes (feature OFF) are still. When the feature ON,
boot.oat increased by 0.87% and boot.art decreased by 6.59%.

Turn feature on: runtime/mirror/string.h (kUseStringCompression = true)
runtime/asm_support.h (STRING_COMPRESSION_FEATURE 1)

Test: m -j31 test-art-host
All tests passed both when the mirror::kUseStringCompression
is ON and OFF.

The jni_internal_test changed to assert an empty string length
to be equal -(1 << 31) as it is compressed.

Bug: 31040547
Change-Id: Ia447c9b147cabb6a69e6ded86be1fe0c46d9638d

7 years agoRevert "Store resolved Strings for AOT code in .bss."
Vladimir Marko [Fri, 30 Sep 2016 17:04:49 +0000 (17:04 +0000)]
Revert "Store resolved Strings for AOT code in .bss."

There are some issues with oat_test64 on host and aosp_mips-eng.

Also reverts "compiler_driver: Fix build."

Bug: 20323084
Bug: 30627598

This reverts commit 63dccbbefef3014c99c22748d18befcc7bcb3b41.
This reverts commit 04a44135ace10123f059373691594ae0f270a8a4.

Change-Id: I568ba3e58cf103987fdd63c8a21521010a9f27c4

7 years agoART: Add odex IMT dumping to oatdump
Andreas Gampe [Fri, 30 Sep 2016 02:50:27 +0000 (19:50 -0700)]
ART: Add odex IMT dumping to oatdump

Support scanning oat files besides the boot image.

Bug: 31594153
Test: m test-art-host
Change-Id: I672d0534b8a8274a4430217656b68c55e4b31cc4

7 years agoMerge "Make run-test fail if output-path is too long"
Treehugger Robot [Fri, 30 Sep 2016 16:42:48 +0000 (16:42 +0000)]
Merge "Make run-test fail if output-path is too long"

7 years agoRemove dependency on libcutils
Dimitry Ivanov [Wed, 28 Sep 2016 09:44:00 +0000 (02:44 -0700)]
Remove dependency on libcutils

Use liblog for liblog (instead of libcutils)
Replace calls to property_get with libbase
GetProperty()

Bug: http://b/31289077
Bug: http://b/27171986
Test: remove liblog from libcutils and recompile
Test: make test-art-target -j4
Change-Id: I2a2913af8f521131558e9dd672d3973a64a410d3

7 years agoMerge "Add const-string benchmark."
Treehugger Robot [Fri, 30 Sep 2016 14:50:55 +0000 (14:50 +0000)]
Merge "Add const-string benchmark."

7 years agoMerge "compiler_driver: Fix build."
Nicolas Geoffray [Fri, 30 Sep 2016 14:36:37 +0000 (14:36 +0000)]
Merge "compiler_driver: Fix build."

7 years agocompiler_driver: Fix build.
Narayan Kamath [Fri, 30 Sep 2016 14:24:19 +0000 (15:24 +0100)]
compiler_driver: Fix build.

Test: make-art-host
Change-Id: I94e164ed245caea60fe26872a943ea5e14aa8860

7 years agoMerge "Store resolved Strings for AOT code in .bss."
Vladimir Marko [Fri, 30 Sep 2016 14:10:21 +0000 (14:10 +0000)]
Merge "Store resolved Strings for AOT code in .bss."

7 years agoMerge "Simplify our intrinsic recognizer."
Treehugger Robot [Fri, 30 Sep 2016 11:38:56 +0000 (11:38 +0000)]
Merge "Simplify our intrinsic recognizer."

7 years agoMerge "Move two dangling mirror objects into handles."
Treehugger Robot [Fri, 30 Sep 2016 10:47:24 +0000 (10:47 +0000)]
Merge "Move two dangling mirror objects into handles."

7 years agoAdd const-string benchmark.
Vladimir Marko [Fri, 30 Sep 2016 10:21:07 +0000 (11:21 +0100)]
Add const-string benchmark.

Test: vogar --benchmark art/benchmark/const-string/src/ConstStringBenchmark.java
Bug: 20323084
Change-Id: I6b0b9cc8de19694ca43221b3224ac09eaa54d9ff

7 years agoSimplify our intrinsic recognizer.
Nicolas Geoffray [Fri, 15 Jul 2016 14:28:35 +0000 (15:28 +0100)]
Simplify our intrinsic recognizer.

- Use the modifiers for storing the intrinsic kind.
- Delete dex_file_method_inliner and its associated map.

This work was also motivated by the fact that the inline
method analyzer leaks intrinsic tables, and even worse, might re-use
a table from one dex file to another unrelated dex file in the presence
of class unloading and the unlikely event of the dex files getting
the same address.

test: m test-art-host m test-art-target

Change-Id: Ia653d2c72df13889dc85dd8c84997582c034ea4b

7 years agoMove two dangling mirror objects into handles.
Nicolas Geoffray [Fri, 30 Sep 2016 08:51:32 +0000 (09:51 +0100)]
Move two dangling mirror objects into handles.

test: libcore.java.lang.reflect.MissingClassesTest#testGetFieldFails
test: ./art/tools/run-libcore-tests.sh --mode=host --variant=X64
Change-Id: Ib708e914cac6abe4d4fc7cb88e258da83a8219ab

7 years agoMerge "dex_cache: rewrite StringDexCachePair as DexCachePair<T>"
Treehugger Robot [Fri, 30 Sep 2016 08:52:28 +0000 (08:52 +0000)]
Merge "dex_cache: rewrite StringDexCachePair as DexCachePair<T>"

7 years agoMerge "Clean up ScopedThreadStateChange to use ObjPtr"
Mathieu Chartier [Fri, 30 Sep 2016 02:33:08 +0000 (02:33 +0000)]
Merge "Clean up ScopedThreadStateChange to use ObjPtr"

7 years agoClean up ScopedThreadStateChange to use ObjPtr
Mathieu Chartier [Wed, 28 Sep 2016 01:43:30 +0000 (18:43 -0700)]
Clean up ScopedThreadStateChange to use ObjPtr

Also fixed inclusion of -inl.h files in .h files by adding
scoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h

Changed AddLocalReference / Decode to use ObjPtr.

Changed libartbenchmark to be debug to avoid linkage errors.

Bug: 31113334

Test: test-art-host

Change-Id: I4d2e160483a29d21e1e0e440585ed328b9811483

7 years agoSet coverage to false for dex2oat.
Vishwath Mohan [Thu, 29 Sep 2016 22:05:51 +0000 (15:05 -0700)]
Set coverage to false for dex2oat.

dex2oat explicitly sets address to false when SANITIZE_TARGET is
non-empty, in order to prevent it being compiled with ASAN. This CL also
sets coverage to false to prevent build errors when
SANITIZE_TARGET="address coverage" (because coverage currently does not
work without address).

Bug: 29188876
Test: SANITIZE_TARGET="address coverage" builds without error
Change-Id: I0faeb7fab76678b923af732235188e19e08ea90c

7 years agodex_cache: rewrite StringDexCachePair as DexCachePair<T>
Narayan Kamath [Thu, 29 Sep 2016 16:07:20 +0000 (17:07 +0100)]
dex_cache: rewrite StringDexCachePair as DexCachePair<T>

.. with [T = mirror::String]. This is in preparation for introducing
a dex cache array for MethodTypes, which will be treated the same way.

Test: make test-art-host
bug: 30550796
Change-Id: Ief4455b4c6e4c9dd897f2c40b14b843a57b1dc8e

7 years agoStore resolved Strings for AOT code in .bss.
Vladimir Marko [Wed, 21 Sep 2016 12:51:10 +0000 (13:51 +0100)]
Store resolved Strings for AOT code in .bss.

And do some related refactorings.

Bug: 20323084
Bug: 30627598
Test: Run ART test suite including gcstress on host and Nexus 9.
Test: Run ART test suite including gcstress with baker CC on host and Nexus 9.
Test: Build aosp_mips64-eng.
Change-Id: I1b12c1570fee8e5da490b47f231050142afcbd1e

7 years agoMerge "java.lang.invoke: Add mirror types for MethodHandle / MethodType."
Narayan Kamath [Thu, 29 Sep 2016 14:16:17 +0000 (14:16 +0000)]
Merge "java.lang.invoke: Add mirror types for MethodHandle / MethodType."

7 years agojava.lang.invoke: Add mirror types for MethodHandle / MethodType.
Narayan Kamath [Wed, 3 Aug 2016 11:46:58 +0000 (12:46 +0100)]
java.lang.invoke: Add mirror types for MethodHandle / MethodType.

Bug: 30550796
Test: make test-art-host
Change-Id: I096160464bc6e84f7e5ad021306a7e462cf3b0c5

7 years agoMerge "Print to System.err to avoid output races."
Treehugger Robot [Thu, 29 Sep 2016 09:51:52 +0000 (09:51 +0000)]
Merge "Print to System.err to avoid output races."

7 years agoMerge "ARM64: Update the disassembler after the VIXL update."
Nicolas Geoffray [Thu, 29 Sep 2016 08:49:06 +0000 (08:49 +0000)]
Merge "ARM64: Update the disassembler after the VIXL update."

7 years agoPrint to System.err to avoid output races.
Nicolas Geoffray [Thu, 29 Sep 2016 08:00:46 +0000 (09:00 +0100)]
Print to System.err to avoid output races.

test: run-test 054
Change-Id: I40ee02b377bd982090e74238dae0fddbde126a80

7 years agoMerge "Fix true divergence mode"
Treehugger Robot [Thu, 29 Sep 2016 00:56:11 +0000 (00:56 +0000)]
Merge "Fix true divergence mode"

7 years agoMerge "Update oat file version to 089"
Treehugger Robot [Wed, 28 Sep 2016 23:57:11 +0000 (23:57 +0000)]
Merge "Update oat file version to 089"

7 years agoFix true divergence mode
Wojciech Staszkiewicz [Wed, 28 Sep 2016 23:15:50 +0000 (16:15 -0700)]
Fix true divergence mode

Do not report TIMEOUT divergences in true divergence mode.

Test: ./run_jfuzz_test.py
Change-Id: I65e48ee6b3d90de0ba997a48b85445312cb0661f

7 years agoMerge "jni: test CriticalNative with generic jni"
Treehugger Robot [Wed, 28 Sep 2016 23:15:04 +0000 (23:15 +0000)]
Merge "jni: test CriticalNative with generic jni"

7 years agoMerge "Increase frame size for ASAN enabled builds."
Treehugger Robot [Wed, 28 Sep 2016 22:56:25 +0000 (22:56 +0000)]
Merge "Increase frame size for ASAN enabled builds."

7 years agoMerge "ART: Add IMT stats and dumping to oatdump"
Treehugger Robot [Wed, 28 Sep 2016 22:24:32 +0000 (22:24 +0000)]
Merge "ART: Add IMT stats and dumping to oatdump"

7 years agoUpdate oat file version to 089
Alex Light [Wed, 28 Sep 2016 22:04:03 +0000 (15:04 -0700)]
Update oat file version to 089

In order to ensure that the 088 oat version used in an internal branch
is not repeated in any other versions we are skipping it and moving
the oat version to 089.

Bug: 31789675
Test: mma test-art-host
Change-Id: Iaa2ba972caa223f8c747cc739aa4daa11eec3e33

7 years agoMerge "Use ObjPtr for reflection.cc/h/inl"
Mathieu Chartier [Wed, 28 Sep 2016 22:04:13 +0000 (22:04 +0000)]
Merge "Use ObjPtr for reflection.cc/h/inl"

7 years agoMake run-test fail if output-path is too long
Wojciech Staszkiewicz [Fri, 23 Sep 2016 17:59:55 +0000 (10:59 -0700)]
Make run-test fail if output-path is too long

Long output-path in no prebuild mode leads to silent fallback to
interpreter in dalvikvm.

This change ensures that we handle this situation by failing the
test.

Bug: 31597671
Test: m test-art-run-test -j
Change-Id: I19a7cee788760a81c9395be1252b2edab0db39f7

7 years agoART: Add IMT stats and dumping to oatdump
Andreas Gampe [Sun, 25 Sep 2016 23:08:35 +0000 (16:08 -0700)]
ART: Add IMT stats and dumping to oatdump

Add stats and IMT dumping to oatdump to help in the derivation
of a better hash.

Bug: 31594153
Test: m test-art-host
Change-Id: Ie0803860b53de8d3d68a1a596bf8771a9b96c7ff

7 years agojni: test CriticalNative with generic jni
Igor Murashkin [Wed, 28 Sep 2016 20:23:19 +0000 (13:23 -0700)]
jni: test CriticalNative with generic jni

Previously this combination was uncovered due to a missing
line in the macro definition.

Bug: 31400248
Test: make test-art-host
Change-Id: I5407f46f2394edc028c9b74dc783899a3a2f6588

7 years agoMerge "Gather divergences in single directory"
Treehugger Robot [Wed, 28 Sep 2016 20:22:28 +0000 (20:22 +0000)]
Merge "Gather divergences in single directory"

7 years agoGather divergences in single directory
Wojciech Staszkiewicz [Tue, 27 Sep 2016 20:09:34 +0000 (13:09 -0700)]
Gather divergences in single directory

Gather all divergences in a single directory to make investigating
them easier.

Test: ./run_jfuzz_test_nightly.py
Change-Id: I0fcdfb2f99e33d8bce444e5d5bf5092f282f03b1

7 years agoMerge "build: Fix golem build to exclude libartd.so from public.libraries.txt"
Treehugger Robot [Wed, 28 Sep 2016 18:11:47 +0000 (18:11 +0000)]
Merge "build: Fix golem build to exclude libartd.so from public.libraries.txt"

7 years agoMerge "ART: Dump referenced type in IRT overflows"
Treehugger Robot [Wed, 28 Sep 2016 18:01:40 +0000 (18:01 +0000)]
Merge "ART: Dump referenced type in IRT overflows"

7 years agoMerge "ART: Factor out IMT from ArtMethod"
Treehugger Robot [Wed, 28 Sep 2016 17:41:06 +0000 (17:41 +0000)]
Merge "ART: Factor out IMT from ArtMethod"

7 years agoART: Dump referenced type in IRT overflows
Andreas Gampe [Wed, 28 Sep 2016 01:45:02 +0000 (18:45 -0700)]
ART: Dump referenced type in IRT overflows

When the runtime dumps a reference table, e.g., when aborting for
an overflow, dump the type of stored referents for reference types
to aid in debugging leaks.

Bug: 31600693
Test: m test-art-host-gtest-reference_table_test
Change-Id: Ia892dc84ca8827dd93a8b75d6f571c392f94859c
(cherry picked from commit 280f32b095f55f24dc557f9a9067d223901214ce)

7 years agobuild: Fix golem build to exclude libartd.so from public.libraries.txt
Igor Murashkin [Wed, 28 Sep 2016 16:04:07 +0000 (09:04 -0700)]
build: Fix golem build to exclude libartd.so from public.libraries.txt

Golem doesn't build libartd.so, so at runtime the JNI loading would fail
when trying to initialize the android library namespaces.

Test: build-art-target-golem
Bug: 31401609
Change-Id: I2ee988e84d0a87b3cd1338d29fc28a874905cccc

7 years agoART: Factor out IMT from ArtMethod
Andreas Gampe [Mon, 26 Sep 2016 19:04:26 +0000 (12:04 -0700)]
ART: Factor out IMT from ArtMethod

Move IMT Conflict Table to its own file. Move IMT index computation to
ImTable.

In preparation for code using this independent of specific ArtMethods.

Bug: 31594153
Test: m test-art-host
Change-Id: Ifd6e304bb86724c5284984c4655c43d3af357f84

7 years agoMerge "Add support for Executable.getParameters() metadata"
Neil Fuller [Wed, 28 Sep 2016 12:29:53 +0000 (12:29 +0000)]
Merge "Add support for Executable.getParameters() metadata"

7 years agoAdd support for Executable.getParameters() metadata
Neil Fuller [Fri, 9 Sep 2016 13:24:51 +0000 (14:24 +0100)]
Add support for Executable.getParameters() metadata

java.lang.reflect.Executable native code to create Parameter
objects and supporting code for obtaining the system annotations
that hold the parameter metadata.

Bug: 30391692
Test: test-art-host and CtsLibcoreTestCases
Change-Id: I23d7e36014716967ce189fba5955cc5e064fe8d0

7 years agoMerge "benchmark: Add jni benchmarks for use in golem"
Nicolas Geoffray [Wed, 28 Sep 2016 08:24:12 +0000 (08:24 +0000)]
Merge "benchmark: Add jni benchmarks for use in golem"

7 years agoMerge "Handle tests which fail with no methods compiled"
Treehugger Robot [Wed, 28 Sep 2016 02:19:49 +0000 (02:19 +0000)]
Merge "Handle tests which fail with no methods compiled"

7 years agoMerge "Store bisection logs in test directory"
Treehugger Robot [Wed, 28 Sep 2016 02:14:34 +0000 (02:14 +0000)]
Merge "Store bisection logs in test directory"

7 years agoMerge "Fix a CC deadlock in 129-ThreadGetId."
Treehugger Robot [Tue, 27 Sep 2016 23:53:08 +0000 (23:53 +0000)]
Merge "Fix a CC deadlock in 129-ThreadGetId."

7 years agoUse ObjPtr for reflection.cc/h/inl
Mathieu Chartier [Tue, 27 Sep 2016 01:13:17 +0000 (18:13 -0700)]
Use ObjPtr for reflection.cc/h/inl

Changed Pretty helpers to use this to reduce usage of Decode. The
eventual goal is not have almost any calls to ObjPtr::Decode.

Moved ObjPtr out of mirror namespace for convenience. Added more
PoisonObjectPointers calls in class linker, thread suspension.

Bug: 31113334

Test: test-art-host

Change-Id: I44d08db5143d95ed1b65e2f00f9749ef5cf379f7

7 years agoMerge "Add a true divergence mode to run_jfuzz_test.py"
Treehugger Robot [Tue, 27 Sep 2016 20:12:21 +0000 (20:12 +0000)]
Merge "Add a true divergence mode to run_jfuzz_test.py"

7 years agoMerge "Add basic support for object pointer poisoning"
Mathieu Chartier [Tue, 27 Sep 2016 18:17:00 +0000 (18:17 +0000)]
Merge "Add basic support for object pointer poisoning"

7 years agoFix a CC deadlock in 129-ThreadGetId.
Hiroshi Yamauchi [Mon, 26 Sep 2016 23:56:24 +0000 (16:56 -0700)]
Fix a CC deadlock in 129-ThreadGetId.

GC should consider a thread as "waiting for GC thread flip" or
"transitioning to runnable" only if its suspend count is 1.

See 31683379#7 for the deadlock scenario.

Bug: 31683379
Bug: 12687968
Test: test-art with CC and gcstress, N9 libartd boot, Ritz EAAC.
Change-Id: Icd2548bd6d9a4f8d7b54ed20150a4801af9e26a3

7 years agobenchmark: Add jni benchmarks for use in golem
Igor Murashkin [Thu, 22 Sep 2016 22:46:29 +0000 (15:46 -0700)]
benchmark: Add jni benchmarks for use in golem

Also adds libartbenchmark.so as a build dependency for golem targets

Test: make build-art-host-golem build-art-target-golem
Bug: 31401609
Change-Id: I3f6b11f93684cc8eb3534bb02bf2d3eb05e39dcf

7 years agoMerge "ART: Fix dependencies"
Andreas Gampe [Tue, 27 Sep 2016 15:10:57 +0000 (15:10 +0000)]
Merge "ART: Fix dependencies"

7 years agoMerge "Cleanup String.<init> handling."
Nicolas Geoffray [Tue, 27 Sep 2016 09:31:33 +0000 (09:31 +0000)]
Merge "Cleanup String.<init> handling."

7 years agoCleanup String.<init> handling.
Nicolas Geoffray [Mon, 26 Sep 2016 16:56:07 +0000 (17:56 +0100)]
Cleanup String.<init> handling.

Move everything to one place (currently well_known_classes.cc, but
no strong preference) and define a macro to easily handle the list
of affected methods.

test: m test-art-host
test: m test-art-target
Change-Id: Ib8372d130d5458516a1f1ae31014afc76037fc34

7 years agoMerge "Fix no-prebuild failure."
Nicolas Geoffray [Tue, 27 Sep 2016 09:25:58 +0000 (09:25 +0000)]
Merge "Fix no-prebuild failure."

7 years agoFix no-prebuild failure.
Nicolas Geoffray [Tue, 27 Sep 2016 09:24:36 +0000 (10:24 +0100)]
Fix no-prebuild failure.

Printed executable is now dalvikvm* instead of art.

test:run-test --host 118

Change-Id: Id2c3a7f6ba90ee3cb4e57a49e366c46377fc4c45

7 years agoARM64: Update the disassembler after the VIXL update.
Alexandre Rames [Mon, 26 Sep 2016 13:14:01 +0000 (14:14 +0100)]
ARM64: Update the disassembler after the VIXL update.

Test: top-level `make -j40`
      `mma -j40 test-art-target-test-optimizing dist`
      `mma -j40 test-art-host dist`

Change-Id: I173976998dc8e3e466ca8502c3fdc447f9019cee

7 years agoMerge "ahat: Show GC Root Paths."
Treehugger Robot [Tue, 27 Sep 2016 07:17:52 +0000 (07:17 +0000)]
Merge "ahat: Show GC Root Paths."

7 years agoART: Fix dependencies
Andreas Gampe [Tue, 27 Sep 2016 03:17:42 +0000 (20:17 -0700)]
ART: Fix dependencies

Add libbase to libart-simulator.

Bug: 31338270
Test: m test-art-host
Change-Id: I956465f8d380e856cddf7f53c5aae358847b52ed

7 years agoMerge "ART: Fix dependencies"
Andreas Gampe [Tue, 27 Sep 2016 02:48:37 +0000 (02:48 +0000)]
Merge "ART: Fix dependencies"

7 years agoART: Fix dependencies
Andreas Gampe [Tue, 27 Sep 2016 01:09:47 +0000 (18:09 -0700)]
ART: Fix dependencies

Add libbase to libart-compiler.

Bug: 31338270
Test: m test-art-host
Change-Id: I6398baaaee15063f4c275f40109d943c04af066f

7 years agoStore bisection logs in test directory
Wojciech Staszkiewicz [Tue, 27 Sep 2016 00:51:52 +0000 (17:51 -0700)]
Store bisection logs in test directory

Store bisection search logs in test directory for easier access.

Test: ./test/run-test --never-clean --no-prebuild --bisection-search
037-inherit
Change-Id: I67e472b933516f0e486f47fd2c7a4ae06212db44

7 years agoHandle tests which fail with no methods compiled
Wojciech Staszkiewicz [Tue, 27 Sep 2016 00:39:26 +0000 (17:39 -0700)]
Handle tests which fail with no methods compiled

Check if test passes with no methods compiled and only then bisect
it.

Test: ./bisection_search.py -cp classes.dex --expected-output out --class
Test
Change-Id: If63af7304ae124a1920ec2a3f57d33a6b1f71bb9

7 years agoAdd basic support for object pointer poisoning
Mathieu Chartier [Mon, 26 Sep 2016 18:39:52 +0000 (11:39 -0700)]
Add basic support for object pointer poisoning

ObjPtr is a pointer that checks for heap corruption and is meant
to replace mirror::Object* in places where a mirror::Object* is a
local variable. Whenever there is a possible suspend point, the
current thread's object pointers are all invalidated. This is done
by storing a cookie in the object pointer associated with what thread
created it.

Added test case in object_test.

Example failure:
object_test F 25379 25379 object_pointer.h:70] Check failed:
IsValid() Invalid cookie, expected 0 but got 2

Bug: 31113334

Test: test-art-host-gtest-object_test

Change-Id: I9fa80ccaf2f0448621942935af702a243a3e1ee6

7 years agoMerge "ART: Fix dependencies"
Andreas Gampe [Mon, 26 Sep 2016 23:26:51 +0000 (23:26 +0000)]
Merge "ART: Fix dependencies"

7 years agoMerge "ART: Revert base/logging conditional hacks"
Treehugger Robot [Mon, 26 Sep 2016 23:00:02 +0000 (23:00 +0000)]
Merge "ART: Revert base/logging conditional hacks"

7 years agoMerge "ART: Fix nits"
Treehugger Robot [Mon, 26 Sep 2016 22:48:55 +0000 (22:48 +0000)]
Merge "ART: Fix nits"

7 years agoMerge "Implement nightly jfuzz test runner"
Treehugger Robot [Mon, 26 Sep 2016 21:42:08 +0000 (21:42 +0000)]
Merge "Implement nightly jfuzz test runner"

7 years agoART: Fix dependencies
Andreas Gampe [Mon, 26 Sep 2016 21:18:25 +0000 (14:18 -0700)]
ART: Fix dependencies

Add libbase as a dependency to libartbenchmark.

Bug: 31338270
Test: m test-art-host
Change-Id: I23c9f4219710fd8b5691837c5bc197b993aafe7b

7 years agoART: Fix nits
Andreas Gampe [Mon, 26 Sep 2016 21:07:57 +0000 (14:07 -0700)]
ART: Fix nits

Follow-up to commit 3fec9ac0d5af1358d216eb2fdc2000ec0205f3f0.

Bug: 31338270
Test: m test-art-host
Change-Id: Ia50f450bef144167b946224c26242c529302996e

7 years agoAdd a true divergence mode to run_jfuzz_test.py
Wojciech Staszkiewicz [Sat, 24 Sep 2016 01:02:55 +0000 (18:02 -0700)]
Add a true divergence mode to run_jfuzz_test.py

Adds a --true_divergence switch which prevents tool from bisecting
TIMEOUT vs ERROR and TIMEOUT vs SUCCESS return code divergences.

Test: ./run_jfuzz_test.py
Change-Id: I53dd1c2b6934aafcc178fcc5dffd0b10d7a7fc5f

7 years agoART: Revert base/logging conditional hacks
Andreas Gampe [Mon, 26 Sep 2016 19:51:53 +0000 (12:51 -0700)]
ART: Revert base/logging conditional hacks

This partially reverts commit bda1d606f2d31086874b68edd9254e3817d8049c.
ART was switched to libbase logging.

Bug: 31338270
Test: m test-art-host
Change-Id: I1a2f90d1ddb67d45ebe28d970b3ee7fd2d16a730

7 years agoMerge "jni: Punt to generic JNI for mips"
Treehugger Robot [Mon, 26 Sep 2016 19:53:37 +0000 (19:53 +0000)]
Merge "jni: Punt to generic JNI for mips"

7 years agoImplement nightly jfuzz test runner
Wojciech Staszkiewicz [Sat, 24 Sep 2016 00:41:27 +0000 (17:41 -0700)]
Implement nightly jfuzz test runner

New script runs multiple instances of run_jfuzz_test.py and has
predefined arguments suitable for nightly runs.

Test: ./run_jfuzz_test_nightly.py
Change-Id: I8c0060d72c69bbdf88571a9272f2d3fef74697eb

7 years agoMerge "ART: Use libbase logging"
Treehugger Robot [Mon, 26 Sep 2016 19:45:22 +0000 (19:45 +0000)]
Merge "ART: Use libbase logging"

7 years agoART: Use libbase logging
Andreas Gampe [Tue, 13 Sep 2016 17:47:28 +0000 (10:47 -0700)]
ART: Use libbase logging

Move most of our logging infrastructure over to system/core/base.
Retain VLOG.

Using unified Android infrastructure has two main advantages. First,
it reduces the complexity/maintenance burden in ART. Second, it
allows to detach logging for the cases where we do not want or need
a runtime, e.g., dexdump, the disassembler, etc. As a part of the
latter, libbase is also supported for all hosts (including Windows).

From a developer viewpoint, there are minor behavior changes for the
LOG statements (see above), but otherwise usage is the same. Explicit
severity enum items are in the android::base namespace now.

Bug: 31338270
Test: m test-art-host
Change-Id: I5abcb2f45f5b03d49951874c48544f72a283a91b

7 years agojni: Punt to generic JNI for mips
Igor Murashkin [Mon, 26 Sep 2016 17:10:17 +0000 (10:10 -0700)]
jni: Punt to generic JNI for mips

Preopting dex the bootclasspath causes dex2oat to crash for MIPS builds.
Disable JNI compiler for MIPS until it supports @CriticalNative.

Test: lunch aosp_mips-eng && make && make test-art-host
Bug: 31743474
Change-Id: I802f1e61863c4bb54a1bd884a4c9ce9a75bab62b

7 years agoIncrease frame size for ASAN enabled builds.
Vishwath Mohan [Mon, 26 Sep 2016 16:22:42 +0000 (09:22 -0700)]
Increase frame size for ASAN enabled builds.

This CL increases the frame size for builds where SANITIZE_TARGET is
non-empty from 6400 to 7400 (6400 was insufficient for ASAN and
coverage) to ensure that it builds successfully.

This was previously submitted as ag/1353693 for Android.common_build.mk,
but it looks like the frame size modifications have now moved to art.go
instead (found out from ag/1468464).

Bug: 30766843
Test: m test-art-host
Change-Id: If05defdcf93e2f6f7179941d95d8ee99c4c9a385

7 years agoMerge "Fix CTS crash from DexFile refactoring"
David Sehr [Mon, 26 Sep 2016 14:34:49 +0000 (14:34 +0000)]
Merge "Fix CTS crash from DexFile refactoring"

7 years agoMerge "Compensate in compiler for verifier shortcomings."
Treehugger Robot [Mon, 26 Sep 2016 12:39:16 +0000 (12:39 +0000)]
Merge "Compensate in compiler for verifier shortcomings."

7 years agoCompensate in compiler for verifier shortcomings.
Nicolas Geoffray [Fri, 23 Sep 2016 14:40:41 +0000 (15:40 +0100)]
Compensate in compiler for verifier shortcomings.

The verifier does not differentiate zero and null, so a move-object
of zero can be used as a non-object later on.

Change the compiler to ignore the object conversion when the input
is zero or a phi (which might just hold zeros). The type propagation
will then do proper inferencing of the types.

Also remove some stalled comments in ssa_builder.cc.

bug:31313170
test: dex2oat b31313170.apk
test: run-test 800
test: m test-art-host-run-test
Change-Id: I579d667415a7decf8ff2c2238dae4c13eec5d0e0

7 years agoahat: Show GC Root Paths.
Richard Uhler [Tue, 20 Sep 2016 09:41:47 +0000 (10:41 +0100)]
ahat: Show GC Root Paths.

The Dominator Path in the objects view is replaced by an augmented
Sample Path from GC Root, which includes non-dominator objects
along a sample path and field names.

Also, use blanks instead of "0" in heap tables when the size is 0.
This cleans up the pages a little, and conveniently lets us
distinguish between dominator and non-dominator objects in the Sample
Path from GC Root.

Test: m ahat-test, with new InstanceUtils.gcRootPath test added.

Bug: 27299030
Change-Id: I53d75f9dcb3157c2b5b3afc74958711536cd67b6

7 years agoMerge "Add DCE check to test 458-checker-instruct-simplification"
Sebastien Hertz [Mon, 26 Sep 2016 07:09:43 +0000 (07:09 +0000)]
Merge "Add DCE check to test 458-checker-instruct-simplification"

7 years agoMerge "Use liblog for liblog (instead of libcutils)"
Treehugger Robot [Sat, 24 Sep 2016 01:31:25 +0000 (01:31 +0000)]
Merge "Use liblog for liblog (instead of libcutils)"

7 years agoMerge "Smarter image layout"
Treehugger Robot [Sat, 24 Sep 2016 00:37:51 +0000 (00:37 +0000)]
Merge "Smarter image layout"

7 years agoUse liblog for liblog (instead of libcutils)
Dimitry Ivanov [Fri, 23 Sep 2016 23:52:05 +0000 (16:52 -0700)]
Use liblog for liblog (instead of libcutils)

Because one wouldn't use libcutils if there is a liblog.

Bug: http://b/31289077
Bug: http://b/27171986
Test: remove liblog from libcutils and make
Change-Id: I5e7eb3a67a483835933e1b5587d43b697e39ceac

7 years agoSmarter image layout
Mathieu Chartier [Tue, 20 Sep 2016 22:33:31 +0000 (15:33 -0700)]
Smarter image layout

Put strings in the dex file that resolves them.

Depth first traversal with overrides for class and dex cache. The
work list keeps track of what oat_index with each pushed item. This
means the static fields of a class will usually be in the same image.

Added layout test to image_test to make sure things are somewhat
reasonably attributed.

Bug: 28640955

Test: test-art-host

(cherry picked from commit 4e9c4e746617bad6a012d799d2f5cf9e01d24ea2)

Change-Id: I67a536c33aeed603b252d8e0f75622c9efbf2559

7 years agoFix CTS crash from DexFile refactoring
David Sehr [Thu, 22 Sep 2016 21:05:37 +0000 (14:05 -0700)]
Fix CTS crash from DexFile refactoring

Avoid path to nullptr access introduced by the previous refactoring.

Bug: 22322814
Change-Id: Id8874b26c072a11b0494e8126f8b0602a7c5b9e8
Test: m test-art-host, cts-tradefed run cts --skip-preconditions --skip-device-info --module vm-tests-tf

7 years agoMerge "Add CanWriteToDalvikCache() check before writing a boot marker or image cache."
Treehugger Robot [Fri, 23 Sep 2016 17:05:40 +0000 (17:05 +0000)]
Merge "Add CanWriteToDalvikCache() check before writing a boot marker or image cache."

7 years agoMerge "Minor jfuzz improvements."
Aart Bik [Fri, 23 Sep 2016 15:18:21 +0000 (15:18 +0000)]
Merge "Minor jfuzz improvements."

7 years agoAdd DCE check to test 458-checker-instruct-simplification
Sebastien Hertz [Fri, 23 Sep 2016 14:51:42 +0000 (16:51 +0200)]
Add DCE check to test 458-checker-instruct-simplification

Follow-up to 9837caff9cbfb61e3dabc6fbecb398d4d659c017 by checking
that dead code is actually removed.

Test: make -j32 test-art-host
Change-Id: Ic7848be893c6fe5e65f5bcdd525597072bf67857