OSDN Git Service

android-x86/art.git
7 years agoAdjust spacing before NOLINT comments in ART.
Roland Levillain [Thu, 11 Aug 2016 22:53:33 +0000 (23:53 +0100)]
Adjust spacing before NOLINT comments in ART.

Note that neither clang-tidy nor cpplint.py complain about
these style "issues", precisely because of the NOLINT
comments.

Test: WITH_TIDY=1 WITH_TIDY_CHECKS='-*,misc-macro-parentheses' mmma art
Change-Id: Id692fd394ffbd4fe208cbbe4407b4d5e208462bb

7 years agoMerge "Initialize Heap's collector pointers to null."
Treehugger Robot [Fri, 12 Aug 2016 10:22:57 +0000 (10:22 +0000)]
Merge "Initialize Heap's collector pointers to null."

7 years agoMerge "Revert "Iterative move coalescing for gc regalloc""
Treehugger Robot [Fri, 12 Aug 2016 08:01:43 +0000 (08:01 +0000)]
Merge "Revert "Iterative move coalescing for gc regalloc""

7 years agoRevert "Iterative move coalescing for gc regalloc"
Andreas Gampe [Fri, 12 Aug 2016 06:33:15 +0000 (06:33 +0000)]
Revert "Iterative move coalescing for gc regalloc"

There are lifetime issues with allocators and coloring
iterations that got flagged by valgrind.

This reverts commit 465ed699e810868fe5bb39730e6d149a4734372d.

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

7 years agoMerge "Remove kRestrictCompilationFiltersToImage"
Treehugger Robot [Fri, 12 Aug 2016 06:28:56 +0000 (06:28 +0000)]
Merge "Remove kRestrictCompilationFiltersToImage"

7 years agoMerge "Enable compiled-methods= dex2oat switch"
Treehugger Robot [Fri, 12 Aug 2016 06:16:40 +0000 (06:16 +0000)]
Merge "Enable compiled-methods= dex2oat switch"

7 years agoMerge "Iterative move coalescing for gc regalloc"
Andreas Gampe [Fri, 12 Aug 2016 01:43:26 +0000 (01:43 +0000)]
Merge "Iterative move coalescing for gc regalloc"

7 years agoIterative move coalescing for gc regalloc
Matthew Gharrity [Fri, 22 Jul 2016 15:52:13 +0000 (08:52 -0700)]
Iterative move coalescing for gc regalloc

Implement iterative move coalescing for graph coloring
register allocation. Based on Andrew Appel's implementation
in "Modern Compiler Implementation in Java", modified to
support constraints such as pair intervals.

Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host

Change-Id: I8642297d3bd798a4fc4de4b356ac3304098471a5

7 years agoInitialize Heap's collector pointers to null.
Vladimir Marko [Thu, 11 Aug 2016 17:25:53 +0000 (18:25 +0100)]
Initialize Heap's collector pointers to null.

Test: Run ART test suite on host.
Bug: 30807718
Change-Id: I9b83b44df250b00af48dc1aa653d78aea84d0874

7 years agoMerge "x86/x86-64: Shorter fast-path for read barrier field load."
Treehugger Robot [Thu, 11 Aug 2016 18:41:55 +0000 (18:41 +0000)]
Merge "x86/x86-64: Shorter fast-path for read barrier field load."

7 years agoMerge "ARM64: Use libvixld when compiling for debug mode."
Treehugger Robot [Thu, 11 Aug 2016 18:37:50 +0000 (18:37 +0000)]
Merge "ARM64: Use libvixld when compiling for debug mode."

7 years agoMerge "Full enable new round implementation on x86/x86_64"
Aart Bik [Thu, 11 Aug 2016 18:24:10 +0000 (18:24 +0000)]
Merge "Full enable new round implementation on x86/x86_64"

7 years agoARM64: Use libvixld when compiling for debug mode.
Alexandre Rames [Thu, 11 Aug 2016 16:04:14 +0000 (17:04 +0100)]
ARM64: Use libvixld when compiling for debug mode.

VIXL debug mode checks are valuable to catch dangerous code that can
lead to bugs.

This patch includes a couple of fixes for issues spotted by VIXL in debug mode.

Change-Id: I388ae1ffd9256ad74d0b6ce06f79cc7927a5f28a

7 years agox86/x86-64: Shorter fast-path for read barrier field load.
Vladimir Marko [Thu, 11 Aug 2016 13:16:57 +0000 (14:16 +0100)]
x86/x86-64: Shorter fast-path for read barrier field load.

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

