OSDN Git Service

android-x86/art.git
7 years agoRevert "Use implicit null checks inside try blocks."
Nicolas Geoffray [Mon, 12 Sep 2016 22:05:33 +0000 (22:05 +0000)]
Revert "Use implicit null checks inside try blocks."

Fails gcstress tests.

This reverts commit 7aa7560683626c7893011271c241b3265ded1dc3.

Change-Id: I4f5c89048b9ffddbafa02f3001e329ff87058ca2

7 years agoUse implicit null checks inside try blocks.
Vladimir Marko [Wed, 7 Sep 2016 14:09:21 +0000 (15:09 +0100)]
Use implicit null checks inside try blocks.

Make implicit null check entrypoint save all registers, use
platform-specific approach to still pass the fault address.
Allow implicit null checks in try blocks.

On Nexus 9, AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -452KiB (-0.7%)
    - 64-bit boot.oat: -482KiB (-0.7%)
  on-device built single boot image:
    - 32-bit boot.oat: -444KiB (-0.7%)
    - 64-bit boot.oat: -488KiB (-0.7%)

Test: Run ART test suite on host and Nexus 9.
Test: Build aosp_mips64-eng.
Change-Id: I279f3ab57e2e2f338131c5cac45c51b673bdca19

7 years agoARM64: Use macros for increasing and decreasing frame size.
Vladimir Marko [Fri, 9 Sep 2016 10:56:05 +0000 (11:56 +0100)]
ARM64: Use macros for increasing and decreasing frame size.

And fix saving/restoring CFI around returns.

Test: m test-art-target on Nexus9.
Change-Id: Iad94ca694ac899adec158ae79a931316a0be46f1

7 years agoMerge "ARM64: Use macros for saving/restoring registers in assembly."
Treehugger Robot [Thu, 8 Sep 2016 13:06:38 +0000 (13:06 +0000)]
Merge "ARM64: Use macros for saving/restoring registers in assembly."

7 years agoARM64: Use macros for saving/restoring registers in assembly.
Vladimir Marko [Wed, 7 Sep 2016 17:05:55 +0000 (18:05 +0100)]
ARM64: Use macros for saving/restoring registers in assembly.

And for read barrier entrypoints, store LR conventionally
at the top of the frame instead of having a padding there.

Test: m test-art-target on Nexus 9.
Test: m test-art-target with CC on Nexus 9.
Change-Id: I48eaba3ee71c0629d2cc851fdd802590256a0739

7 years agoMerge "Fix some memory leaks found by valgrind."
David Sehr [Thu, 8 Sep 2016 00:39:03 +0000 (00:39 +0000)]
Merge "Fix some memory leaks found by valgrind."

7 years agoMerge changes I20396a1b,I794df17a
Treehugger Robot [Thu, 8 Sep 2016 00:35:10 +0000 (00:35 +0000)]
Merge changes I20396a1b,I794df17a

* changes:
  Support CUSTOM_TARGET_LINKER
  Support HOST_PREFER_32_BIT

7 years agoFix some memory leaks found by valgrind.
David Sehr [Wed, 7 Sep 2016 20:04:01 +0000 (13:04 -0700)]
Fix some memory leaks found by valgrind.

Bug: 29921113
Change-Id: If70d475a3317751d206658c5794a32d78bc33e47
Test: valgrind-test-art-host-gtest (with --trace-children=yes)

7 years agoMerge "ART: Generate path to entrypoints in VisitLoadString for arm"
Treehugger Robot [Wed, 7 Sep 2016 22:54:12 +0000 (22:54 +0000)]
Merge "ART: Generate path to entrypoints in VisitLoadString for arm"

7 years agoSupport CUSTOM_TARGET_LINKER
Colin Cross [Wed, 7 Sep 2016 21:12:50 +0000 (14:12 -0700)]
Support CUSTOM_TARGET_LINKER

Support overriding the dynamic linker setting in ART binaries when
CUSTOM_TARGET_LINKER is set.  Used for ART testing of new binaries on a
device flashed to an old platform.

Change-Id: I20396a1bedd37cdf884d0c5a68f93b9a3e7e10b2

7 years agoSupport HOST_PREFER_32_BIT
Colin Cross [Tue, 6 Sep 2016 17:24:28 +0000 (10:24 -0700)]
Support HOST_PREFER_32_BIT

HOST_PREFER_32_BIT has been removed from the build system, support it
directly in art.  When it is set, set the compile_multilib property of
all host art modules to "prefer32".

Change-Id: I794df17a805588392bd448983f279e4b8c8fe1c6

