OSDN Git Service

android-x86/art.git
7 years agoMerge "ART: Separate out Realloc reuse and alignment tests"
Treehugger Robot [Tue, 23 Aug 2016 21:21:00 +0000 (21:21 +0000)]
Merge "ART: Separate out Realloc reuse and alignment tests"

7 years agoMerge "Ongoing improvements in java fuzz testing"
Aart Bik [Tue, 23 Aug 2016 18:33:00 +0000 (18:33 +0000)]
Merge "Ongoing improvements in java fuzz testing"

7 years agoMerge "Revert "x86/x86-64: Avoid temporary for read barrier field load.""
Vladimir Marko [Tue, 23 Aug 2016 17:53:23 +0000 (17:53 +0000)]
Merge "Revert "x86/x86-64: Avoid temporary for read barrier field load.""

7 years agoRevert "x86/x86-64: Avoid temporary for read barrier field load."
Vladimir Marko [Tue, 23 Aug 2016 17:48:38 +0000 (17:48 +0000)]
Revert "x86/x86-64: Avoid temporary for read barrier field load."

Fault handler does not recognize the instruction
    F6 /0 ib    TEST r/m8, imm8
so we get crashes instead of NPEs.

Bug: 29966877
Bug: 12687968

This reverts commit ccf06d8f19a37432de4a3b768747090adfbd18ec.

Change-Id: Ib7db3b59f44c0d3ed5e24a20b6c6ee596a89d709

7 years agoMerge "ART: Clean up interpreter includes"
Treehugger Robot [Tue, 23 Aug 2016 15:35:14 +0000 (15:35 +0000)]
Merge "ART: Clean up interpreter includes"

7 years agoMerge "x86/x86-64: Avoid temporary for read barrier field load."
Treehugger Robot [Tue, 23 Aug 2016 12:36:53 +0000 (12:36 +0000)]
Merge "x86/x86-64: Avoid temporary for read barrier field load."

7 years agox86/x86-64: Avoid temporary for read barrier field load.
Vladimir Marko [Fri, 12 Aug 2016 12:37:55 +0000 (13:37 +0100)]
x86/x86-64: Avoid temporary for read barrier field load.

Add TEST instructions for memory and immediate. Use the byte
version to avoid a temporary in read barrier field load.

Test: Tested with ART_USE_READ_BARRIER=true on host.
Test: Tested with ART_USE_READ_BARRIER=true ART_HEAP_POISONING=true on host.
Bug: 29966877
Bug: 12687968
Change-Id: Ia415d3c2e1ae1ff6dff11d72bbb7d96d5deed6ee

7 years agoART: Clean up interpreter includes
Andreas Gampe [Tue, 23 Aug 2016 00:54:17 +0000 (17:54 -0700)]
ART: Clean up interpreter includes

Move goto-interpreter special-cased Clang declarations to goto
implementation file. Separate out declarations into their own
headers. Tag the declarations with thread safety annotations.

Minor compile-time impact when running with -j1.

Change-Id: I03664d4e7dc6361b2510a8c9beb693d23a657c9d
Test: m test-art-host
Test: m ART_TEST_INTERPRETER=true test-art-host

7 years agoMerge "Use full pass name when building optimizations"
Treehugger Robot [Tue, 23 Aug 2016 02:57:21 +0000 (02:57 +0000)]
Merge "Use full pass name when building optimizations"

7 years agoMerge "MIPS32: Optimize R6 round(float) intrinsic."
Treehugger Robot [Tue, 23 Aug 2016 02:49:26 +0000 (02:49 +0000)]
Merge "MIPS32: Optimize R6 round(float) intrinsic."

7 years agoART: Separate out Realloc reuse and alignment tests
Andreas Gampe [Tue, 23 Aug 2016 02:14:29 +0000 (19:14 -0700)]
ART: Separate out Realloc reuse and alignment tests

Separate out the tests for Realloc buffer reuse and realloc
alignment tests. This allows to turn off reuse tests under
memory tools (where we do not reuse).

Change-Id: I93375c6fbc577f9b796325f8143317610948455a
Test: m test-art-host-gtest-arena_allocator_test
Test: m valgrind-test-art-host-gtest-arena_allocator_test

7 years agoMerge "Improve art_quick_resolve_string for arm64 CC"
Mathieu Chartier [Tue, 23 Aug 2016 01:46:28 +0000 (01:46 +0000)]
Merge "Improve art_quick_resolve_string for arm64 CC"

7 years agoMerge "Fix build"
Treehugger Robot [Tue, 23 Aug 2016 01:18:58 +0000 (01:18 +0000)]
Merge "Fix build"

7 years agoUse full pass name when building optimizations
Wojciech Staszkiewicz [Tue, 16 Aug 2016 23:33:00 +0000 (16:33 -0700)]
Use full pass name when building optimizations