7 years agoMerge "ARM/ARM64: Improve assembler macros for kSaveEverything frame."
Vladimir Marko [Thu, 11 Aug 2016 09:01:22 +0000 (09:01 +0000)]
Merge "ARM/ARM64: Improve assembler macros for kSaveEverything frame."

7 years agoMerge "ART: Check for more low-space situations in zygote"
Treehugger Robot [Thu, 11 Aug 2016 05:38:00 +0000 (05:38 +0000)]
Merge "ART: Check for more low-space situations in zygote"

7 years agoART: Check for more low-space situations in zygote
Andreas Gampe [Wed, 10 Aug 2016 03:19:18 +0000 (20:19 -0700)]
ART: Check for more low-space situations in zygote

Even if a boot image exists and can be loaded, the rest of the
platform may not be able to boot. We previously only checked
after full image generation and missed this case.

Also prune the cache if there wasn't even space to put the boot
marker.

(cherry picked from commit f242f66cf7137ef681e44a494758976e11579260)

Bug: 30765660
Test: m test-art-host
Change-Id: Icd43746e681c62ce2e4e8745fb17bda65ca60372

7 years agoMerge "Fix pending exception failure for encoded statics"
Treehugger Robot [Thu, 11 Aug 2016 00:37:21 +0000 (00:37 +0000)]
Merge "Fix pending exception failure for encoded statics"

7 years agoFix pending exception failure for encoded statics
Mathieu Chartier [Wed, 10 Aug 2016 20:57:39 +0000 (13:57 -0700)]
Fix pending exception failure for encoded statics

ReadValueToField may allocate a string and cause OOME, we were
not checking this each loop iteration. Throwing an exception
with a pending exception causes an abort.

Bug: 30690988

Test: test-art-host

Change-Id: I2c9751bf0544cf115d9d8e914e58ebccc81bcbf4

7 years agoFull enable new round implementation on x86/x86_64
Aart Bik [Wed, 10 Aug 2016 21:05:54 +0000 (14:05 -0700)]
Full enable new round implementation on x86/x86_64

Rationale:
Running JIT on Fugu does not always provide a constant area.
In such cases, we need to construct FP constants through stack.
This only applies to x86.

Test: 580-checker-round

BUG=26327751

Change-Id: I7e2c80dafbafbe647cfe9ecb039920bb534c666a

7 years agoARM/ARM64: Improve assembler macros for kSaveEverything frame.
Vladimir Marko [Wed, 10 Aug 2016 11:30:05 +0000 (12:30 +0100)]
ARM/ARM64: Improve assembler macros for kSaveEverything frame.

On ARM, use vpush/vpop {d0-d15} instead of {s0-s31}.
On ARM64, use 16-byte aligned stp/ldp for FP registers.

Test: Run ART test suite on Nexus 9.
Bug: 30212852
Change-Id: I36c04d3f1f7e03661c501977c3c9ffa7d2942d2f

7 years agoMerge "Fix negative array size checking"
Treehugger Robot [Wed, 10 Aug 2016 19:06:01 +0000 (19:06 +0000)]
Merge "Fix negative array size checking"

7 years agoFix negative array size checking
Mathieu Chartier [Wed, 10 Aug 2016 17:08:58 +0000 (10:08 -0700)]
Fix negative array size checking

Mask out the alignment after the size check. Was broken in previous
CL.

Test: target test 412 --64 with CC + baker

Bug: 30162165
Change-Id: Ic4eb7229fb742490cd9193baf0faa2be6b454f38

7 years agoMerge "ART: Fix JIT profile saver"
Treehugger Robot [Wed, 10 Aug 2016 16:06:07 +0000 (16:06 +0000)]
Merge "ART: Fix JIT profile saver"

7 years agoART: Fix JIT profile saver
Serguei Katkov [Mon, 1 Aug 2016 10:47:04 +0000 (17:47 +0700)]
ART: Fix JIT profile saver

We miss the case when jit activity notification count exceeds
the threshold. Fix it.

Bug: 30583550
Test: manual test in master

Change-Id: Ib10a34d3c2f5d3cf674b1c4d7a3c1204784865d3
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
7 years agoMerge "Rename callee save enumerators."
Vladimir Marko [Wed, 10 Aug 2016 14:28:27 +0000 (14:28 +0000)]
Merge "Rename callee save enumerators."

7 years agoMerge "Instruction: Add new formats 45cc and 4rcc."
Narayan Kamath [Wed, 10 Aug 2016 14:15:28 +0000 (14:15 +0000)]
Merge "Instruction: Add new formats 45cc and 4rcc."