7 years agoART: Generate path to entrypoints in VisitLoadString for arm
Christina Wadsworth [Wed, 31 Aug 2016 00:19:14 +0000 (17:19 -0700)]
ART: Generate path to entrypoints in VisitLoadString for arm

ARM32 boot.oat with CC: 72534816 -> 71888864 (-0.9%)

Move code that branches to entrypoints from GenerateSlowPaths to
VisitLoadString. Since we're doing this every time, we shouldn't have it
at the end with all of the slow paths.

Test: N6P booting with CC, test-art-target32 on shamu
Change-Id: I9c3307629015c9f6460506519339d4f275abe5a9

7 years agoMerge "Avoid read barrier for image HLoadClass"
Mathieu Chartier [Wed, 7 Sep 2016 21:10:34 +0000 (21:10 +0000)]
Merge "Avoid read barrier for image HLoadClass"

7 years agoMerge "Prepare bisection search for runtest integration"
Aart Bik [Wed, 7 Sep 2016 18:14:06 +0000 (18:14 +0000)]
Merge "Prepare bisection search for runtest integration"

7 years agoMerge "Separate DexIr building from constructors."
David Sehr [Wed, 7 Sep 2016 17:43:28 +0000 (17:43 +0000)]
Merge "Separate DexIr building from constructors."

7 years agoAvoid read barrier for image HLoadClass
Mathieu Chartier [Sat, 3 Sep 2016 00:11:57 +0000 (17:11 -0700)]
Avoid read barrier for image HLoadClass

Concurrent copying baker:

X86_64 core-optimizing-pic.oat: 28583112 -> 27906824 (2.4% smaller)

Around 0.4% of 2.4% is from re-enabling kBootImageLinkTimeAddress,
kBootImageLinkTimePcRelative, and kBootImageAddress.

N6P boot.oat 32: 73042140 -> 71891956 (1.57% smaller)
N6P boot.oat 64: 83831608 -> 82531456 (1.55% smaller)

EAAC: 1252 -> 1245 (32 samples)

Bug: 29516974

Test: test-art-host CC baker, N6P booting

Change-Id: I9a196cf0157058836981c43c93872e9f0c4919aa

7 years agoMerge "LogMessageData: Fix assignment in constructor"
Greg Kaiser [Wed, 7 Sep 2016 15:00:51 +0000 (15:00 +0000)]
Merge "LogMessageData: Fix assignment in constructor"

7 years agoMerge "Add build rules for statically linked oatdump on host."
Roland Levillain [Wed, 7 Sep 2016 11:12:37 +0000 (11:12 +0000)]
Merge "Add build rules for statically linked oatdump on host."

7 years agoMerge "Revert "Convert more of art to Android.bp""
Colin Cross [Wed, 7 Sep 2016 07:27:40 +0000 (07:27 +0000)]
Merge "Revert "Convert more of art to Android.bp""

7 years agoRevert "Convert more of art to Android.bp"
Colin Cross [Wed, 7 Sep 2016 07:16:35 +0000 (00:16 -0700)]
Revert "Convert more of art to Android.bp"

This reverts commits 4a456275e25c536f525b6c020ca38c8ada8a05de and
198a957915eb75c5f837ea57d385aa6cfa69f76e.

Change-Id: Ibe49f611ae3ed7748bcfc9ac07f8d1f52d6bea3a

7 years agoMerge "Fix art tests"
Treehugger Robot [Wed, 7 Sep 2016 04:15:09 +0000 (04:15 +0000)]
Merge "Fix art tests"

7 years agoFix art tests
Colin Cross [Wed, 7 Sep 2016 02:32:39 +0000 (19:32 -0700)]
Fix art tests

dalvikvm needs to be compiled for 32-bit and 64-bit.

Change-Id: I184d7e4e3338c0858b0520f7eba7f9b256cfc02a

7 years agoMerge "Convert more of art to Android.bp"
Treehugger Robot [Wed, 7 Sep 2016 01:35:01 +0000 (01:35 +0000)]
Merge "Convert more of art to Android.bp"

7 years agoMerge "Add -g to art script --perf-report"
Treehugger Robot [Tue, 6 Sep 2016 23:12:04 +0000 (23:12 +0000)]
Merge "Add -g to art script --perf-report"

7 years agoMerge changes I31aaf3ae,I8ef4639f
Hiroshi Yamauchi [Tue, 6 Sep 2016 21:42:29 +0000 (21:42 +0000)]
Merge changes I31aaf3ae,I8ef4639f

* changes:
  Disable the from-space memory protection under host debug build.
  Revert "Disable the from-space memory protection under debug/gcstress."