If possible, use full pass name provided in --run-passes rather
than its base version.

Test: m test-art-host -j32

1. Prepare a run-passes file with content:
dead_code_elimination$initial
instruction_simplifier
x86_memory_operand_generation
2. Run art for a dex file like:
art -Xcompiler-option --run-passes=run-passes -Xcompiler-option
--dump-passes -classpath classes.dex Test
3. Verify that dead_code_elimination$initial string is present in
dump-passes output.

Change-Id: I92d9ed0c8b919ea03f625f549123f546dffe546b

7 years agoMerge "ART: Fix x86_64 entrypoint breakage with SYMBOL()."
Mathieu Chartier [Tue, 23 Aug 2016 00:36:19 +0000 (00:36 +0000)]
Merge "ART: Fix x86_64 entrypoint breakage with SYMBOL()."

7 years agoImprove art_quick_resolve_string for arm64 CC
Mathieu Chartier [Mon, 22 Aug 2016 22:38:08 +0000 (15:38 -0700)]
Improve art_quick_resolve_string for arm64 CC

Check gc_is_marking instead of the mark bit first, this makes it
that we don't go slow path if the GC is not running.

Also reduced the code by a few instructions.

EAAC CC: ~2000 -> 1256

Test: test-art-target-run-test -j4

Bug: 20323084
Change-Id: I57a1f7a52f1909e2e5dd1b2cfd2612b4a642fe37

7 years agoFix build
Colin Cross [Mon, 22 Aug 2016 23:00:07 +0000 (16:00 -0700)]
Fix build

Move instruction_simplifier_arm.cc to the arm source list to fix
full-eng builds.

Change-Id: Ic7fc884f5cc2acec5579dc417acece21b7e674aa

7 years agoMerge "ART: Test arena allocator alignment"
Treehugger Robot [Mon, 22 Aug 2016 22:58:38 +0000 (22:58 +0000)]
Merge "ART: Test arena allocator alignment"

7 years agoART: Fix x86_64 entrypoint breakage with SYMBOL().
Christina Wadsworth [Mon, 22 Aug 2016 22:55:31 +0000 (15:55 -0700)]
ART: Fix x86_64 entrypoint breakage with SYMBOL().

Change-Id: Id42b6e9a7e5444536f6fb672ec40e9f37c77a649

7 years agoMerge "ART: String DexCache asm fast path for ARM64"
Mathieu Chartier [Mon, 22 Aug 2016 22:50:04 +0000 (22:50 +0000)]
Merge "ART: String DexCache asm fast path for ARM64"

7 years agoMerge "ART: String DexCache asm fast path for ARM"
Treehugger Robot [Mon, 22 Aug 2016 22:33:42 +0000 (22:33 +0000)]
Merge "ART: String DexCache asm fast path for ARM"

7 years agoMerge "ART: String DexCache asm fast path for x86"
Treehugger Robot [Mon, 22 Aug 2016 22:07:29 +0000 (22:07 +0000)]
Merge "ART: String DexCache asm fast path for x86"

7 years agoMerge "Only compile device codegen for device architectures"
Colin Cross [Mon, 22 Aug 2016 21:55:31 +0000 (21:55 +0000)]
Merge "Only compile device codegen for device architectures"

7 years agoMerge "ART: String DexCache asm fast path for x86_64"
Treehugger Robot [Mon, 22 Aug 2016 21:38:58 +0000 (21:38 +0000)]
Merge "ART: String DexCache asm fast path for x86_64"

7 years agoMerge "Revert "Revert "Improve the thread flip."""
Treehugger Robot [Mon, 22 Aug 2016 21:07:31 +0000 (21:07 +0000)]
Merge "Revert "Revert "Improve the thread flip."""

7 years agoART: Test arena allocator alignment
Andreas Gampe [Mon, 22 Aug 2016 21:03:10 +0000 (14:03 -0700)]
ART: Test arena allocator alignment

Add tests for Alloc and Realloc alignment.

Change-Id: If17b1d898200752a6a1ae25f436c73e5b7eb23f7
Test: m test-art-host-gtest-arena_allocator_test

7 years agoART: String DexCache asm fast path for ARM64
Christina Wadsworth [Mon, 8 Aug 2016 20:08:05 +0000 (13:08 -0700)]
ART: String DexCache asm fast path for ARM64

In the entrypoints, before a string is looked up in the slow path (in
the intern table), I added assembly to check the dex cache and return a
string pointer if the string is already in the dex cache.

Test: test-art-host

Change-Id: Ic9a724848c61e4fa66e82334e2c7b20b13bf8e6c