7 years agoMerge "ARM: Embed constants in add/sub-long."
Vladimir Marko [Wed, 10 Aug 2016 13:29:15 +0000 (13:29 +0000)]
Merge "ARM: Embed constants in add/sub-long."

7 years agoRename callee save enumerators.
Vladimir Marko [Wed, 3 Aug 2016 17:49:58 +0000 (18:49 +0100)]
Rename callee save enumerators.

And related image method enumerators, macros, etc.
Clean up some entrypoint assembly comments.

This is a follow-up to
    https://android-review.googlesource.com/252348

Test: Run ART test suite on host and Nexus 9.
Bug: 30212852
Change-Id: I2707342d4255c88c547655be83ed97a67e12ae9e

7 years agoInstruction: Add new formats 45cc and 4rcc.
Narayan Kamath [Wed, 3 Aug 2016 11:46:23 +0000 (12:46 +0100)]
Instruction: Add new formats 45cc and 4rcc.

These are new 4 byte formats with the following properties.

- The first three (16 bit) words of these instructions have the same
  format as 35c and 3rc respectively.
- The fourth 16 bit word encodes an additional constant index reference.

This change includes placeholder opcodes for invoke-polymorphic and
invoke-polymorphic/range which will be the first dex instructions that
use this new format. In addition to a method_idx that gives the invoked
method, these instructions also provide a proto_idx which gives the
(static) type signature of the call site.

The only reason these are included in this change is because we need
an instruction with a given format to write a unit_test using the Instruction
API.

bug: 30550796
test: make test-art-host

Change-Id: I02612ddee47169757175a8079d82f811f6545945

7 years agoMerge "Revert experimental lambda feature."
Narayan Kamath [Wed, 10 Aug 2016 10:20:49 +0000 (10:20 +0000)]
Merge "Revert experimental lambda feature."

7 years agoMerge "JDWP: fix method argument count"
Sebastien Hertz [Wed, 10 Aug 2016 05:18:48 +0000 (05:18 +0000)]
Merge "JDWP: fix method argument count"

7 years agoMerge "Add a graph coloring art test option"
Treehugger Robot [Wed, 10 Aug 2016 03:52:13 +0000 (03:52 +0000)]
Merge "Add a graph coloring art test option"

7 years agoMerge "ART: Extract JNI macro assembler for arm"
Treehugger Robot [Wed, 10 Aug 2016 00:20:25 +0000 (00:20 +0000)]
Merge "ART: Extract JNI macro assembler for arm"

7 years agoEnable compiled-methods= dex2oat switch
Wojciech Staszkiewicz [Tue, 9 Aug 2016 21:30:55 +0000 (14:30 -0700)]
Enable compiled-methods= dex2oat switch

Pass compiled_methods instead of nullptr from dex2oat to
compiler driver.

Test: Run dex2oat with compiled-methods and dump-passes
set. Look at the dump-passes output and verify that only
methods provided in compiled-methods are compiled.

Change-Id: Ic7249878f7bde5fdb18f9cc348b7ba82de486df8

7 years agoAdd a graph coloring art test option
Matthew Gharrity [Tue, 9 Aug 2016 01:03:46 +0000 (18:03 -0700)]
Add a graph coloring art test option

Test: ART_TEST_OPTIMIZING_GRAPH_COLOR=true m test-art-host

Change-Id: I1bd7c20cdd372ed227204c990484d123c67bdfa8

7 years agoART: Extract JNI macro assembler for arm
Andreas Gampe [Tue, 9 Aug 2016 00:32:34 +0000 (17:32 -0700)]
ART: Extract JNI macro assembler for arm

Extract the JNI assembler parts from the regular assembler.

Change-Id: Ice39ffeb854f8651e93443dd69f4c9e0e802975c
Test: m test-art-target (N6)

7 years agoMerge "ART: Extract JNI macro assembler for arm64"
Treehugger Robot [Tue, 9 Aug 2016 22:23:24 +0000 (22:23 +0000)]
Merge "ART: Extract JNI macro assembler for arm64"

7 years agoMerge "Card mark holding class instead of declaring class"
Mathieu Chartier [Tue, 9 Aug 2016 19:05:06 +0000 (19:05 +0000)]
Merge "Card mark holding class instead of declaring class"

7 years agoMerge "Revert "Revert "ARM64 asm for region space array allocation"""
Treehugger Robot [Tue, 9 Aug 2016 18:34:17 +0000 (18:34 +0000)]
Merge "Revert "Revert "ARM64 asm for region space array allocation"""