7 years agoSeparate DexIr building from constructors.
David Sehr [Thu, 1 Sep 2016 20:03:50 +0000 (13:03 -0700)]
Separate DexIr building from constructors.

Move all the construction from DexFile out of the constructors of the
basic IR.

Bug: 29921113
Change-Id: I3f79c104ce7183ddde73f143c047061416009a54
Test: test-art-host-gtest

7 years agoMerge "ART: Dump more info on 137-cfi failure"
Treehugger Robot [Tue, 6 Sep 2016 19:43:09 +0000 (19:43 +0000)]
Merge "ART: Dump more info on 137-cfi failure"

7 years agoDisable the from-space memory protection under host debug build.
Hiroshi Yamauchi [Tue, 6 Sep 2016 19:24:52 +0000 (12:24 -0700)]
Disable the from-space memory protection under host debug build.

Temporarily for diagnosing the odd memory protection issue on the build
server.

Bug: 31172841
Test: test-art-host with SS
Change-Id: I31aaf3ae5b1d3bda901c6c739933b5a4751058c1

7 years agoMerge "Optimizing: Fix handling empty fill-array-data."
Treehugger Robot [Tue, 6 Sep 2016 19:24:44 +0000 (19:24 +0000)]
Merge "Optimizing: Fix handling empty fill-array-data."

7 years agoRevert "Disable the from-space memory protection under debug/gcstress."
Hiroshi Yamauchi [Tue, 6 Sep 2016 19:20:26 +0000 (12:20 -0700)]
Revert "Disable the from-space memory protection under debug/gcstress."

Bug: 31172841
This reverts commit 7a2d267b907000c56f401ab3c51f155cee9752a9.

Change-Id: I8ef4639f255118aba278f8051adf356271116507

7 years agoConvert more of art to Android.bp
Colin Cross [Tue, 30 Aug 2016 20:49:26 +0000 (13:49 -0700)]
Convert more of art to Android.bp

Change-Id: I1b10f140e17dd5e12a9d7f6a29d47cf61f5bf6ef

7 years agoMerge "Change deoptimize entrypoint to save everything."
Treehugger Robot [Tue, 6 Sep 2016 18:20:07 +0000 (18:20 +0000)]
Merge "Change deoptimize entrypoint to save everything."

7 years agoMerge "ARM: VIXL32: Support a newer version of VIXL."
Treehugger Robot [Tue, 6 Sep 2016 17:59:40 +0000 (17:59 +0000)]
Merge "ARM: VIXL32: Support a newer version of VIXL."

7 years agoART: Dump more info on 137-cfi failure
Andreas Gampe [Mon, 5 Sep 2016 19:30:49 +0000 (12:30 -0700)]
ART: Dump more info on 137-cfi failure

Print the maps of the secondary process. Try to induce in-process
dumping of the secondary.

Bug: 31208203
Change-Id: I16a80e8510b297d61a51fdee91ab1c2f2e5a47c8

7 years agoOptimizing: Fix handling empty fill-array-data.
Vladimir Marko [Tue, 6 Sep 2016 15:49:15 +0000 (16:49 +0100)]
Optimizing: Fix handling empty fill-array-data.

Test: m test-art-host-run-test-412-new-array
Bug: 31300081
Change-Id: Id0512fc95a96c37de2ceab481666688435fa30f6

7 years agoChange deoptimize entrypoint to save everything.
Vladimir Marko [Mon, 5 Sep 2016 09:44:04 +0000 (10:44 +0100)]
Change deoptimize entrypoint to save everything.

And implement FPU register retrieval from stack on x86.

On Nexus 9, AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -20KiB (-0.03%)
    - 64-bit boot.oat: -45KiB (-0.06%)
  on-device built single boot image:
    - 32-bit boot.oat: -24KiB (-0.04%)
    - 64-bit boot.oat: -36KiB (-0.05%)

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

7 years agoLogMessageData: Fix assignment in constructor
Greg Kaiser [Tue, 6 Sep 2016 04:39:51 +0000 (21:39 -0700)]
LogMessageData: Fix assignment in constructor

The previous code was assigning to the function argument, not
the member variable.  Since our member variable is 'const'
we use a helper function to acheive this.

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

7 years agoAdd build rules for statically linked oatdump on host.
Roland Levillain [Tue, 6 Sep 2016 10:09:41 +0000 (11:09 +0100)]
Add build rules for statically linked oatdump on host.

Also extend oatdump_test to exercise oatdump(d)s.

Test: ART_BUILD_HOST_STATIC=true m test-art-host-gtest-oatdump_test
Bug: 29530992
Change-Id: I6eb6c96f385832733d18d0400abd9974a6d8e45c

