OSDN Git Service

android-x86/art.git
7 years agoFix dexlayout manual walking of 0 length catch handler.
Jeff Hao [Thu, 2 Mar 2017 18:59:43 +0000 (10:59 -0800)]
Fix dexlayout manual walking of 0 length catch handler.

This fails for 0 length handlers that are unreferenced by any try
blocks. Unreferenced handlers are handled differently and walked
manually, and there was an error in the 0 size case, when there is only
a single catch all handler.

Bug: 35874292
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: Ie061b4fd0e7e8be7e3e382b11d2606f5ffc0817a

7 years agoMerge "New utilities for induction variables."
Aart Bik [Thu, 2 Mar 2017 17:07:01 +0000 (17:07 +0000)]
Merge "New utilities for induction variables."

7 years agoMerge "Don't include patch information when generating images."
Richard Uhler [Thu, 2 Mar 2017 09:18:16 +0000 (09:18 +0000)]
Merge "Don't include patch information when generating images."

7 years agoMerge "Add regression test for vdex + layout combination"
Mathieu Chartier [Thu, 2 Mar 2017 01:16:16 +0000 (01:16 +0000)]
Merge "Add regression test for vdex + layout combination"

7 years agoAdd regression test for vdex + layout combination
Mathieu Chartier [Wed, 1 Mar 2017 23:20:30 +0000 (15:20 -0800)]
Add regression test for vdex + layout combination

Test compiling with vdex + layout.

Test failure example:
dex2oatd F 03-01 15:19:22 68522 68522 oat_writer.cc:2269] Check failed: oat_dex_file->source_.IsRawFile()

Bug: 35761072

Test: test-art-host-gtest-dex2oat_test

Change-Id: Ieefda4b2992cfc4eaf77c7c61062e825e3c5456f

7 years agoMerge "Prevent dexlayout from moving code items if preceded by class data."
Treehugger Robot [Wed, 1 Mar 2017 22:04:53 +0000 (22:04 +0000)]
Merge "Prevent dexlayout from moving code items if preceded by class data."

7 years agoMerge "Handle RawData case for DexLayout"
Treehugger Robot [Wed, 1 Mar 2017 21:04:00 +0000 (21:04 +0000)]
Merge "Handle RawData case for DexLayout"

7 years agoPrevent dexlayout from moving code items if preceded by class data.
Jeff Hao [Wed, 1 Mar 2017 20:18:19 +0000 (12:18 -0800)]
Prevent dexlayout from moving code items if preceded by class data.

Class data has uleb encoded offsets to the code item, and moving code
items will change the size of the class data, which would in turn affect
the code item offsets if they precede the code items.

For now, make it so that dexlayout does not move the code items at all
in this case. A better fix would be to swap the order of the sections in
dexlayout, but that can be done in a future CL.

Unit test to follow.

Bug: 35855748
Test: mm test-art-host
Change-Id: Ica6da1e5e951cf0003fc9793f13ad10b74004eb9

7 years agoHandle RawData case for DexLayout
Mathieu Chartier [Wed, 1 Mar 2017 04:17:30 +0000 (20:17 -0800)]
Handle RawData case for DexLayout

For vdex, the RawData dex file source is used. This was not
compatible with the existing LayoutAndWriteDexFile code. Added
handling to support RawData sources.

Without the handing, it was incorrectly using GetRawFile and casting
the dex file header to a File* causing a bogus fd number.

Test: adb shell cmd package compile -a --reset
Test: adb shell cmd package compile -a -m speed-profile
Test: test-art-host

Bug: 35761072
Change-Id: I74bdd17295479058e9245d1defb132df40fff474

7 years agoNew utilities for induction variables.
Aart Bik [Tue, 28 Feb 2017 22:41:55 +0000 (14:41 -0800)]
New utilities for induction variables.

Rationale:
Break-out CL of ART Vectorizer: 2 OF many.
The purpose is making the original CL smaller
and easier to review.

Bug: 34083438
Test: test-art-host
Change-Id: I46d297eba504af3850a5998ee279ea9f7b38bed8

7 years agoMerge "MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code"
Vladimir Marko [Wed, 1 Mar 2017 17:38:28 +0000 (17:38 +0000)]
Merge "MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code"

7 years agoMerge "ART: Add correct field index to reference visiting"
Treehugger Robot [Wed, 1 Mar 2017 16:52:09 +0000 (16:52 +0000)]
Merge "ART: Add correct field index to reference visiting"

7 years agoMerge "MIPS: Implement heap poisoning in ART's Optimizing compiler."
Roland Levillain [Wed, 1 Mar 2017 13:16:48 +0000 (13:16 +0000)]
Merge "MIPS: Implement heap poisoning in ART's Optimizing compiler."