7 years agoCard mark holding class instead of declaring class
Mathieu Chartier [Fri, 5 Aug 2016 17:46:36 +0000 (10:46 -0700)]
Card mark holding class instead of declaring class

For profiling info, we need to mark the card of the holding class
instead of declaring class. This is required for GC correctness since
the GC relies on the card table to track cross space references.

Test: test-art-host ART_TEST_JIT=true

Bug: 30655270

Change-Id: Ia4690219ded0df38032b644440273e06bc303956

7 years agoRevert "Revert "ARM64 asm for region space array allocation""
Mathieu Chartier [Mon, 8 Aug 2016 16:41:04 +0000 (09:41 -0700)]
Revert "Revert "ARM64 asm for region space array allocation""

Also added missing large object check. No regression from the check
N6P CC EAAC time at 1313 for 10 samples vs 1314 before reverts.

Bug: 30162165
Bug: 12687968

Test: test-art-target with CC + heap poisoning

This reverts commit 6ae7f3a4541e70f04243a6fe469aa3bd51e16d79.

Change-Id: Ie28f652f619898d7d37eeebf3f31a88af8fac949

7 years agoMerge "Clean up VLOG(oat) in OatFileAssistant."
Treehugger Robot [Tue, 9 Aug 2016 16:17:30 +0000 (16:17 +0000)]
Merge "Clean up VLOG(oat) in OatFileAssistant."

7 years agoMerge "MIPS64: Properly preserve $gp in art_quick_test_suspend"
Vladimir Marko [Tue, 9 Aug 2016 16:10:22 +0000 (16:10 +0000)]
Merge "MIPS64: Properly preserve $gp in art_quick_test_suspend"

7 years agoJDWP: fix method argument count
Sebastien Hertz [Mon, 8 Aug 2016 08:20:28 +0000 (10:20 +0200)]
JDWP: fix method argument count

The arguments count must include 'this' for instance method.

Bug: 30673627
Test: make test-art-host
Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Change-Id: Ie582e3bb3e27a2572ce5d3c66990f02650eee61b

7 years agoMerge "Fix setting FdFile::ReadOnlyMode() flag"
Treehugger Robot [Tue, 9 Aug 2016 14:31:56 +0000 (14:31 +0000)]
Merge "Fix setting FdFile::ReadOnlyMode() flag"

7 years agoMIPS64: Properly preserve $gp in art_quick_test_suspend
Goran Jakovljevic [Tue, 9 Aug 2016 13:15:39 +0000 (15:15 +0200)]
MIPS64: Properly preserve $gp in art_quick_test_suspend

$gp register was restored in RESTORE_SAVE_EVERYTHING_CALLEE_SAVE_FRAME
with value from $t8, but $t8 has been clobbered in the meantime.

Calculation of $gp is done as a part of the macro
SETUP_SAVE_EVERYTHING_CALLEE_SAVE_FRAME. This allows us to use version
of .cpsetup where $gp is preserved on the stack, instead in another
register.

This fixes over 60 ART tests.

Additionally this suppresses assembler warnings for MIPS32 and MIPS64:
    Warning: used $at without ".set noat"

Test: mma test-art-target-run-test on QEMU

Change-Id: Ic92680c3cb2a4405353b3640c836e92c0231bd15

7 years agoFix setting FdFile::ReadOnlyMode() flag
David Brazdil [Tue, 9 Aug 2016 11:10:56 +0000 (12:10 +0100)]
Fix setting FdFile::ReadOnlyMode() flag

The Unix flag O_RDONLY is defined as zero and hence its presence
cannot be tested with '(flags & O_RDONLY) != 0'. This used to be
broken in FdFlag when setting its internal `read_only_mode_` flag.

Test: m test-art-host-gtest-fd_file_test
Change-Id: Ib48abfc908c7032f031450a1574130e06f6c3bab

7 years agoRevert experimental lambda feature.
Narayan Kamath [Fri, 5 Aug 2016 10:44:32 +0000 (11:44 +0100)]
Revert experimental lambda feature.

This is a revert of the following changes :

30c475a2046951a81769c2db0b2dad66cd71e189.
lambda: Minor capture-variable/liberate-variable clean-up after post-merge reviews.

6918bf13eb855b3aa8ccdddda2d27ae8c60cec56.
lambda: Experimental support for capture-variable and liberate-variable

fc1ccd740b7c8e96dfac675cfc580122cd1b40a6.
lambda: Infrastructure to support capture/liberate-variable dex opcodes

e2facc5b18cd756a8b5500fb3d90da69c9ee0fb7.
runtime: Add lambda box/unbox object equality