7 years agoMerge "MIPS32: Ensure preservation of RA in leaf methods if it's clobbered"
Treehugger Robot [Tue, 6 Sep 2016 09:07:05 +0000 (09:07 +0000)]
Merge "MIPS32: Ensure preservation of RA in leaf methods if it's clobbered"

7 years agoMerge "Fix typo in definition of `build-art-executable`."
Treehugger Robot [Mon, 5 Sep 2016 21:24:09 +0000 (21:24 +0000)]
Merge "Fix typo in definition of `build-art-executable`."

7 years agoMerge "Avoid excessive spill slots for slow paths."
Treehugger Robot [Mon, 5 Sep 2016 18:12:13 +0000 (18:12 +0000)]
Merge "Avoid excessive spill slots for slow paths."

7 years agoAvoid excessive spill slots for slow paths.
Vladimir Marko [Tue, 9 Aug 2016 10:04:26 +0000 (11:04 +0100)]
Avoid excessive spill slots for slow paths.

Reducing the frame size makes stack maps smaller as we need
fewer bits for stack masks and some dex register locations
may use short location kind rather than long. On Nexus 9,
AOSP ToT, the boot.oat size reduction is
  prebuilt multi-part boot image:
    - 32-bit boot.oat: -416KiB (-0.6%)
    - 64-bit boot.oat: -635KiB (-0.9%)
  prebuilt multi-part boot image with read barrier:
    - 32-bit boot.oat: -483KiB (-0.7%)
    - 64-bit boot.oat: -703KiB (-0.9%)
  on-device built single boot image:
    - 32-bit boot.oat: -380KiB (-0.6%)
    - 64-bit boot.oat: -632KiB (-0.9%)
  on-device built single boot image with read barrier:
    - 32-bit boot.oat: -448KiB (-0.6%)
    - 64-bit boot.oat: -692KiB (-0.9%)

The other benefit is that at runtime, threads may need fewer
pages for their stacks, reducing overall memory usage.

We defer the calculation of the maximum spill size from
the main register allocator (linear scan or graph coloring)
to the RegisterAllocationResolver and do it based on the
live registers at slow path safepoints. The old notion of
an artificial slow path safepoint interval is removed as
it is no longer needed.

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

7 years agoFix typo in definition of `build-art-executable`.
Roland Levillain [Mon, 5 Sep 2016 15:27:20 +0000 (16:27 +0100)]
Fix typo in definition of `build-art-executable`.

Uses of `LOCAL_MODULES` need two `$` signs within that Make
function definition, so the variable is properly evaluated,
as `build-art-executable` is expanded twice (because it is
used in calls to the `eval` function).

Test: ART_BUILD_HOST_STATIC=true mmma art
Change-Id: I669d493aa7470cb8cde28b2018c784937cd2d335

7 years agoARM: VIXL32: Support a newer version of VIXL.
Anton Kirilov [Fri, 2 Sep 2016 19:55:46 +0000 (20:55 +0100)]
ARM: VIXL32: Support a newer version of VIXL.

Change-Id: I410c1536637a3282640d06894632491fe5d3c72a

7 years agoMerge "Address a couple of TODOs and remove an unused header."
Orion Hodson [Mon, 5 Sep 2016 14:42:31 +0000 (14:42 +0000)]
Merge "Address a couple of TODOs and remove an unused header."

7 years agoMerge changes I3f825746,Ia4284ccd,I437ffd43
Nicolas Geoffray [Mon, 5 Sep 2016 12:54:42 +0000 (12:54 +0000)]
Merge changes I3f825746,Ia4284ccd,I437ffd43

* changes:
  Extend the InvokeRuntime() changes to mips64.
  Extend the InvokeRuntime() changes to mips.
  Extend the InvokeRuntime() changes to x86 and x86_64.

7 years agoAddress a couple of TODOs and remove an unused header.
Orion Hodson [Mon, 5 Sep 2016 12:43:11 +0000 (13:43 +0100)]
Address a couple of TODOs and remove an unused header.

Fixing overlooked comments in:
  https://android-review.googlesource.com/#/c/258402/

Test: test-art-target-gtest-dex_file_test

Change-Id: I5dc4ddb0cfaf1445a92620d8e2fa35cdb277df6a

7 years agoMerge "Clean up some includes."
Treehugger Robot [Mon, 5 Sep 2016 09:18:53 +0000 (09:18 +0000)]
Merge "Clean up some includes."

7 years agoMerge "Support for loading classes from DEX files stored in a ByteBuffer."
Orion Hodson [Mon, 5 Sep 2016 09:11:36 +0000 (09:11 +0000)]
Merge "Support for loading classes from DEX files stored in a ByteBuffer."