7 years agoART: String DexCache asm fast path for ARM
Christina Wadsworth [Fri, 19 Aug 2016 18:24:48 +0000 (11:24 -0700)]
ART: String DexCache asm fast path for ARM

In the entrypoints, before a string is looked up in the slow path (in
the intern table), I added assembly to check the dex cache and return a
string pointer if the string is already in the dex cache.

Test: test-art-host

Change-Id: I245946b3efa9c2e4fa56f761effb90963ac22ec4

7 years agoMerge "Fix debugger missing handle between adding and tagging object."
Jeff Hao [Mon, 22 Aug 2016 20:26:20 +0000 (20:26 +0000)]
Merge "Fix debugger missing handle between adding and tagging object."

7 years agoART: String DexCache asm fast path for x86
Christina Wadsworth [Mon, 22 Aug 2016 20:22:36 +0000 (13:22 -0700)]
ART: String DexCache asm fast path for x86

In the entrypoints, before a string is looked up in the slow path (in
the intern table), I added assembly to check the dex cache and return a
string pointer if the string is already in the dex cache.

Test: test-art-host

Change-Id: Id0c337b380adc0b2bde5325745c928290d9da1b0

7 years agoMerge "Add define needed by new vixl"
Treehugger Robot [Mon, 22 Aug 2016 20:19:06 +0000 (20:19 +0000)]
Merge "Add define needed by new vixl"

7 years agoOngoing improvements in java fuzz testing
Aart Bik [Fri, 19 Aug 2016 22:45:11 +0000 (15:45 -0700)]
Ongoing improvements in java fuzz testing

Added --device option to runner to define target in case
        multiple devices are attached

Added more cases to JavaFuzz, removed a few cases that
are likely to hang the program (such as changing loop
variables) since throughput is more important for fuzzing

Test: run_java_fuzz_test.py

BUG=30610121

Change-Id: I0cd6f5d3b7fb35ddb91d91c0c0c00afaf83218d8

7 years agoFix debugger missing handle between adding and tagging object.
Jeff Hao [Mon, 22 Aug 2016 18:34:41 +0000 (11:34 -0700)]
Fix debugger missing handle between adding and tagging object.

Bug: 30951794
Change-Id: Ic9c5f296efe839a8961ab00d08afc54c5443bc17

7 years agoRevert "Revert "Improve the thread flip.""
Hiroshi Yamauchi [Sat, 20 Aug 2016 00:03:27 +0000 (17:03 -0700)]
Revert "Revert "Improve the thread flip.""

This reverts commit db3204f87c3f7c4de89762ce9e8502a9dc25c2d8.

Improve the thread flip.

- In addition to the threads that are suspended in FullSuspendCheck(),
  prioritize the resume of threads that are blocking for the thread
  flip at the JNI critical section entry and threads are about to
  transition to runnable (eg. blocking at the SOA entry from JNI).
- Shorten the length of the thread flip critical
  section (ThreadFlipBegin/End).
- Add some systrace scopes.
- Add a read barrier for the locked objects during the thread dump in
  case the thread is in the middle of flipping.

Bug: 30980189
Bug: 29517059
Bug: 12687968
Test: test-art-host, Ritz EAAC, N9 libartd boot
Change-Id: I3a903c47c0fcc746664ec376cc31dee8af3c3ecb

7 years agoMerge "ART: Adding asm support for string dex cache"
Treehugger Robot [Mon, 22 Aug 2016 18:09:06 +0000 (18:09 +0000)]
Merge "ART: Adding asm support for string dex cache"

7 years agoART: String DexCache asm fast path for x86_64
Christina Wadsworth [Mon, 22 Aug 2016 17:46:55 +0000 (10:46 -0700)]
ART: String DexCache asm fast path for x86_64

In the entrypoints, before a string is looked up in the slow
path (in the intern table), I added assembly to check the dex cache and return a
string pointer if the string is already in the dex cache.

Test: test-art-host

Change-Id: Id1b0314d597c2abff3f7d332f4ab66271f026dc1

7 years agoART: Adding asm support for string dex cache
Christina Wadsworth [Fri, 19 Aug 2016 18:23:48 +0000 (11:23 -0700)]
ART: Adding asm support for string dex cache

Added constants and offsets for the string dex cache fast paths that
will be introduced into entrypoints in subsequent commits.

Test: test-art-host

Change-Id: I19f97526e06cbedc782d5ef11359796731cdad82

7 years agoAdd define needed by new vixl
Colin Cross [Sat, 20 Aug 2016 05:35:58 +0000 (22:35 -0700)]
Add define needed by new vixl

vixl now requires -DVIXL_INCLUDE_SIMULATOR_AARCH64 when including
simulator-aarch64.h.

Tests: mmma -j art, m -j build-art-tests
Change-Id: I9b9bb7ca618ccbb505de943825f5e9517542fa1b