2ee54e249ad21c74f29a161e248bebe7d22fddf1.
runtime: Partially implement box-lambda and unbox-lambda experimental opcodes

158f35c98e2ec0d40d2c032b8cdce5fb60944a7f.
interpreter: Add experimental lambda opcodes for invoke/create-lambda

a3bb72036f5454e410467f7151dc89f725ae1151.
Added format 25x to dexdump(2).

Plus surrounding cleanups.

Test: make test-art
Change-Id: Ic6f999ad17385ef933f763641049cf721510b202

7 years agoMerge "Use Thread.dispatchUncaughtException() rather than duplicating logic."
Tobias Thierer [Tue, 9 Aug 2016 08:55:34 +0000 (08:55 +0000)]
Merge "Use Thread.dispatchUncaughtException() rather than duplicating logic."

7 years agoART: Extract JNI macro assembler for arm64
Andreas Gampe [Mon, 8 Aug 2016 23:06:34 +0000 (16:06 -0700)]
ART: Extract JNI macro assembler for arm64

Extract the JNI assembler parts from the regular assembler.

Change-Id: I0b0ad32e18f585b75e9da0237afe082c25a1d291
Test: m test-art-target (N9)

7 years agoClean up VLOG(oat) in OatFileAssistant.
Richard Uhler [Fri, 5 Aug 2016 23:32:55 +0000 (16:32 -0700)]
Clean up VLOG(oat) in OatFileAssistant.

Refactor GetOatDexFile to have an error message out parameter.

Change-Id: I6b933f1fcfc9726c051a9d9678d92587cc02501e
Test: OatFileAssistantTest with and without -verbose:oat logging turned on.
Test: m test-art-host

7 years agoRemove kRestrictCompilationFiltersToImage
Wojciech Staszkiewicz [Fri, 5 Aug 2016 21:34:29 +0000 (14:34 -0700)]
Remove kRestrictCompilationFiltersToImage

Removed compiler driver kRestrictCompilationFiltersToImage flag,
impact is in the noise.

Change-Id: I50be7a201f677fa0cb6db38d9b5f039754e1f98c

7 years agoMerge "Fix missing spaces in checker tests"
Treehugger Robot [Mon, 8 Aug 2016 22:54:28 +0000 (22:54 +0000)]
Merge "Fix missing spaces in checker tests"

7 years agoFix missing spaces in checker tests
Wojciech Staszkiewicz [Mon, 8 Aug 2016 21:35:30 +0000 (14:35 -0700)]
Fix missing spaces in checker tests

This fixes missing spaces in few checker tests.

Change-Id: Id2e7ee4da0077dfd6676526cbd203a98e2bfd7ee

7 years agoMerge "ART: Improve addr2line"
Treehugger Robot [Mon, 8 Aug 2016 21:35:04 +0000 (21:35 +0000)]
Merge "ART: Improve addr2line"

7 years agoMerge "ART: Extract JNI macro assembler for x86"
Treehugger Robot [Mon, 8 Aug 2016 19:39:51 +0000 (19:39 +0000)]
Merge "ART: Extract JNI macro assembler for x86"

7 years agoMerge "ART: Extract JNI macro assembler for x86-64"
Treehugger Robot [Mon, 8 Aug 2016 19:38:53 +0000 (19:38 +0000)]
Merge "ART: Extract JNI macro assembler for x86-64"

7 years agoMerge "Implement running user defined list of passes"
Treehugger Robot [Mon, 8 Aug 2016 19:23:30 +0000 (19:23 +0000)]
Merge "Implement running user defined list of passes"

7 years agoART: Extract JNI macro assembler for x86-64
Andreas Gampe [Fri, 5 Aug 2016 16:01:50 +0000 (09:01 -0700)]
ART: Extract JNI macro assembler for x86-64

Extract the JNI assembler parts from the regular assembler.

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

7 years agoART: Extract JNI macro assembler for x86
Andreas Gampe [Sat, 6 Aug 2016 03:34:39 +0000 (20:34 -0700)]
ART: Extract JNI macro assembler for x86

Extract the JNI assembler parts from the regular assembler.

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

7 years agoImplement running user defined list of passes
Wojciech Staszkiewicz [Tue, 2 Aug 2016 00:48:59 +0000 (17:48 -0700)]
Implement running user defined list of passes

This change introduces new dex2oat switch --run-passes=. This switch
accepts path to a text file with names of passes to run.
Compiler will run optimization passes specified in the file rather
then the default ones.

There is no verification implemented on the compiler side. It is user's
responsibility to provide a list of passes that leads to successful
generation of correct code. Care should be taken to prepare a list
that satisfies all dependencies between optimizations.