7 years agoMerge "Revert "Revert "Intrinsify Integer.valueOf."""
Nicolas Geoffray [Wed, 1 Mar 2017 13:13:45 +0000 (13:13 +0000)]
Merge "Revert "Revert "Intrinsify Integer.valueOf."""

7 years agoMerge "Update run-tests script/dependencies to use -testdex jars."
Nicolas Geoffray [Wed, 1 Mar 2017 12:31:01 +0000 (12:31 +0000)]
Merge "Update run-tests script/dependencies to use -testdex jars."

7 years agoUpdate run-tests script/dependencies to use -testdex jars.
Nicolas Geoffray [Wed, 1 Mar 2017 10:03:08 +0000 (10:03 +0000)]
Update run-tests script/dependencies to use -testdex jars.

run-tests run with --no-image need the dex files in the
bootclasspath to be available. The -testdex jars are guaranteed
unstripped, so use them instead.

This was always broken, but vmarko@ just added a test that
forces --no-image.

bug:24535627
Test: test-art-target

Change-Id: I391573cffd0749d814fd81517e99dfc8f0fd59d5

7 years agoRevert "Revert "Intrinsify Integer.valueOf.""
Nicolas Geoffray [Wed, 1 Mar 2017 11:01:41 +0000 (11:01 +0000)]
Revert "Revert "Intrinsify Integer.valueOf.""

Fix heap poisoning.
LOG INFO instead of ERROR to avoid run-test failures with --no-image.

bug:30933338
Test: ART_HEAP_POISONING=true test-art-host test-art-target

This reverts commit db7b44ac3ea80a722aaed12e913ebc1661a57998.

Change-Id: I0b7d4f1eb11c62c9a3df8e0de0b1a5d8af760181

7 years agoMerge "Blacklist libcore tests relying on libjavacoretests."
Treehugger Robot [Wed, 1 Mar 2017 02:20:11 +0000 (02:20 +0000)]
Merge "Blacklist libcore tests relying on libjavacoretests."

7 years agoMerge "Fix mutex issue"
Treehugger Robot [Wed, 1 Mar 2017 00:17:46 +0000 (00:17 +0000)]
Merge "Fix mutex issue"

7 years agoART: Add correct field index to reference visiting
Andreas Gampe [Tue, 28 Feb 2017 23:47:44 +0000 (15:47 -0800)]
ART: Add correct field index to reference visiting

Use the created infrastructure to report references with the right
field indices.

Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I4647ea1bfe83dbce80c2fcb13ed1658527921f14

7 years agoMerge "ART: Add primitive field reporting"
Treehugger Robot [Tue, 28 Feb 2017 23:49:32 +0000 (23:49 +0000)]
Merge "ART: Add primitive field reporting"

7 years agoMerge "Disable test 152 for gcstress"
Treehugger Robot [Tue, 28 Feb 2017 23:31:57 +0000 (23:31 +0000)]
Merge "Disable test 152 for gcstress"

7 years agoBlacklist libcore tests relying on libjavacoretests.
Nicolas Geoffray [Tue, 28 Feb 2017 23:12:49 +0000 (23:12 +0000)]
Blacklist libcore tests relying on libjavacoretests.

The new linker behavior breaks them.

bug:35417197
Change-Id: I914d385e386397fedf9b106797b3c06a898879f7

7 years agoFix mutex issue
Alex Light [Tue, 28 Feb 2017 20:45:36 +0000 (12:45 -0800)]
Fix mutex issue

We were having some issues with mutex locking order related to
upgrading local to global references when recording non-debuggable
classes. We refactored this code so there is no longer this issue.

Bug: 35838746
Test: Build and boot a marlin with libartd.so

Change-Id: I093b433d921478307130c49a07d0c7ec34dd070d

7 years agoMerge "Change the region space region size to 256k."
Hiroshi Yamauchi [Tue, 28 Feb 2017 21:47:19 +0000 (21:47 +0000)]
Merge "Change the region space region size to 256k."

7 years agoDisable test 152 for gcstress
Mathieu Chartier [Tue, 28 Feb 2017 21:20:27 +0000 (13:20 -0800)]
Disable test 152 for gcstress

Bug: 35800768

Test: test-art-host-run-test ART_TEST_GC_STRESS=true

Change-Id: I6f5cdbb445b9cad6f57ffa5738c8c9e8ec3b9c98

7 years agoART: Add primitive field reporting
Andreas Gampe [Sat, 25 Feb 2017 17:15:05 +0000 (09:15 -0800)]
ART: Add primitive field reporting

Add support for primitive_field_callback.

Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: I4a700813ae11cc3ab49fd5738e0a2cce8a0002ba