7 years agoMerge "Fix debugger calling new String()."
Jeff Hao [Mon, 22 Aug 2016 16:47:43 +0000 (16:47 +0000)]
Merge "Fix debugger calling new String()."

7 years agoMerge "ARM/ARM64: Improve comments for kSaveEverything assembly."
Treehugger Robot [Mon, 22 Aug 2016 16:39:20 +0000 (16:39 +0000)]
Merge "ARM/ARM64: Improve comments for kSaveEverything assembly."

7 years agoARM/ARM64: Improve comments for kSaveEverything assembly.
Vladimir Marko [Mon, 22 Aug 2016 15:02:12 +0000 (16:02 +0100)]
ARM/ARM64: Improve comments for kSaveEverything assembly.

Addresses post-submit comments for
    https://android-review.googlesource.com/255290

Test: Rely on TreeHugger (just adds comments).
Bug: 30212852
Change-Id: I6ccc004774e18bbd83e3940e908cfc6c521142db

7 years agoMerge "ART: Add thread offset printing hook to disassembler"
Treehugger Robot [Mon, 22 Aug 2016 15:01:24 +0000 (15:01 +0000)]
Merge "ART: Add thread offset printing hook to disassembler"

7 years agoMerge "Do not run 537-checker-arraycopy on non-Baker read barrier configs."
Roland Levillain [Mon, 22 Aug 2016 14:58:05 +0000 (14:58 +0000)]
Merge "Do not run 537-checker-arraycopy on non-Baker read barrier configs."

7 years agoDo not run 537-checker-arraycopy on non-Baker read barrier configs.
Roland Levillain [Mon, 22 Aug 2016 12:59:21 +0000 (13:59 +0100)]
Do not run 537-checker-arraycopy on non-Baker read barrier configs.

Test: ART_USE_READ_BARRIER=true ART_READ_BARRIER_TYPE=TABLELOOKUP make test-art-host-run-test-537-checker-arraycopy
Bug: 29516905
Bug: 12687968
Change-Id: Ie77f3a7ce19f3ff78d2132ca70fb10b595eb54d5

8 years agoMerge "ART: Enforce arena alignment in Realloc"
Treehugger Robot [Sat, 20 Aug 2016 05:19:15 +0000 (05:19 +0000)]
Merge "ART: Enforce arena alignment in Realloc"

8 years agoART: Enforce arena alignment in Realloc
Andreas Gampe [Sat, 20 Aug 2016 03:22:19 +0000 (20:22 -0700)]
ART: Enforce arena alignment in Realloc

Enforce the expected alignment in Realloc when the given buffer
can be expanded.

Add debug checks to prove alignment guarantees.

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

8 years agoFix debugger calling new String().
Jeff Hao [Sat, 20 Aug 2016 01:31:39 +0000 (18:31 -0700)]
Fix debugger calling new String().

Used to return an empty string instead of the newly created String.
Requires accompanying jdwp test fix to test String contents.

Bug: 30951794
Change-Id: I27a8e0afcbe7e32a14dd3c394e44b6cd4d3c58f6
Test: mm -j24 run-jdwp-tests-host

8 years agoMerge "ART: Added DCHECKS to find alignment breakage."
Treehugger Robot [Sat, 20 Aug 2016 00:26:36 +0000 (00:26 +0000)]
Merge "ART: Added DCHECKS to find alignment breakage."

8 years agoART: Add thread offset printing hook to disassembler
Andreas Gampe [Fri, 19 Aug 2016 17:49:06 +0000 (10:49 -0700)]
ART: Add thread offset printing hook to disassembler

To prepare separation of disassembler from libart, add a function
hook to the disassembler options for thread offset name printing.

Bug: 15436106
Change-Id: I9e9b7e565ae923952c64026f675ac527b560f51b

8 years agoART: Added DCHECKS to find alignment breakage.
Christina Wadsworth [Fri, 19 Aug 2016 22:58:05 +0000 (15:58 -0700)]
ART: Added DCHECKS to find alignment breakage.

Change-Id: I47aed866ec3c3858dc3ee27cb84cfaddf44009d1

8 years agoMerge "Revert "Improve the thread flip.""
Treehugger Robot [Fri, 19 Aug 2016 22:12:40 +0000 (22:12 +0000)]
Merge "Revert "Improve the thread flip.""

8 years agoMerge "ART: Fixing build breakage (sharpening DCHECK)."
Mathieu Chartier [Fri, 19 Aug 2016 21:53:57 +0000 (21:53 +0000)]
Merge "ART: Fixing build breakage (sharpening DCHECK)."

8 years agoMerge "ART: Fixing build breakage."
Mathieu Chartier [Fri, 19 Aug 2016 21:53:20 +0000 (21:53 +0000)]
Merge "ART: Fixing build breakage."