We only take control of the optional optimizations. Codegen (builder),
and all passes required for register allocation will run unaffected
by this mechanism.

Change-Id: Ic3694e53515fefcc5ce6f28d9371776b5afcbb4f

7 years agoMerge "ARM/ARM64: Improve Mterp */lit8 assembly."
Vladimir Marko [Mon, 8 Aug 2016 18:17:16 +0000 (18:17 +0000)]
Merge "ARM/ARM64: Improve Mterp */lit8 assembly."

7 years agoMerge "ahat: Target Java 1.7."
Treehugger Robot [Mon, 8 Aug 2016 16:17:11 +0000 (16:17 +0000)]
Merge "ahat: Target Java 1.7."

7 years agoMerge "Revert "ARM64 asm for region space array allocation""
Treehugger Robot [Mon, 8 Aug 2016 15:31:00 +0000 (15:31 +0000)]
Merge "Revert "ARM64 asm for region space array allocation""

7 years agoRevert "ARM64 asm for region space array allocation"
Roland Levillain [Mon, 8 Aug 2016 14:41:32 +0000 (14:41 +0000)]
Revert "ARM64 asm for region space array allocation"

This change breaks many tests on the ARM64 concurrent
collector configuration.

Bug: 30162165
Bug: 12687968

This reverts commit f686c3feabe3519bedd1f3001e5dd598f46946ef.

Change-Id: I5d7ef5fa2ffb6a8d9a4d3adbcc14854efa257313

7 years agoMerge "Support Mockito in art buildbot tests"
Tobias Thierer [Mon, 8 Aug 2016 14:32:40 +0000 (14:32 +0000)]
Merge "Support Mockito in art buildbot tests"

7 years agoSupport Mockito in art buildbot tests
Tobias Thierer [Wed, 3 Aug 2016 15:13:04 +0000 (16:13 +0100)]
Support Mockito in art buildbot tests

Test: art/tools/buildbot-build.sh --host -j60 && \
art/tools/run-libcore-tests.sh --mode=host --variant=X32

Change-Id: Ifa32927251fa944df7bf9704f8164083aeb557a1

7 years agoMerge "Remove OldSystemTest#test_load from known failures."
Przemyslaw Szczepaniak [Mon, 8 Aug 2016 12:23:26 +0000 (12:23 +0000)]
Merge "Remove OldSystemTest#test_load from known failures."

7 years agoARM/ARM64: Improve Mterp */lit8 assembly.
Vladimir Marko [Mon, 8 Aug 2016 11:08:06 +0000 (12:08 +0100)]
ARM/ARM64: Improve Mterp */lit8 assembly.

Embed shifts in operations when possible. Use UBFX for shift
distance extraction - for ARM this saves an instruction, for
ARM64 this just improves readability as the reader doesn't
need to know that the higher bits are unused by shifts.

Test: Run ART test suite on Nexus 9.
Change-Id: I5666f3eaded618d3f6cb754c4a431fd9548e746d

7 years agoRemove OldSystemTest#test_load from known failures.
Przemyslaw Szczepaniak [Mon, 8 Aug 2016 10:20:07 +0000 (11:20 +0100)]
Remove OldSystemTest#test_load from known failures.

Test: libcore.java.lang.OldSystemTest
Bug: 26326992
Change-Id: Ic77dab37c05044790278407867339a198e8be9a8

7 years agoMerge "Enable IntermediateAddress for primitive arrays with read barriers."
Roland Levillain [Mon, 8 Aug 2016 10:16:43 +0000 (10:16 +0000)]
Merge "Enable IntermediateAddress for primitive arrays with read barriers."

7 years agoEnable IntermediateAddress for primitive arrays with read barriers.
Roland Levillain [Mon, 8 Aug 2016 09:18:37 +0000 (10:18 +0100)]
Enable IntermediateAddress for primitive arrays with read barriers.

Test: ART host and target (ARM, ARM64) tests.
Bug: 26601270
Bug: 12687968
Change-Id: I6736ba7b1809bece1bf3cd82c69e4f42a0d3c4a7

7 years agoMerge "ART: Factor out native stack dumping"
Treehugger Robot [Sat, 6 Aug 2016 02:56:01 +0000 (02:56 +0000)]
Merge "ART: Factor out native stack dumping"

7 years agoMerge "Add a register allocation strategy compiler option"
Treehugger Robot [Sat, 6 Aug 2016 02:41:24 +0000 (02:41 +0000)]
Merge "Add a register allocation strategy compiler option"