7 years agoMerge "ART/Mterp: eliminate unnecessary access checks"
Bill Buzbee [Tue, 28 Feb 2017 20:59:33 +0000 (20:59 +0000)]
Merge "ART/Mterp: eliminate unnecessary access checks"

7 years agoMerge "Avoid visiting dead large objects in RegionSpace::Walk"
Treehugger Robot [Tue, 28 Feb 2017 20:24:27 +0000 (20:24 +0000)]
Merge "Avoid visiting dead large objects in RegionSpace::Walk"

7 years agoMerge "ART: Fix string reporting"
Treehugger Robot [Tue, 28 Feb 2017 19:47:16 +0000 (19:47 +0000)]
Merge "ART: Fix string reporting"

7 years agoART/Mterp: eliminate unnecessary access checks
buzbee [Wed, 22 Feb 2017 21:40:59 +0000 (13:40 -0800)]
ART/Mterp: eliminate unnecessary access checks

This CL switches mterp from using the old quick entrypoints
for sget/sput to instead using an sget/sput access sequence
similar to that used by the reference interpreter.  This
results in a reduction of unnecessary access checks.

Benchmarks: 3% improvement on DeltaBlue

Bug: 30933338
Test: ART_TEST_INTERPRETER=true m test-art-host
Change-Id: Ib4e64d72b511c6a9ed537289bfeb393eff42c70f

7 years agoAvoid visiting dead large objects in RegionSpace::Walk
Mathieu Chartier [Tue, 28 Feb 2017 00:37:21 +0000 (16:37 -0800)]
Avoid visiting dead large objects in RegionSpace::Walk

The motivation is to prevent large objects from being visited by
RegionSpace::Walk if it is called before the next GC's SetFromSpace
marks the large object as from-space. This fixes possible dangling
pointer issues.

A follow up CL will clear the empty unevac regions.

Bug: 35800768
Bug: 12687968

Test: test-art-host

Change-Id: I6323959f0b7b2a357e6d6483cd1c33fb63c3d54a

7 years agoMerge "Apply String.equals() optimizations on MIPS32 and MIPS64"
Treehugger Robot [Tue, 28 Feb 2017 17:31:32 +0000 (17:31 +0000)]
Merge "Apply String.equals() optimizations on MIPS32 and MIPS64"

7 years agoDon't include patch information when generating images.
Richard Uhler [Tue, 28 Feb 2017 17:06:29 +0000 (17:06 +0000)]
Don't include patch information when generating images.

Because we always compile pic, patch information is not needed.

Test: test-art-host, test-art-target
Bug: 33192586
Change-Id: Iaa4750117ecc464850daa50c32f80546fe716039

7 years agoMerge "Revert "Intrinsify Integer.valueOf.""
Nicolas Geoffray [Tue, 28 Feb 2017 17:05:11 +0000 (17:05 +0000)]
Merge "Revert "Intrinsify Integer.valueOf.""

7 years agoRevert "Intrinsify Integer.valueOf."
Nicolas Geoffray [Tue, 28 Feb 2017 17:04:50 +0000 (17:04 +0000)]
Revert "Intrinsify Integer.valueOf."

Heap poisoning missing
jit-gcstress not optimizing it.

bug:30933338

This reverts commit cd0b27287843cfd904dd163056322579ab4bbf27.

Change-Id: I5ece1818afbca5214babb6803f62614a649aedeb

7 years agoMIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code
Goran Jakovljevic [Tue, 28 Feb 2017 13:58:01 +0000 (14:58 +0100)]
MIPS32: Do not use _MIPS_ARCH_MIPS64R6 in MIPS32 code

Test: booted MIPS32 and MIPS64 in QEMU

Change-Id: I413272c11ad00a0f77271302727b5860eaa7756b

7 years agoMerge "Fix java.lang.Void.TYPE (void.class) initialization."
Vladimir Marko [Tue, 28 Feb 2017 14:15:21 +0000 (14:15 +0000)]
Merge "Fix java.lang.Void.TYPE (void.class) initialization."

7 years agoMerge "Intrinsify Integer.valueOf."
Nicolas Geoffray [Tue, 28 Feb 2017 14:12:33 +0000 (14:12 +0000)]
Merge "Intrinsify Integer.valueOf."

7 years agoMerge "ARM: VIXL32: Use LoadLiteral for double constants."
Nicolas Geoffray [Tue, 28 Feb 2017 12:43:06 +0000 (12:43 +0000)]
Merge "ARM: VIXL32: Use LoadLiteral for double constants."

7 years agoApply String.equals() optimizations on MIPS32 and MIPS64
Goran Jakovljevic [Mon, 27 Feb 2017 12:14:57 +0000 (13:14 +0100)]
Apply String.equals() optimizations on MIPS32 and MIPS64