8 years agoART: Fixing build breakage (sharpening DCHECK).
Christina Wadsworth [Fri, 19 Aug 2016 21:38:01 +0000 (14:38 -0700)]
ART: Fixing build breakage (sharpening DCHECK).

Change-Id: I7ba19808dde0712739a278075da57f724166a233

8 years agoART: Fixing build breakage.
Christina Wadsworth [Fri, 19 Aug 2016 20:28:19 +0000 (13:28 -0700)]
ART: Fixing build breakage.

Caused by Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e.

Change-Id: Ia0c0fbcb6c8b141c5ee30a89ab6bc1c653916698

8 years agoMerge "Fix building tests with partial arch codegen support"
Colin Cross [Fri, 19 Aug 2016 20:16:29 +0000 (20:16 +0000)]
Merge "Fix building tests with partial arch codegen support"

8 years agoMerge "Implemented first version of java fuzz testing script."
Treehugger Robot [Fri, 19 Aug 2016 20:15:03 +0000 (20:15 +0000)]
Merge "Implemented first version of java fuzz testing script."

8 years agoImplemented first version of java fuzz testing script.
Aart Bik [Wed, 17 Aug 2016 23:51:12 +0000 (16:51 -0700)]
Implemented first version of java fuzz testing script.

Test: run_java_fuzz_test.py

BUG=30610121

Change-Id: I2a802476bcb0986e2891748ad85f8feac21656a8

8 years agoRevert "Improve the thread flip."
Hiroshi Yamauchi [Fri, 19 Aug 2016 17:56:11 +0000 (17:56 +0000)]
Revert "Improve the thread flip."

This reverts commit e61e6fdd404b8f04bd33fc3ea49e38e92e31ad69.

ThreadStress failing.

Bug: 29517059
Bug: 12687968
Change-Id: I0ee8ef04f77c5f9378e4bd21c5dedb4e435a2dc6

8 years agoOnly compile device codegen for device architectures
Colin Cross [Thu, 18 Aug 2016 20:49:53 +0000 (13:49 -0700)]
Only compile device codegen for device architectures

Change the default for ART_TARGET_CODEGEN_ARCHS to svelte, so that only
the architectures used on the device are included in the device
libraries.

Tests: m -j test-art-target
Bug: 30928847
Change-Id: I95c8a77a5520a1030abcd45e8bb6f56bc8fc7814

8 years agoFix building tests with partial arch codegen support
Colin Cross [Thu, 18 Aug 2016 20:45:24 +0000 (13:45 -0700)]
Fix building tests with partial arch codegen support

Add conditionals around more code that is only used for codegen for
specific architectures, and move a few more files into the
architecture-specific codegen lists.

Tests: ART_HOST_CODEGEN_ARCHS="x86_64 mips" m -j ART_TARGET_CODEGEN_ARCHS=svelte test-art-host
Bug: 30928847
Change-Id: I0444d15e1cafe4c9b13ff78718c3b13b544270e7

8 years agoMerge "ART: Implement a fixed size string dex cache"
Mathieu Chartier [Fri, 19 Aug 2016 17:33:03 +0000 (17:33 +0000)]
Merge "ART: Implement a fixed size string dex cache"

8 years agoMerge "Add support for Baker read barriers in SystemArrayCopy intrinsics."
Roland Levillain [Fri, 19 Aug 2016 15:07:31 +0000 (15:07 +0000)]
Merge "Add support for Baker read barriers in SystemArrayCopy intrinsics."

8 years agoAdd support for Baker read barriers in SystemArrayCopy intrinsics.
Roland Levillain [Fri, 19 Aug 2016 11:02:34 +0000 (12:02 +0100)]
Add support for Baker read barriers in SystemArrayCopy intrinsics.

Benchmarks (ARM64) score variations on Nexus 5X with CPU
cores clamped at 960000 Hz (aosp_bullhead-userdebug build):
- Ritzperf - average (lower is better):       -3.03% (slightly better)
- CaffeineMark - average (higher is better):  +1.26% (slightly better)
- DeltaBlue (lower is better):               -10.50% (better)
- Richards - average (lower is better):       -3.36% (slightly better)
- SciMark2 - average (higher is better):      +0.26% (virtually unchanged)

Details about Ritzperf benchmarks with meaningful variations
(lower is better):
- FormulaEvaluationActions.EvaluateAndApplyChanges: -13.26% (better)
- FormulaEvaluationActions.EvaluateCascadingSums:   -10.94% (better)
- FormulaEvaluationActions.EvaluateComplexFormulas: -15.50% (better)
- FormulaEvaluationActions.EvaluateFibonacci:       -10.41% (better)
- FormulaEvaluationActions.EvaluateLargeSums:        +6.02% (worse)