7 years agoMerge "ART: Extract macro assembler"
Treehugger Robot [Sat, 6 Aug 2016 01:49:59 +0000 (01:49 +0000)]
Merge "ART: Extract macro assembler"

7 years agoMerge "Test all register allocators in regalloc gtest"
Treehugger Robot [Sat, 6 Aug 2016 01:41:44 +0000 (01:41 +0000)]
Merge "Test all register allocators in regalloc gtest"

7 years agoAdd a register allocation strategy compiler option
Matthew Gharrity [Wed, 3 Aug 2016 23:57:37 +0000 (16:57 -0700)]
Add a register allocation strategy compiler option

Test: manually, on device.

Change-Id: If007a1657dd5769ddef03691e0a19dbbe6ba1a29

7 years agoART: Extract macro assembler
Andreas Gampe [Tue, 2 Aug 2016 05:07:04 +0000 (22:07 -0700)]
ART: Extract macro assembler

Extract macro assembler functionality used by the JNI compiler from
the assembler interface. Templatize the new interface so that
type safety ensures correct usage.

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

7 years agoahat: Target Java 1.7.
Richard Uhler [Fri, 5 Aug 2016 23:26:57 +0000 (16:26 -0700)]
ahat: Target Java 1.7.

So that users can run ahat with Java 7 without getting unsupported
major/minor version errors.

Change-Id: I76faab19bc1b14c76d5fd6b3ba19fcb07855dfd9
Test: m ahat-test
Test: /usr/local/buildtools/java/jdk7/bin/java -jar ahat.jar
Test: /usr/local/buildtools/java/jdk8/bin/java -jar ahat.jar
Bug: 28303627

7 years agoMerge "Implement a graph coloring register allocator"
Treehugger Robot [Fri, 5 Aug 2016 21:31:10 +0000 (21:31 +0000)]
Merge "Implement a graph coloring register allocator"

7 years agoTest all register allocators in regalloc gtest
Matthew Gharrity [Fri, 5 Aug 2016 16:34:52 +0000 (09:34 -0700)]
Test all register allocators in regalloc gtest

Previously, the gtest only exercised the default register allocator.
Note that the line count is high due mostly to whitespace changes.

Test: m test-art-host-gtest-register_allocator_test

Change-Id: I783edf98ae11d605d4f69834866c387abb71d34f

7 years agoImplement a graph coloring register allocator
Matthew Gharrity [Wed, 22 Jun 2016 17:27:55 +0000 (10:27 -0700)]
Implement a graph coloring register allocator

Test: m test-art-host

Change-Id: I8c0d77f339ab02b33588a54b96ecce5c8322cfce

7 years agoMerge "ARM64 asm for region space array allocation"
Mathieu Chartier [Fri, 5 Aug 2016 19:57:26 +0000 (19:57 +0000)]
Merge "ARM64 asm for region space array allocation"

7 years agoARM: Embed constants in add/sub-long.
Vladimir Marko [Fri, 5 Aug 2016 13:37:27 +0000 (14:37 +0100)]
ARM: Embed constants in add/sub-long.

Test: 538-checker-embed-constants
Test: Run ART test suite on Nexus 5.
Change-Id: Ib9639748c74d5c56dc354a6830987b613b922654

7 years agoARM64 asm for region space array allocation
Mathieu Chartier [Thu, 4 Aug 2016 18:08:26 +0000 (11:08 -0700)]
ARM64 asm for region space array allocation

Wrote region space tlab array and array resolved allocators in
assembly code. The speedup is a combined increase from checking the
mark bit and having an assembly fast path.

Added resolved, initialized entrypoints for object region TLAB
allocator.

N6P (960000 mhz) EEAC benchmark (average of 50 samples):
CC 1442.309524 -> 1314 (10% improvement)
CMS: 1382.32

Read barrier slow paths reaching C++ code go from 5M to 2.5M.

Bug: 30162165
Bug: 12687968

Test: With CC: N6P boot, run EAAC, test-art-target

Change-Id: I51515b11ef3f795f57eb72fe0f5759618fef5084

7 years agoMerge "ART: Fix type parameter in tests"
Treehugger Robot [Fri, 5 Aug 2016 16:27:46 +0000 (16:27 +0000)]
Merge "ART: Fix type parameter in tests"

7 years agoART: Improve addr2line
Andreas Gampe [Wed, 3 Aug 2016 00:20:03 +0000 (17:20 -0700)]
ART: Improve addr2line

Change addr2line handling: use the tool in "server" mode of
operation, keeping a connection open for the same file. This
reduces the time of a dump of sleeping 001-HelloWorld from fifteen
to ten seconds.