Also extended test 536-checker-intrinsic-optimization.

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

Change-Id: I6bff42f81dcb05094ac698181df16c56193bb4a8

7 years agoMerge "Add hooks to avoid collecting code for run-tests."
Nicolas Geoffray [Tue, 28 Feb 2017 09:31:58 +0000 (09:31 +0000)]
Merge "Add hooks to avoid collecting code for run-tests."

7 years agoART: Fix string reporting
Andreas Gampe [Tue, 28 Feb 2017 03:59:40 +0000 (19:59 -0800)]
ART: Fix string reporting

Correctly report zero-length strings.

Bug: 31385354
Test: m test-art-host-run-test-906-iterate-heap
Test: m test-art-host-run-test-913-heaps
Change-Id: Ic37d5c4b350cc8d04faebec54494ed6fe19eece8

7 years agoMerge "Remove warning pragma from OpenJdkJvmTi.cc"
Treehugger Robot [Tue, 28 Feb 2017 02:01:36 +0000 (02:01 +0000)]
Merge "Remove warning pragma from OpenJdkJvmTi.cc"

7 years agoChange the region space region size to 256k.
Hiroshi Yamauchi [Thu, 23 Feb 2017 23:11:56 +0000 (15:11 -0800)]
Change the region space region size to 256k.

Also add RegionSpace::non_free_region_index_limit_ to avoid the need
to scan the free end of the region table in SetFromSpace(), which
compensates (and more) the pause time increase due to the increasing
number of regions.

Ritz EAAC avg pause time (angler little core / -Xmx512m):
Before 186us
After  436us (without non_free_region_index_limit_)
After  103us

Partially revert aog/327342 and remove the temporary adjustment of
max/min-free. Changing the region size to 256k was enough to avoid the
GCE boot issue (b/34576638), but 154-gc-loop barely fails. Make
154-gc-loop failures less strict.

Allocation performance (angler little core / -Xmx512m)
Ritz EAAC
Before 939.6
After 937.8

BinaryTree
Before 603350
After 620200 (-3%)

Bug: 12687968
Test: test-art-host
Test: GCE boot
Change-Id: I1495ab4ced806e1c4d779d49b56cea618817a0d6

7 years agoMerge "Revert "CHA for interface method.""
Mingyao Yang [Tue, 28 Feb 2017 00:06:40 +0000 (00:06 +0000)]
Merge "Revert "CHA for interface method.""

7 years agoMerge "Make testrunner use an environment variable to control building."
Treehugger Robot [Tue, 28 Feb 2017 00:05:41 +0000 (00:05 +0000)]
Merge "Make testrunner use an environment variable to control building."

7 years agoRevert "CHA for interface method."
Mingyao Yang [Tue, 28 Feb 2017 00:00:48 +0000 (16:00 -0800)]
Revert "CHA for interface method."

This reverts commit 7130fc769896a96573f55496444d87161e4b41e8.

There might be some race condition going on. 960-default-smali
fails sometimes.

7 years agoRemove warning pragma from OpenJdkJvmTi.cc
Alex Light [Mon, 27 Feb 2017 22:34:32 +0000 (14:34 -0800)]
Remove warning pragma from OpenJdkJvmTi.cc

Bug: 31455788
Test: ./test/testrunner/testrunner.py --host -j40 -b
Change-Id: Ia9343b5ff46f8921d6f1ed87bbf64016c581c450

7 years agoIntrinsify Integer.valueOf.
Nicolas Geoffray [Thu, 23 Feb 2017 16:18:41 +0000 (16:18 +0000)]
Intrinsify Integer.valueOf.

Improves performance of ArrayListStress and Ritz by ~10% and ~3%.

Test: test-art-host test-art-target
bug: 30933338

Change-Id: I639046e3a18dae50069d3a7ecb538a900bb590a1

7 years agoAdd hooks to avoid collecting code for run-tests.
Nicolas Geoffray [Mon, 27 Feb 2017 14:01:59 +0000 (14:01 +0000)]
Add hooks to avoid collecting code for run-tests.

ensureJitCompiled ensures a method gets compiled, but does
not prevent it from being GC'ed. Add a hammer hook to avoid
doing any JIT code cache GC.

test: test-art-host with gcstress and jit.
Change-Id: I3881f10f454ded9c7a3b385d326c2e08932d39bf

7 years agoMerge "proxy: Fix crash when creating proxies with dx-built libcore."
Igor Murashkin [Mon, 27 Feb 2017 22:02:14 +0000 (22:02 +0000)]
Merge "proxy: Fix crash when creating proxies with dx-built libcore."

7 years agoMake testrunner use an environment variable to control building.
Alex Light [Wed, 22 Feb 2017 19:46:50 +0000 (11:46 -0800)]
Make testrunner use an environment variable to control building.