Boot image code size variation on Nexus 5X
(aosp_bullhead-userdebug build):
- total ARM64 framework Oat files size change:
  107047632 bytes -> 107154128 bytes (+0.10%)
- total ARM framework Oat files size change:
  90932028 bytes -> 91009852 bytes (+0.09%)

Test: ART host and target (ARM, ARM64) tests + Nexus 5X boot.
Bug: 29516905
Bug: 29506760
Bug: 12687968
Change-Id: I85431368d09965687a0301ae2eb3c991f276ce5d

8 years agoMerge "Improve the thread flip."
Treehugger Robot [Fri, 19 Aug 2016 01:29:50 +0000 (01:29 +0000)]
Merge "Improve the thread flip."

8 years agoMerge "Color spill slots in gc regalloc"
Treehugger Robot [Fri, 19 Aug 2016 00:30:44 +0000 (00:30 +0000)]
Merge "Color spill slots in gc regalloc"

8 years agoMerge "Log optimization passes in verbose mode"
Aart Bik [Thu, 18 Aug 2016 23:35:09 +0000 (23:35 +0000)]
Merge "Log optimization passes in verbose mode"

8 years agoART: Implement a fixed size string dex cache
Christina Wadsworth [Thu, 18 Aug 2016 17:37:42 +0000 (10:37 -0700)]
ART: Implement a fixed size string dex cache

Previously, the string dex cache was dex_file->NumStringIds() size, and
@ruhler found that only ~1% of that cache was ever getting filled. Since
many of these string dex caches were previously 100,000+ indices in
length, we're wasting a few hundred KB per app by storing null pointers.
The intent of this project was to reduce the space the string dex cache
is using, while not regressing on time that much. This is the first of a
few CLs, which implements the new fixed size array and disables the
compiled code so it always goes slow path. In four other CLs, I
implemented a "medium path" that regresses from the previous "fast path"
only a bit in assembly in the entrypoints. @vmarko will introduce new
compiled code in the future so that we ultimately won't be regressing on
time at all. Overall, space savings have been confirmed as on the order
of 100 KB per application.

A 4-5% slow down in art-opt on Golem, and no noticeable slow down in the
interpreter. The opt slow down should be diminished once the new
compiled code is introduced.

Test: m test-art-host

Bug: 20323084

Change-Id: Ic654a1fb9c1ae127dde59290bf36a23edb55ca8e

8 years agoMerge "dex_instruction: k45cc HasVarArgs"
Treehugger Robot [Thu, 18 Aug 2016 10:56:54 +0000 (10:56 +0000)]
Merge "dex_instruction: k45cc HasVarArgs"

8 years agodex_instruction: k45cc HasVarArgs
Narayan Kamath [Mon, 15 Aug 2016 15:08:18 +0000 (16:08 +0100)]
dex_instruction: k45cc HasVarArgs

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

8 years agoMerge "Fix optimizing compiler not building for svelte"
Treehugger Robot [Thu, 18 Aug 2016 06:07:42 +0000 (06:07 +0000)]
Merge "Fix optimizing compiler not building for svelte"

8 years agoImprove the thread flip.
Hiroshi Yamauchi [Tue, 2 Aug 2016 23:03:06 +0000 (16:03 -0700)]
Improve the thread flip.

- In addition to the threads that are suspended in FullSuspendCheck(),
  prioritize the resume of threads that are blocking for the thread
  flip at the JNI critical section entry and threads are about to
  transition to runnable (eg. blocking at the SOA entry from JNI).
- Shorten the length of the thread flip critical
  section (ThreadFlipBegin/End).
- Add some systrace scopes.

Bug: 29517059
Bug: 12687968
Test: test-art-host, Ritz EAAC, N9 libartd boot.
Change-Id: Idecec9936ae432c23d5f83321ba13339852018df

8 years agoMerge "Remove unused include."
Treehugger Robot [Thu, 18 Aug 2016 03:17:20 +0000 (03:17 +0000)]
Merge "Remove unused include."

8 years agoFix optimizing compiler not building for svelte
Wojciech Staszkiewicz [Thu, 18 Aug 2016 02:15:51 +0000 (19:15 -0700)]
Fix optimizing compiler not building for svelte

Fixes compiler not building when some of the codegen paths
are disabled.

Test: mmma -j art ART_TARGET_CODEGEN_ARCHS=svelte
m -j32 test-art-host

BUG=30928847

Change-Id: I52c78e8a4e507f74b1f2a39352970079721b737e

8 years agoRemove unused include.
Dmitriy Filchenko [Thu, 18 Aug 2016 00:58:08 +0000 (17:58 -0700)]
Remove unused include.

BUG: 29824203