Bug: 30351473
Test: m test-art-host
Test: manual host testing with a test that times out
Change-Id: Idbe424f85c566f5bb39d12644ce104fff54a2146

7 years agoART: Factor out native stack dumping
Andreas Gampe [Wed, 3 Aug 2016 00:20:03 +0000 (17:20 -0700)]
ART: Factor out native stack dumping

Move DumpNativeStack and DumpKernelStack into a new file to keep
concerns separated. Clean up the file.

In preparation for modifications to how we use addr2line.

Bug: 30351473
Test: m test-art-host
Test: manual host testing with a test that times out
Change-Id: I02d5645952fe94fd8e73bcf0522721547f6cef66

7 years agoMerge "Temporary disable new round implementation on x86/x86_64"
Treehugger Robot [Thu, 4 Aug 2016 22:20:33 +0000 (22:20 +0000)]
Merge "Temporary disable new round implementation on x86/x86_64"

7 years agoMerge "Add support for CallKind::kCallOnMainAndSlowPath"
Treehugger Robot [Thu, 4 Aug 2016 22:05:54 +0000 (22:05 +0000)]
Merge "Add support for CallKind::kCallOnMainAndSlowPath"

7 years agoTemporary disable new round implementation on x86/x86_64
Aart Bik [Thu, 4 Aug 2016 21:28:21 +0000 (14:28 -0700)]
Temporary disable new round implementation on x86/x86_64

Rationale:
FUGU is not happy

Test: 580-checker-round

BUG=26327751

Change-Id: If0ddea47a88e14b86d37080b8a18a6f8defcc8e6

7 years agoMerge "ART: Fix Mac-specific things in x86-64 assembly"
Treehugger Robot [Thu, 4 Aug 2016 20:34:57 +0000 (20:34 +0000)]
Merge "ART: Fix Mac-specific things in x86-64 assembly"

7 years agoMerge "Implement single-/double-precision round intrinsic in x86_64"
Treehugger Robot [Thu, 4 Aug 2016 20:32:52 +0000 (20:32 +0000)]
Merge "Implement single-/double-precision round intrinsic in x86_64"

7 years agoMerge "Clean up use of art::Exec versus execv."
Treehugger Robot [Thu, 4 Aug 2016 20:05:17 +0000 (20:05 +0000)]
Merge "Clean up use of art::Exec versus execv."

7 years agoImplement single-/double-precision round intrinsic in x86_64
Aart Bik [Tue, 2 Aug 2016 22:40:56 +0000 (15:40 -0700)]
Implement single-/double-precision round intrinsic in x86_64

Rationale:
X86_64 does not provide a direct instruction for the
required rounding and NaN and large positive numbers
must be dealt with too. This CL generates code that
correctly implements SP and DP round.

Test: 580-checker-round

BUG=26327751

Change-Id: Ia7518e2c30afafba4e037e2d0c21e0ce926f0425

7 years agoART: Fix Mac-specific things in x86-64 assembly
Andreas Gampe [Thu, 4 Aug 2016 18:16:52 +0000 (11:16 -0700)]
ART: Fix Mac-specific things in x86-64 assembly

We incorrectly used double-underscore on x86-64 as VAR (used by
trampoline macros) introduced an additional underscore. Add CALLVAR
just as on x86.

Bug: 30212852
Change-Id: I2a95dd736453160769ea1a8b24c66f1738049ccb
Test: m test-art-host (Linux)
Test: builds on Mac

7 years agoClean up use of art::Exec versus execv.
David Sehr [Thu, 4 Aug 2016 16:41:55 +0000 (09:41 -0700)]
Clean up use of art::Exec versus execv.

Bug: b/30143290
Change-Id: I41dcaad39beea857bb606d39c1f15ba1da963e46
Test: test-art-host-gtest-oatdump_test

7 years agoMerge "Implement single-precision round intrinsic in x86"
Aart Bik [Thu, 4 Aug 2016 17:53:49 +0000 (17:53 +0000)]
Merge "Implement single-precision round intrinsic in x86"

7 years agoImplement single-precision round intrinsic in x86
Aart Bik [Mon, 1 Aug 2016 23:52:27 +0000 (16:52 -0700)]
Implement single-precision round intrinsic in x86

Rationale:
X86 does not provide a direct instruction for the
required rounding and NaN and large positive numbers
must be dealt with too. This CL generates code that
correctly implements SP round in a reasonably
efficient manner (I hope....)

Test: 580-checker-round

BUG=26327751

Change-Id: Ic5f4d9cff9c27c855a8ad577c51ed3ed37fb60cd