If it sees ART_TEST_RUN_TEST_BUILD=true then it will build
dependencies before runnning tests by default.

Test: m clean && \
      ART_TEST_RUN_TEST_BUILD=false \
      ./test/testrunner/testrunner.py --verbose --host -j40 -b;
      # Observe that it calls make
Test: m clean && \
      ART_TEST_RUN_TEST_BUILD=true \
      ./test/testrunner/testrunner.py --verbose --host -j40 \
      --no-build-dependencies;
      # Observe that it does not call make
Test: m clean && \
      ART_TEST_RUN_TEST_BUILD=false\
      ./test/testrunner/testrunner.py --verbose --host -j40;
      # Observe that it does not call make
Test: m clean && \
      ART_TEST_RUN_TEST_BUILD=true \
      ./test/testrunner/testrunner.py --verbose --host -j40;
      # Observe that it calls make
Test: m clean && \
      ./test/testrunner/testrunner.py --verbose --host -j40;
      # Observe that it does not call make

Change-Id: Iedd9e5be42b0977b177c4c4e7f9a4805387d4535

7 years agoproxy: Fix crash when creating proxies with dx-built libcore.
Igor Murashkin [Mon, 27 Feb 2017 18:39:49 +0000 (10:39 -0800)]
proxy: Fix crash when creating proxies with dx-built libcore.

dx and jack can place methods at different offsets within the direct methods
list. This is because (a) dx and jack name their synthetic methods
differently (e.g. 'access$100' vs '-get0') and (b) the methods are
required to be sorted by name.

Instead of hard-coding where <init>(InvocationHandler) is for
java.lang.reflect.Proxy, look it up from the name and signature which
will work regardless of which front-end compiler is used.

Test: ANDROID_FORCE_JACK_ENABLED=disabled make -j32 test-art-host-gtest-proxy_test64
Bug: 35799227
Change-Id: Ie04a37cfe293c146afbe414075a6c568c6a4a0b3

7 years agoMerge "Make AddCapabilities call GetPotentialCapabilities."
Treehugger Robot [Mon, 27 Feb 2017 20:32:34 +0000 (20:32 +0000)]
Merge "Make AddCapabilities call GetPotentialCapabilities."

7 years agoMerge "Improve the region space memory mapping."
Hiroshi Yamauchi [Mon, 27 Feb 2017 19:48:22 +0000 (19:48 +0000)]
Merge "Improve the region space memory mapping."

7 years agoMerge "CHA for interface method."
Mingyao Yang [Mon, 27 Feb 2017 19:45:10 +0000 (19:45 +0000)]
Merge "CHA for interface method."

7 years agoMake AddCapabilities call GetPotentialCapabilities.
Alex Light [Mon, 27 Feb 2017 18:26:35 +0000 (10:26 -0800)]
Make AddCapabilities call GetPotentialCapabilities.

This will allow us to programatically disable some capabilities in the
future if we so choose.

Test: ./test/testrunner/testrunner.py --host -j40 -b
Change-Id: I82e9ba05b5f3b43e6244adb5a47e054fa7b8ec29

7 years agoMerge "ART: Let mterp know about invoke-custom"
Bill Buzbee [Mon, 27 Feb 2017 18:15:42 +0000 (18:15 +0000)]
Merge "ART: Let mterp know about invoke-custom"

7 years agoMerge "SIMD type conversion for x86"
Aart Bik [Mon, 27 Feb 2017 16:52:41 +0000 (16:52 +0000)]
Merge "SIMD type conversion for x86"

7 years agoART: Let mterp know about invoke-custom
buzbee [Mon, 27 Feb 2017 16:05:16 +0000 (08:05 -0800)]
ART: Let mterp know about invoke-custom

By default, the mterp assembly interpreter will redirect any
new or unexpected dex opcode to the reference switch interpreter.
That's what is happening now with the new invoke-custom opcodes.
This CL simply makes that fallback transition explicit.

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

7 years agoFix java.lang.Void.TYPE (void.class) initialization.
Vladimir Marko [Fri, 24 Feb 2017 14:58:29 +0000 (14:58 +0000)]
Fix java.lang.Void.TYPE (void.class) initialization.

Do not rely on the DexCache resolved types now that entries
can be evicted.

Test: 157-void-class
Test: testrunner.py --host
Bug: 35652776
Bug: 30627598
Change-Id: Ic384174ae1849072568dd6d2ff9cc60d7f7f1880

7 years agoMerge "ART: Enable build options in test runner script."
Treehugger Robot [Mon, 27 Feb 2017 15:41:47 +0000 (15:41 +0000)]
Merge "ART: Enable build options in test runner script."