Change-Id: Iea74f7b166c3e81c0d00c92442f27e162631e5ae

8 years agoLog optimization passes in verbose mode
Wojciech Staszkiewicz [Wed, 17 Aug 2016 00:31:19 +0000 (17:31 -0700)]
Log optimization passes in verbose mode

Introduce verbose logging of optimization passes run during
compilation.

Test: m test-art-host -j32
art -Xcompiler-option --runtime-arg -Xcompiler-option -verbose:compiler
-classpath classes.dex Test
Change-Id: Iae98ce9dcafc252f2d0eec138aa05b34e424bd2a

8 years agoMerge "Remove ART_DEFAULT_INSTRUCTION_SET_FEATURES"
Treehugger Robot [Thu, 18 Aug 2016 01:24:31 +0000 (01:24 +0000)]
Merge "Remove ART_DEFAULT_INSTRUCTION_SET_FEATURES"

8 years agoRemove ART_DEFAULT_INSTRUCTION_SET_FEATURES
Colin Cross [Wed, 17 Aug 2016 23:52:08 +0000 (16:52 -0700)]
Remove ART_DEFAULT_INSTRUCTION_SET_FEATURES

It is never used.

Test: mmma -j art
Change-Id: I014a8ab11d3a3241c075503bc2674279130cb86f

8 years agoMerge "Revert "Logging improvements for C++ / Java structure issues""
Treehugger Robot [Wed, 17 Aug 2016 23:58:47 +0000 (23:58 +0000)]
Merge "Revert "Logging improvements for C++ / Java structure issues""

8 years agoRevert "Logging improvements for C++ / Java structure issues"
Mathieu Chartier [Wed, 17 Aug 2016 22:43:52 +0000 (22:43 +0000)]
Revert "Logging improvements for C++ / Java structure issues"

Bug: 30913672

This reverts commit d833525cfe3ac2086e3156a8b3193c05974d6316.

Change-Id: I4e51591b49d54b8bb3e920fbc221c21aca0084fb

8 years agoMerge "Add newline for INTERNAL_FATAL automatically"
Mathieu Chartier [Wed, 17 Aug 2016 22:43:17 +0000 (22:43 +0000)]
Merge "Add newline for INTERNAL_FATAL automatically"

8 years agoColor spill slots in gc regalloc
Matthew Gharrity [Sat, 13 Aug 2016 02:07:11 +0000 (19:07 -0700)]
Color spill slots in gc regalloc

Coloring spill slots avoids pathologically large stack
sizes by reusing spill slots when possible.

Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host

Change-Id: I4b4aea859c78b0515758f8b057ee870dbbfc2300

8 years agoMerge "Track cumulative objects and bytes copied for CC"
Mathieu Chartier [Wed, 17 Aug 2016 20:22:24 +0000 (20:22 +0000)]
Merge "Track cumulative objects and bytes copied for CC"

8 years agoAdd newline for INTERNAL_FATAL automatically
Mathieu Chartier [Wed, 17 Aug 2016 17:28:48 +0000 (10:28 -0700)]
Add newline for INTERNAL_FATAL automatically

Before, the behavior was different compared to other log levels
that automatically added newlines.

Bug: 30913672

Test: test-art-host

Change-Id: I02147d8ac7ea38f3e93450ef5290cdfed7b5a2eb

8 years agoMerge "Add skeleton of a jvmti plugin for art."
Treehugger Robot [Wed, 17 Aug 2016 19:15:54 +0000 (19:15 +0000)]
Merge "Add skeleton of a jvmti plugin for art."

8 years agoMerge "Blacklist failing libcore tests."
Narayan Kamath [Wed, 17 Aug 2016 18:50:12 +0000 (18:50 +0000)]
Merge "Blacklist failing libcore tests."

8 years agoBlacklist failing libcore tests.
Narayan Kamath [Wed, 17 Aug 2016 18:14:01 +0000 (19:14 +0100)]
Blacklist failing libcore tests.

bug: 30917411
test: art/tools/buildbot_build.sh && art/tools/run-libcore-tests.sh
Change-Id: Ib5e9adb6e9222d607b6d79f0f7eebf3d313272d2

8 years agoAdd skeleton of a jvmti plugin for art.
Alex Light [Thu, 11 Aug 2016 22:35:28 +0000 (15:35 -0700)]
Add skeleton of a jvmti plugin for art.

Test: mma test-art-host-run-test-901-hello-ti-agent
Change-Id: If6807b6238d57471e4ba0dd75c717721246443f6

8 years agoTrack cumulative objects and bytes copied for CC
Mathieu Chartier [Wed, 17 Aug 2016 17:07:29 +0000 (10:07 -0700)]
Track cumulative objects and bytes copied for CC

Also print out these values when dumping GC performance info.