7 years agoMerge changes I5acba084,I08a3379d
Treehugger Robot [Sat, 3 Sep 2016 17:06:43 +0000 (17:06 +0000)]
Merge changes I5acba084,I08a3379d

* changes:
  ART: Suppress libbase failures in valgrind
  ART: Use a 50-deep call-stack in valgrind

7 years agoMerge "ART: Fixup JDWP tests script"
Nicolas Geoffray [Sat, 3 Sep 2016 13:56:59 +0000 (13:56 +0000)]
Merge "ART: Fixup JDWP tests script"

7 years agoART: Fixup JDWP tests script
Andreas Gampe [Thu, 31 Dec 2015 03:37:48 +0000 (19:37 -0800)]
ART: Fixup JDWP tests script

The tests have problems on the host because of boot images. Vogar
by default runs in 32-bit mode, but the art script, used for forked
debuggee processes, by default runs in 64-bit. The JDWP forks also
do not set a boot classpath. With that mismatch, when the tests
are run in 32-bit mode on a 64-bit enabled host, the forked processes
will die.

Check whether a --variant parameter was passed to the test (and if
not assume it's x32). If the parameter is x32, then adapt the
debuggee command to ensure the forked runtime also runs in 32-bit
mode and finds the image from the controller. Similarly handle
the x64 case.

Change-Id: Ic22477e33702e1a7c1ca94466bf02df4cb201723

7 years agoART: Suppress libbase failures in valgrind
Andreas Gampe [Sat, 3 Sep 2016 02:43:59 +0000 (19:43 -0700)]
ART: Suppress libbase failures in valgrind

Whitelist globals in libbase's logging code that are triggered
when loading libjavacore.

Note: this suppression is very broad and applies to all leaks
during core native-methods binding. It is intentionally so to
be robust to name changes.

Test: m valgrind-test-art-host
Test: m valgrind-test-art-target-gtest-exception_test (N9)
Bug: 31275764
Change-Id: I5acba084fe6cfc3b03e1f899ea546a57ad5cf11c

7 years agoART: Use a 50-deep call-stack in valgrind
Andreas Gampe [Sat, 3 Sep 2016 02:43:09 +0000 (19:43 -0700)]
ART: Use a 50-deep call-stack in valgrind

Necessary to diagnose issues. Required for deep suppressions.

Test: m valgrind-test-art-host
Change-Id: I08a3379d4763d66a2ae7db1f2f500c93b0a93e90

7 years agoPrepare bisection search for runtest integration
Wojciech Staszkiewicz [Thu, 1 Sep 2016 21:36:13 +0000 (14:36 -0700)]
Prepare bisection search for runtest integration

Prepares bisection_search.py for run-test integration.
Introduces a --raw-cmd switch which accepts a full dalvikvm
command.

Fixes few bugs.

Test: ./art/tools/bisection-search/bisection_test.py
manual testing

Change-Id: I0272d21fe1e73278837bce76ad3eef632993fbe2

7 years agoMerge "Use the fast path object size for RosAlloc asm stubs"
Mathieu Chartier [Fri, 2 Sep 2016 21:32:59 +0000 (21:32 +0000)]
Merge "Use the fast path object size for RosAlloc asm stubs"

7 years agoAdd -g to art script --perf-report
Mathieu Chartier [Fri, 2 Sep 2016 18:44:11 +0000 (11:44 -0700)]
Add -g to art script --perf-report

Gives a basic call stack, good for knowing what calls what.

Test: art --perf-report

Change-Id: Ifa44040491ed865bf839d62622494d951f2bcd62

7 years agoMerge "Remove duplicate entry."
Nicolas Geoffray [Fri, 2 Sep 2016 18:43:10 +0000 (18:43 +0000)]
Merge "Remove duplicate entry."

7 years agoRemove duplicate entry.
Nicolas Geoffray [Fri, 2 Sep 2016 18:42:22 +0000 (19:42 +0100)]
Remove duplicate entry.

Change-Id: Ic9f172a19adb83028e9d13c8349a732931aec7db

7 years agoUse the fast path object size for RosAlloc asm stubs
Mathieu Chartier [Thu, 1 Sep 2016 21:06:54 +0000 (14:06 -0700)]
Use the fast path object size for RosAlloc asm stubs

Also address comments. MemAllocTest perf on N5X speedup in the noise.

Bug: 9986565

Test: test-art-host -j32, N5X booting

Change-Id: Ic22ca92aab88b37fd66928949bf11264ee3476dc

7 years agoMerge "Blacklist flaky test."
Treehugger Robot [Fri, 2 Sep 2016 14:55:29 +0000 (14:55 +0000)]
Merge "Blacklist flaky test."

7 years agoMerge "verifier: Pass ClassDef as a reference"
Treehugger Robot [Fri, 2 Sep 2016 14:52:27 +0000 (14:52 +0000)]
Merge "verifier: Pass ClassDef as a reference"

7 years agoClean up some includes.
Vladimir Marko [Fri, 2 Sep 2016 11:38:38 +0000 (12:38 +0100)]
Clean up some includes.

Remove some unnecessary includes from header files, replace
others with forward references and add includes to source
files as needed. Reduce dependency on stack.h by pulling
StackReference<> out to its own file.

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

7 years agoMerge "Cache result of an expensive DCHECK"
Treehugger Robot [Fri, 2 Sep 2016 13:41:22 +0000 (13:41 +0000)]
Merge "Cache result of an expensive DCHECK"

7 years agoverifier: Pass ClassDef as a reference
David Brazdil [Fri, 2 Sep 2016 13:13:18 +0000 (14:13 +0100)]
verifier: Pass ClassDef as a reference

Tiny refactor. ClassDef should never be null, yet we pass it as
a pointer, check it is not null and dereference everywhere.

Change-Id: Id89a1f599f1289d3cc00846306a890e06e438f88

7 years agoCache result of an expensive DCHECK
David Brazdil [Fri, 2 Sep 2016 10:42:48 +0000 (11:42 +0100)]
Cache result of an expensive DCHECK

LiveInterval::AddBackEdgeUses tests whether linear order is well
formed on debug builds. This is expensive and can significantly hinder
compilation times when many back edge uses are added.

This patch moves the IsLinearOrderWellFormed test at the end of
linear order generation.

Bug: 31163119
Change-Id: Ic4fe66bee2055f4b2cb065d9451ad5f21ba00676

7 years agoMerge "Revert "Revert "Refactor writing type lookup tables into OAT"""
Treehugger Robot [Fri, 2 Sep 2016 11:32:29 +0000 (11:32 +0000)]
Merge "Revert "Revert "Refactor writing type lookup tables into OAT"""

7 years agoSupport for loading classes from DEX files stored in a ByteBuffer.
Orion Hodson [Wed, 17 Aug 2016 09:51:42 +0000 (10:51 +0100)]
Support for loading classes from DEX files stored in a ByteBuffer.

Bug: http://b/26878838
Test: test-art-target-gtest-dex_file_test

Change-Id: I68845c35784386bde6270102f0079d4f07bc4d03

7 years agoRevert "Revert "Refactor writing type lookup tables into OAT""
David Brazdil [Thu, 1 Sep 2016 16:38:47 +0000 (16:38 +0000)]
Revert "Revert "Refactor writing type lookup tables into OAT""

OatWriter used to write type lookup tables through an mmap of the
DEX section of the OAT file. This approach would not work once the
DEX section is moved into the VDEX file, hence it was rewritten to
write the data through OutputStream.

This reverts commit b92ba6296d4ef5b9a6674120ffaafde7d2511812.

Test: m test-art-host
Bug: 30937355
Change-Id: Id923f2c8a4f9ce2a3834b9886b4358e1b379b83d

7 years agoBlacklist flaky test.
Nicolas Geoffray [Fri, 2 Sep 2016 09:04:52 +0000 (10:04 +0100)]
Blacklist flaky test.

bug:31258002
Change-Id: Ida80028b0fb49208f4eb4d0ba929800b28574902

7 years agoMerge "Disable the from-space memory protection under debug/gcstress."
Treehugger Robot [Fri, 2 Sep 2016 03:09:44 +0000 (03:09 +0000)]
Merge "Disable the from-space memory protection under debug/gcstress."

7 years agoMerge "ART: Use thread annotation macros from base"
Treehugger Robot [Fri, 2 Sep 2016 02:05:00 +0000 (02:05 +0000)]
Merge "ART: Use thread annotation macros from base"

7 years agoMerge "Remove auto-generated executable list"
Colin Cross [Fri, 2 Sep 2016 00:16:33 +0000 (00:16 +0000)]
Merge "Remove auto-generated executable list"

7 years agoMIPS32: Ensure preservation of RA in leaf methods if it's clobbered
Alexey Frunze [Wed, 31 Aug 2016 04:40:46 +0000 (21:40 -0700)]
MIPS32: Ensure preservation of RA in leaf methods if it's clobbered

Test: booted MIPS32 in QEMU
Test: test-art-host-gtest
Test: test-art-target-gtest-codegen_test in QEMU
Test: test-art-target-run-test-optimizing on CI20

Change-Id: Ia3da5902d967cd7af313f03ebf414320b0063619

7 years agoMerge "ART: Clean up x86 asm in dex cache entrypoints"
Mathieu Chartier [Thu, 1 Sep 2016 23:06:09 +0000 (23:06 +0000)]
Merge "ART: Clean up x86 asm in dex cache entrypoints"

7 years agoMerge changes Id2bc87dc,I17c191ec
Colin Cross [Thu, 1 Sep 2016 22:29:52 +0000 (22:29 +0000)]
Merge changes Id2bc87dc,I17c191ec

* changes:
  Fix naming of libartd-simulator
  Fix debug flag ordering

7 years agoMerge "Make 115-native-bridge idempotent"
Treehugger Robot [Thu, 1 Sep 2016 22:12:27 +0000 (22:12 +0000)]
Merge "Make 115-native-bridge idempotent"

7 years agoRemove auto-generated executable list
Colin Cross [Tue, 30 Aug 2016 23:18:42 +0000 (16:18 -0700)]
Remove auto-generated executable list

Keep a list of the useful executables, and use the -host and -target
phony targets to depend on them for build-art-host and build-art-target.

Relanding I8ff4da32a03c219924be7990963e0c3ba90ef316 with fixes to build
the debug versions of executables, which are needed by the tests.

Change-Id: Id941cf5d1a638763cf4cf2bc0412b0782ae21694

7 years agoMerge "MIPS32: Additional bitCount optimizations."
Treehugger Robot [Thu, 1 Sep 2016 21:57:41 +0000 (21:57 +0000)]
Merge "MIPS32: Additional bitCount optimizations."

7 years agoDisable the from-space memory protection under debug/gcstress.
Hiroshi Yamauchi [Thu, 1 Sep 2016 21:27:25 +0000 (14:27 -0700)]
Disable the from-space memory protection under debug/gcstress.

Temporarily for diagnosing the odd memory protection issue on the build
server.

Bug: 31172841
Test: test-art-host with SS and with SS/gcstress.
Change-Id: I915fcdc451ee92b5487c1fcbf8186767830ef1ad

7 years agoMerge "Clean up art_quick_resolve_string for arm64"
Mathieu Chartier [Thu, 1 Sep 2016 16:42:39 +0000 (16:42 +0000)]
Merge "Clean up art_quick_resolve_string for arm64"

7 years agoMerge "Faster allocation fast path"
Mathieu Chartier [Thu, 1 Sep 2016 16:34:48 +0000 (16:34 +0000)]
Merge "Faster allocation fast path"

7 years agoMerge "Revert "Refactor writing type lookup tables into OAT""
David Brazdil [Thu, 1 Sep 2016 16:01:13 +0000 (16:01 +0000)]
Merge "Revert "Refactor writing type lookup tables into OAT""

7 years agoRevert "Refactor writing type lookup tables into OAT"
David Brazdil [Thu, 1 Sep 2016 16:00:30 +0000 (16:00 +0000)]
Revert "Refactor writing type lookup tables into OAT"

Gtest not happy.

This reverts commit 1a069a5baa78e55dfa95ad989dc137517000b7fd.

Change-Id: Iada7a93c1928f7f61462615f3128c6b50bb21859

7 years agoMerge "Refactor writing type lookup tables into OAT"
David Brazdil [Thu, 1 Sep 2016 15:38:40 +0000 (15:38 +0000)]
Merge "Refactor writing type lookup tables into OAT"

7 years agoMerge "Revert "Re-enable boot image string sharpening.""
Vladimir Marko [Thu, 1 Sep 2016 15:35:43 +0000 (15:35 +0000)]
Merge "Revert "Re-enable boot image string sharpening.""

7 years agoRevert "Re-enable boot image string sharpening."
Vladimir Marko [Thu, 1 Sep 2016 15:33:04 +0000 (15:33 +0000)]
Revert "Re-enable boot image string sharpening."

The boot image may not contain the target String.

Bug: 20323084
Bug: 31239436

This reverts commit 9ed010e43c729a801089307c55f20f6d4df8271c.

Change-Id: Id299619ff9866bacd5098f76836355878a478042

7 years agoRefactor writing type lookup tables into OAT
David Brazdil [Wed, 31 Aug 2016 16:15:12 +0000 (17:15 +0100)]
Refactor writing type lookup tables into OAT

OatWriter used to write type lookup tables through an mmap of the
DEX section of the OAT file. This approach would not work once the
DEX section is moved into the VDEX file, hence it was rewritten to
write the data through OutputStream.

Test: m test-art-host
Bug: 30937355
Change-Id: Id89a680e6e7cbdba47fa7e211a48b92d30a82b29

7 years agoMerge "[MIPS] Fix a mips64 mterp bug."
Vladimir Marko [Thu, 1 Sep 2016 12:40:03 +0000 (12:40 +0000)]
Merge "[MIPS] Fix a mips64 mterp bug."

7 years agoMerge "Constant fold Equal/NotEqual between null and non-null."
Vladimir Marko [Thu, 1 Sep 2016 10:17:20 +0000 (10:17 +0000)]
Merge "Constant fold Equal/NotEqual between null and non-null."

7 years agoMerge "Avoid decrementing iterator to std::set<>::begin() in RosAlloc."
Vladimir Marko [Thu, 1 Sep 2016 09:50:44 +0000 (09:50 +0000)]
Merge "Avoid decrementing iterator to std::set<>::begin() in RosAlloc."

7 years agoAvoid decrementing iterator to std::set<>::begin() in RosAlloc.
Vladimir Marko [Wed, 31 Aug 2016 17:56:04 +0000 (18:56 +0100)]
Avoid decrementing iterator to std::set<>::begin() in RosAlloc.

Avoid undefined behavior in the expression
    free_page_runs_.erase(it--);
when it == free_page_runs_.begin().

Also avoid the similar expression
    free_page_runs_.erase(it++)
even though it's always well-defined.

In practice, the undefined behavior has no observable
side effects with the std::set<> implementation we use.
Therefore a regression test is not feasible.

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

7 years agoMerge "Disable dexlayout_test on target."
Treehugger Robot [Thu, 1 Sep 2016 03:21:22 +0000 (03:21 +0000)]
Merge "Disable dexlayout_test on target."

7 years agoMerge "Revert "Remove auto-generated executable list""
Treehugger Robot [Thu, 1 Sep 2016 02:43:38 +0000 (02:43 +0000)]
Merge "Revert "Remove auto-generated executable list""

7 years agoFaster allocation fast path
Mathieu Chartier [Wed, 31 Aug 2016 16:38:40 +0000 (09:38 -0700)]
Faster allocation fast path

Added a new object size field to class, this field contains the
aligned object size if the object is not finalizable and is
initialized. If the object is finalizable or uninitialized the field
is set to some large value that forces the ASM allocators to go slow
path.

Only implemented for region/normal TLAB for now, will add the to
RosAlloc stubs soon.

CC N6P MemAllocTest: 1067 -> 1039 (25 samples)
CC N6P EAAC: 1281 -> 1260 (25 samples)

RAM overhead technically 0 since mirror::Class was not 8 byte aligned
previously. Since the allocators require 8 byte allignment, there
would have been 1 word of padding at the end of the class. If there
was actually 4 extra bytes per class, the system overhead would be
36000 * 4 = 120KB based on old N6P numbers for the number of loaded
classes after boot.

Bug: 9986565

Test: test-art-host CC baker, N6P phone boot and EAAC runs.

Change-Id: I119a87b8cc6c980bff980a0c62f42610dab5e531

7 years agoDisable dexlayout_test on target.
Jeff Hao [Thu, 1 Sep 2016 00:56:13 +0000 (17:56 -0700)]
Disable dexlayout_test on target.

Target doesn't have diff to compare output files.

Bug: 29921113
Test: mm test-art-target-gtest-dexlayout_test
Change-Id: I244c0c74214b780676283de1b309978667ff58e3

7 years agoRevert "Remove auto-generated executable list"
Colin Cross [Thu, 1 Sep 2016 01:09:57 +0000 (01:09 +0000)]
Revert "Remove auto-generated executable list"

This reverts commit 6cb44d986fc4a5b12c50f8ae8bafe4d58ae81a36.

Change-Id: Ic9b5413069585d8cda6746307c604ecba8515716

7 years agoClean up art_quick_resolve_string for arm64
Mathieu Chartier [Tue, 30 Aug 2016 16:42:28 +0000 (09:42 -0700)]
Clean up art_quick_resolve_string for arm64

Use ubfx instead of and, add missing cfi directives.

Test: test-art-target-run-test CC baker, N6P phone booting.

Change-Id: I6e0e958fa7d77a37f727a7170f6fe03eecbc7bcc

7 years agoART: Use thread annotation macros from base
Andreas Gampe [Wed, 31 Aug 2016 20:53:13 +0000 (13:53 -0700)]
ART: Use thread annotation macros from base

Use thread annotations from libbase. Only leave the two local
definitions.

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

7 years agoMerge "Remove auto-generated executable list"
Colin Cross [Wed, 31 Aug 2016 21:16:22 +0000 (21:16 +0000)]
Merge "Remove auto-generated executable list"