7 years agoMerge "Revert "Use the "GC is marking" information in compiler read barriers (ARM...
Roland Levillain [Mon, 27 Feb 2017 14:34:13 +0000 (14:34 +0000)]
Merge "Revert "Use the "GC is marking" information in compiler read barriers (ARM, ARM64).""

7 years agoRevert "Use the "GC is marking" information in compiler read barriers (ARM, ARM64)."
Roland Levillain [Mon, 27 Feb 2017 14:32:08 +0000 (14:32 +0000)]
Revert "Use the "GC is marking" information in compiler read barriers (ARM, ARM64)."

This reverts commit 1372c9f40df1e47bf775f1466bbb96f472b6b9ed.

This change (along with https://android-review.googlesource.com/#/c/342429/)
creates null pointer dereferences.

Bug: 35780827
Bug: 29516974
Change-Id: I2a9c4d0ad8d2ab870c2e0ddbff32152933c77abe

7 years agoMerge "Revert "Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).""
Roland Levillain [Mon, 27 Feb 2017 14:33:09 +0000 (14:33 +0000)]
Merge "Revert "Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).""

7 years agoRevert "Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64)."
Roland Levillain [Mon, 27 Feb 2017 14:31:35 +0000 (14:31 +0000)]
Revert "Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64)."

This reverts commit 27b1f9cbfc1409418eee4b0e22f29f033e10b64d.

This change (along with https://android-review.googlesource.com/#/c/342428/)
creates null pointer dereferences.

Bug: 35780827
Bug: 29516974
Change-Id: If731960a405f9b89528f3daaf235da57cabc5c11

7 years agoMerge "Re-arrange System.identityHashCode for better performance."
Nicolas Geoffray [Mon, 27 Feb 2017 14:28:24 +0000 (14:28 +0000)]
Merge "Re-arrange System.identityHashCode for better performance."

7 years agoART: Enable build options in test runner script.
Orion Hodson [Mon, 27 Feb 2017 13:57:18 +0000 (13:57 +0000)]
ART: Enable build options in test runner script.

Adds a --build-option which passes an argument through to the build
script.

Fixes propagation of dx options.

Test: manual use of run-test script
Change-Id: I04ebfeda05fecfe8ac1ad91762d8330db5834fbe

7 years agoRe-arrange System.identityHashCode for better performance.
Nicolas Geoffray [Mon, 27 Feb 2017 11:46:03 +0000 (11:46 +0000)]
Re-arrange System.identityHashCode for better performance.

Brings in ~8% improvement to Ritz::EvaluateComplexFormulas.

Test: run-libcore-tests test-art-host
bug: 30933338
Change-Id: I9966da4143d013caf2e610eb176c0a8fffabca45

7 years agoMerge "Implement code sinking."
Nicolas Geoffray [Mon, 27 Feb 2017 12:30:19 +0000 (12:30 +0000)]
Merge "Implement code sinking."

7 years agoImplement code sinking.
Nicolas Geoffray [Thu, 16 Feb 2017 22:08:29 +0000 (22:08 +0000)]
Implement code sinking.

Small example of what the optimization does:

Object o = new Object();
if (test) {
  throw new Error(o.toString());
}

will be turned into (note that the first user of 'o'
is the 'new Error' allocation which has 'o' in its
environment):
if (test) {
  Object o = new Obect();
  throw new Error(o.toString());
}

There are other examples in 639-checker-code-sinking.

Ritz individual benchmarks improve on art-jit-cc from
5% (EvaluateComplexFormulas) to 23% (MoveFunctionColumn)
on all platforms.

Test: 639-checker-code-sinking
Test: test-art-host
Test: borg job run
Test: libcore + jdwp

bug:35634932
bug:30933338

Change-Id: Ib99c00c93fe76ffffb17afffb5a0e30a14310652

7 years agoMerge "ART: Fix underflow in codegen"
Treehugger Robot [Mon, 27 Feb 2017 00:09:53 +0000 (00:09 +0000)]
Merge "ART: Fix underflow in codegen"

7 years agoART: Fix underflow in codegen
Andreas Gampe [Sun, 26 Feb 2017 22:10:28 +0000 (14:10 -0800)]
ART: Fix underflow in codegen

Check for count == 0 first before accessing non-existent stack map.

Test: m ART_TEST_JIT=true test-art-host
Test: m ART_TEST_JIT=true test-art-host-run-test-913-heaps
Change-Id: Id4cad8e791d731147860b8a9a0d90cc893cc6972

7 years agoMerge "ART: Add debug code to test 913"
Treehugger Robot [Sun, 26 Feb 2017 19:49:12 +0000 (19:49 +0000)]
Merge "ART: Add debug code to test 913"

7 years agoART: Add debug code to test 913
Andreas Gampe [Sun, 26 Feb 2017 17:58:40 +0000 (09:58 -0800)]
ART: Add debug code to test 913

To find a flaky environment, dump the stack under error condition.

Bug: 31385354
Test: m test-art-host-run-test-913-heaps
Change-Id: Idfb2248e4ae8eda8bbcc221c5533d97ca737da2c

7 years agoMerge changes I60595a8f,Ia5d90286
Roland Levillain [Sat, 25 Feb 2017 11:11:18 +0000 (11:11 +0000)]
Merge changes I60595a8f,Ia5d90286

* changes:
  Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).
  Use the "GC is marking" information in compiler read barriers (ARM, ARM64).