Bug: 12687968

Test: Test that values are reasonable after running EAAC.

Change-Id: Id04fadeaf52511560fd4b261f5287ea0a5dae9d4

8 years agoMerge "Logging improvements for C++ / Java structure issues"
Neil Fuller [Wed, 17 Aug 2016 13:19:28 +0000 (13:19 +0000)]
Merge "Logging improvements for C++ / Java structure issues"

8 years agoMerge "Adjustments for changes made to java.lang.Class"
Neil Fuller [Wed, 17 Aug 2016 12:17:06 +0000 (12:17 +0000)]
Merge "Adjustments for changes made to java.lang.Class"

8 years agoLogging improvements for C++ / Java structure issues
Neil Fuller [Wed, 17 Aug 2016 10:39:26 +0000 (11:39 +0100)]
Logging improvements for C++ / Java structure issues

When C++ and Java structures are different sizes or arranged
differently some log statements are useful but are hard to
pick out because they merge with other log lines. Adding
"\n" to the end of them makes it easier to read.

Change-Id: Ia6d78e0832c7814bf1fef42bb3d8c056f83766bd
Test: make build-art-host

8 years agoAdjustments for changes made to java.lang.Class
Neil Fuller [Tue, 16 Aug 2016 18:53:07 +0000 (19:53 +0100)]
Adjustments for changes made to java.lang.Class

Fix up the runtime after removal of the annotationType field
from java.lang.Class.

Test: make test-art-host / boot a device
Change-Id: I5f37567d2b5ec381b35e66fef29287abe307b840

8 years agoMerge "Always mark zygote large objects for CC"
Treehugger Robot [Wed, 17 Aug 2016 03:18:36 +0000 (03:18 +0000)]
Merge "Always mark zygote large objects for CC"

8 years agoAlways mark zygote large objects for CC
Mathieu Chartier [Tue, 16 Aug 2016 19:15:59 +0000 (12:15 -0700)]
Always mark zygote large objects for CC

Prevent needing to gray holders of zygote large objects.
System wide zygote space PSS after boot:
12644 kB -> 5571 kB for CC.

Also PSS reduction in zygote large objects themselves since their
gray bit would have been set each GC.
Overall LOS savings hard to measure, could be up to 316 * 4KB per
app since there are 316 zygote large objects.

Also clear mod-union tables for image spaces to prevent dirty
image pages if any of the image spaces point to zygote large objects.
System wide .art mmap: 37432 kB -> 34372 kB

System server before (N6P):
LOS shared dirty: 12888 kB
Zygote space shared dirty: 700 kB
Zygote space private dirty: 868 kB
.art private dirty: 1696 kB

After:
LOS shared dirty 13672 kB
Zygote space shared dirty: 1072 kB
Zygote space private dirty: 496 kB
.art private dirty: 1432 kB

Bug: 29516968

Test: test-art-host with baker CC, debug N6P phone booting

Change-Id: Ia37ce2c11217cf56885bd1d1dc084332fcbb7843

8 years agoMerge "jni: Fast path for @FastNative annotated java methods"
Treehugger Robot [Tue, 16 Aug 2016 21:51:02 +0000 (21:51 +0000)]
Merge "jni: Fast path for @FastNative annotated java methods"

8 years agojni: Fast path for @FastNative annotated java methods
Igor Murashkin [Fri, 29 Jul 2016 16:51:58 +0000 (09:51 -0700)]
jni: Fast path for @FastNative annotated java methods

Adds a faster path for java methods annotated with
dalvik.annotation.optimization.FastNative .

Intended to replace usage of fast JNI (registering with "!(FOO)BAR" descriptors).

Performance Microbenchmark Results (Angler):
* Regular JNI cost in nanoseconds: 115
* Fast JNI cost in nanoseconds: 60
* @FastNative cost in nanoseconds: 36

Summary: Up to 67% faster (vs fast jni) JNI transition cost

Change-Id: Ic23823ae0f232270c068ec999fd89aa993894b0e

8 years agoMerge "Update ahat README and manifest for release 0.7."
Treehugger Robot [Tue, 16 Aug 2016 19:53:15 +0000 (19:53 +0000)]
Merge "Update ahat README and manifest for release 0.7."

8 years agoMerge "Remove unused GetDalvikCacheFilenameOrDie."
Treehugger Robot [Tue, 16 Aug 2016 17:59:51 +0000 (17:59 +0000)]
Merge "Remove unused GetDalvikCacheFilenameOrDie."

8 years agoMerge "Welcome to JavaFuzz as our latest A[a]rt tools team member!"
Treehugger Robot [Tue, 16 Aug 2016 16:34:36 +0000 (16:34 +0000)]
Merge "Welcome to JavaFuzz as our latest A[a]rt tools team member!"