7 years agoMerge "ART: Fix tagging"
Treehugger Robot [Sat, 25 Feb 2017 02:36:20 +0000 (02:36 +0000)]
Merge "ART: Fix tagging"

7 years agoMerge "Put app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE"
Mathieu Chartier [Sat, 25 Feb 2017 00:47:23 +0000 (00:47 +0000)]
Merge "Put app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE"

7 years agoART: Fix tagging
Andreas Gampe [Sat, 25 Feb 2017 00:21:18 +0000 (16:21 -0800)]
ART: Fix tagging

Tagging is local to the jvmtiEnv. Move from a global object tag
table to a table local to the ArtJvmtiEnv.

Bug: 31385027
Test: m test-art-host-run-test-903-hello-tagging
Change-Id: I2faeed87fd0421631fee7cd97bb7d496bf4e6338

7 years agoMerge "Dexlayout fix for duplicate class data and preserving last code item."
Treehugger Robot [Fri, 24 Feb 2017 23:24:11 +0000 (23:24 +0000)]
Merge "Dexlayout fix for duplicate class data and preserving last code item."

7 years agoMerge "Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject"
Treehugger Robot [Fri, 24 Feb 2017 23:18:45 +0000 (23:18 +0000)]
Merge "Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject"

7 years agoPut app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE
Mathieu Chartier [Fri, 24 Feb 2017 22:47:08 +0000 (14:47 -0800)]
Put app image objects in HPROF_HEAP_APP instead of HPROF_HEAP_IMAGE

Tools usually hide HPROF_HEAP_IMAGE and HPROF_HEAP_ZYGOTE classes,
so we probably don't want app classes in there.

Regression test is infeasible since we don't have a way to parse
hprof files from run-tests.

Test: test-art-host

Bug: 35762934
Change-Id: I56f4feb010a2e6cd290dfabdd8118e476098e40d

7 years agoMerge "ART: Remove stale TODOs"
Andreas Gampe [Fri, 24 Feb 2017 22:09:37 +0000 (22:09 +0000)]
Merge "ART: Remove stale TODOs"

7 years agoSIMD type conversion for x86
Aart Bik [Fri, 24 Feb 2017 22:09:15 +0000 (14:09 -0800)]
SIMD type conversion for x86

Rationale:
Break-out CL of ART Vectorizer: 1 OF many
Needed to demonstrate that same-length
type conversions easily fit the model.

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

7 years agoAdd more DCHECK logging to Heap::CheckPreconditionsForAllocObject
Mathieu Chartier [Fri, 24 Feb 2017 20:39:53 +0000 (12:39 -0800)]
Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject

Print out relevant info about why the DCHECK failed.

Bug: 35746587

Test: test-art-host
Change-Id: If09ad7d050126647abc16a02c5e9a596634e285c

7 years agoMerge "Revert^2 "ART: Add heap filter support""
Andreas Gampe [Fri, 24 Feb 2017 21:08:05 +0000 (21:08 +0000)]
Merge "Revert^2 "ART: Add heap filter support""

7 years agoRevert^2 "ART: Add heap filter support"
Andreas Gampe [Fri, 24 Feb 2017 18:01:19 +0000 (18:01 +0000)]
Revert^2 "ART: Add heap filter support"

This reverts commit 2cb576c9b98a8ac637fac7dca76eeba8dac87599.

Bug: 31385354
Change-Id: I249fdee43bd871eaef6a288c9296a57d42de1fd5
Test: m ART_TEST_JIT=true test-art-host-run-test-913-heaps
Test: m ART_TEST_JIT=true ART_TEST_GC_STRESS=true ART_DEFAULT_GC_TYPE=SS ART_USE_READ_BARRIER=false test-art-host-run-test-913-heaps

7 years agoDexlayout fix for duplicate class data and preserving last code item.
Jeff Hao [Fri, 24 Feb 2017 00:14:04 +0000 (16:14 -0800)]
Dexlayout fix for duplicate class data and preserving last code item.

This change fixes a dexlayout issue when multiple class defs reference
the same class data. A set is used to tell what class data has already
been visited.

This change also makes dexlayout preserve the offset of the last code
item in the dex file if the following section is not 4-byte aligned.
Due to limitations in dexlayout, it is difficult to adjust the offsets
of sections if more space is needed. An overhaul of dexlayout should
be done to properly fix this.

Bug: 35451910
Test: mm test-art-host-gtest-dexlayout_test
Change-Id: I8d066c2151a1a57c382ce35f12bf53a519da89f6

7 years agoImprove the region space memory mapping.
Hiroshi Yamauchi [Wed, 22 Feb 2017 00:49:59 +0000 (16:49 -0800)]
Improve the region space memory mapping.

Add a region space mmap fallback when the initial address isn't
available.

Clean up around the asan-specific base address.

Add MemMap::AlignBy to align the region space base address by the
region size, which is currently required by ReadBarrierTable.

Disable some read barriers in ZygoteCompactingCollector to avoid a
DCHECK failure in LockWord::SetMarkBitState when classes are in the
forward state due to unnecessary read barriers on
SizeOf/VisitReference.

Bug: 12687968
Test: test-art-host with CC and CMS.
Test: marlin-userdebug_asan_coverage boot.
Test: angler boots with CC and CMS.

Change-Id: I70f99779df6acc1b64cab6402f3ef7c73ce5b39b

7 years agoMerge "Fix initialization of OptimizingCompilerStats."
Vladimir Marko [Fri, 24 Feb 2017 15:38:14 +0000 (15:38 +0000)]
Merge "Fix initialization of OptimizingCompilerStats."

7 years agoFix initialization of OptimizingCompilerStats.
Vladimir Marko [Fri, 24 Feb 2017 15:01:41 +0000 (15:01 +0000)]
Fix initialization of OptimizingCompilerStats.

This is a follow-up to
    https://android-review.googlesource.com/343265
where we replaced Atomic<> with std::atomic<> because
Atomic<> was hiding std::atomic<>::operator=(). However,
while the default constructor of Atomic<> initializes the
value, the default constructor of std::atomic<> does not.

Test: m valgrind-test-art-host
Bug: 34053922
Change-Id: Iff2b38a7b28ee2d114991b60e3c40a33425bfc48

7 years agoMerge "Revert^2 "Enable String compression.""
Treehugger Robot [Fri, 24 Feb 2017 12:50:24 +0000 (12:50 +0000)]
Merge "Revert^2 "Enable String compression.""

7 years agoRevert^2 "Enable String compression."
Vladimir Marko [Thu, 23 Feb 2017 10:43:09 +0000 (10:43 +0000)]
Revert^2 "Enable String compression."

Test: m test-art-host (interpreter, JIT, AOT)
Test: m test-art-target on Nexus 6P (interpreter, JIT, AOT)
Test: Nexus 6P boots
Test: m ahat-test
Bug: 31040547

This reverts commit afcb365b2d3ae152989826c2afb0d98a9cf3f6be.

Change-Id: Id7e27d717c8e36d3c7abdde59ca2c8fd4fc221c9

7 years agoMerge "ART: add exynos-m2 to a53 #835769 & #843419 erratum exception list"
Treehugger Robot [Fri, 24 Feb 2017 10:30:14 +0000 (10:30 +0000)]
Merge "ART: add exynos-m2 to a53 #835769 & #843419 erratum exception list"

7 years agoMerge "Fix compilation statistics collection in inliner."
Vladimir Marko [Fri, 24 Feb 2017 10:15:20 +0000 (10:15 +0000)]
Merge "Fix compilation statistics collection in inliner."

7 years agoMerge "Revert "ART: Add heap filter support""
Nicolas Geoffray [Fri, 24 Feb 2017 09:40:54 +0000 (09:40 +0000)]
Merge "Revert "ART: Add heap filter support""

7 years agoRevert "ART: Add heap filter support"
Nicolas Geoffray [Fri, 24 Feb 2017 09:40:37 +0000 (09:40 +0000)]
Revert "ART: Add heap filter support"

Test is flaky.

Bug: 31385354

This reverts commit 4beab68986101d85d878491558bab34c9687beb0.

Change-Id: Id22e5b1c5cd3ca7b0e58037ecf3625f7239c5a7c

7 years agoMerge "Update entrypoint directly when doing JIT code cache GC."
Nicolas Geoffray [Fri, 24 Feb 2017 09:02:57 +0000 (09:02 +0000)]
Merge "Update entrypoint directly when doing JIT code cache GC."

7 years agoMerge "Fix testrunner.py reporting"
Treehugger Robot [Fri, 24 Feb 2017 02:38:50 +0000 (02:38 +0000)]
Merge "Fix testrunner.py reporting"