OSDN Git Service

android-x86/art.git
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 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 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 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 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"

7 years agoART: Remove stale TODOs
Andreas Gampe [Fri, 24 Feb 2017 01:31:42 +0000 (17:31 -0800)]
ART: Remove stale TODOs

Remove a number of now stale TODOs.

Bug: 31455788
Test: m
Change-Id: I2ec22604b71817f34427bbc8e996ba01b686191b

7 years agoART: add exynos-m2 to a53 #835769 & #843419 erratum exception list
Junmo Park [Wed, 3 Aug 2016 07:51:22 +0000 (16:51 +0900)]
ART: add exynos-m2 to a53 #835769 & #843419 erratum exception list

Exynos-M2 is custom-designed 64-bit ARM CPU and does not need this A53
erratum handling.

Change-Id: I2a72a0cb84d6cffe45a87ac23ff3164806bb7a7a
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
7 years agoFix testrunner.py reporting
Alex Light [Fri, 24 Feb 2017 01:02:46 +0000 (17:02 -0800)]
Fix testrunner.py reporting

Bad indentation meant we wouldn't print status updates if the terminal
is wide enough to print the entire target name.

Test: with a wide terminal ./test/testrunner/testrunner.py --host -j48
Change-Id: I7e618a25e42fe2d5ac740565afec201265e47ecb

7 years agoMerge "ART: Add heap filter support"
Treehugger Robot [Fri, 24 Feb 2017 00:35:23 +0000 (00:35 +0000)]
Merge "ART: Add heap filter support"

7 years agoMerge "ART: Add klass filter support"
Treehugger Robot [Fri, 24 Feb 2017 00:09:53 +0000 (00:09 +0000)]
Merge "ART: Add klass filter support"

7 years agoMerge "ART: Ignore vreg=-1 in test 913"
Treehugger Robot [Thu, 23 Feb 2017 23:48:46 +0000 (23:48 +0000)]
Merge "ART: Ignore vreg=-1 in test 913"

7 years agoMerge "Check stacks for unmodifiable frames"
Treehugger Robot [Thu, 23 Feb 2017 23:24:22 +0000 (23:24 +0000)]
Merge "Check stacks for unmodifiable frames"

7 years agoMerge "ART: Add flag for ArtMethod class state checks"
Treehugger Robot [Thu, 23 Feb 2017 22:41:18 +0000 (22:41 +0000)]
Merge "ART: Add flag for ArtMethod class state checks"

7 years agoART: Add heap filter support
Andreas Gampe [Mon, 20 Feb 2017 22:38:55 +0000 (14:38 -0800)]
ART: Add heap filter support

Add support for heap filter to FollowReferences. Update test.

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

7 years agoART: Add klass filter support
Andreas Gampe [Mon, 20 Feb 2017 21:35:36 +0000 (13:35 -0800)]
ART: Add klass filter support

Add support for klass filter to FollowReferences. Update test.

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

7 years agoART: Ignore vreg=-1 in test 913
Andreas Gampe [Thu, 23 Feb 2017 21:53:19 +0000 (13:53 -0800)]
ART: Ignore vreg=-1 in test 913

Compiled code may have references that do not originate from a
dalvik register, e.g., when caching values from LSE. Do not print
these roots to make the test robust wrt/ compiler changes.

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

7 years agoCheck stacks for unmodifiable frames
Alex Light [Wed, 22 Feb 2017 19:08:06 +0000 (11:08 -0800)]
Check stacks for unmodifiable frames

We keep a generate a list of classes that have unmodifiable frames
during the zygote fork and check for them in IsModifiableClass.

Test: Start apps on aosp_marlin-userdebug phone with libartd.so

Change-Id: I6bbaa20d307c3803a5808fb4108638365895e802

7 years agoMerge "Add more comments in GetProfiledMethods"
Treehugger Robot [Thu, 23 Feb 2017 20:39:12 +0000 (20:39 +0000)]
Merge "Add more comments in GetProfiledMethods"

7 years agoMerge "Improve aarch64 MonitorEntry/Exit assembly code"
Hans Boehm [Thu, 23 Feb 2017 19:42:27 +0000 (19:42 +0000)]
Merge "Improve aarch64 MonitorEntry/Exit assembly code"

7 years agoART: Add flag for ArtMethod class state checks
Andreas Gampe [Thu, 23 Feb 2017 19:34:48 +0000 (11:34 -0800)]
ART: Add flag for ArtMethod class state checks

The checks, especially in GetAccessFlags, is expensive. To help
with running a debug build on devices, add a flag to be able to
turn the checks off.

Bug: 35644369
Test: m
Change-Id: I2a3db1a56986df8f4a8b2dc5bcb26e1bcaea0a24

7 years agoMerge "Disallow modifying java.lang.String"
Treehugger Robot [Thu, 23 Feb 2017 19:33:20 +0000 (19:33 +0000)]
Merge "Disallow modifying java.lang.String"

7 years agoFix compilation statistics collection in inliner.
Vladimir Marko [Thu, 23 Feb 2017 18:56:13 +0000 (18:56 +0000)]
Fix compilation statistics collection in inliner.

Stats from callee graph builder were not merged into main
stats and stats for callee graph optimizations were counted
even when the callee graph was eventually rejected.

Allocate the callee graph statistics on the arena.
Measured compilation of a big app using heaptrack:
  bytes allocated in total (ignoring deallocations): 3.77GB -> 3.37GB
  calls to allocation functions: 10650510 -> 8203129

Test: testrunner.py --host
Test: Stats change in the expected direction for an app.
Bug: 34053922
Change-Id: I605280d262b86af14b847acf3bb6dc077b749cc0

7 years agoMerge "ART: Add primitive array reporting"
Treehugger Robot [Thu, 23 Feb 2017 17:53:54 +0000 (17:53 +0000)]
Merge "ART: Add primitive array reporting"

7 years agoMerge "Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_."
Hiroshi Yamauchi [Thu, 23 Feb 2017 17:47:16 +0000 (17:47 +0000)]
Merge "Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_."

7 years agoARM: VIXL32: Use LoadLiteral for double constants.
Artem Serov [Fri, 10 Feb 2017 13:39:43 +0000 (13:39 +0000)]
ARM: VIXL32: Use LoadLiteral for double constants.

Use LoadLiteral for generating double constants if the constant
doesn't fit VMOV instruction encoding:

0x00000004      ed9f0b07        vldr d0, 0x00000024
+ entry in literal pool

vs

0x00000008      f64f0ca1        mov ip, #63649
0x0000000c      f2ce6c31        movt ip, #58929
0x00000010      ee80cb10        vdup.32 d0, ip
0x00000014      f6414cd6        mov ip, #7382
0x00000018      f2c40cc8        movt ip, #16584
0x0000001c      ee20cb10        vmov.32 d0[1], ip

Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: Ia0343bd6b9473870e364df95f2ccfae9750050e0

7 years agoUse the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).
Roland Levillain [Tue, 17 Jan 2017 16:56:34 +0000 (16:56 +0000)]
Use the holder's gray bit in Baker read barrier slow paths (ARM, ARM64).

In compiler-generated code, when deciding whether to mark
a heap reference or not in a read barrier, after checking
whether the GC is currently marking, also check (in the
slow path) whether the lock word of the reference's holder
is gray, before actually marking the reference.

This change is only for ARM and ARM64, as it does not
benefit x86 nor x86-64.

Test: Run ART tests in Baker read barrier configuration.
Test: Boot a device in Baker read barrier configuration.
Bug: 29516974
Change-Id: I60595a8f4987747faeaa359ad873e9758c1ded75

7 years agoUse the "GC is marking" information in compiler read barriers (ARM, ARM64).
Roland Levillain [Fri, 13 Jan 2017 11:47:39 +0000 (11:47 +0000)]
Use the "GC is marking" information in compiler read barriers (ARM, ARM64).

In compiler-generated code, when deciding whether to mark
a heap reference or not in a read barrier, check whether
the GC is currently marking, instead of checking the gray
bit in the reference's holder's lock word.

This change is only for ARM and ARM64, as it does not
benefit x86 nor x86-64.

Test: Run ART tests in Baker read barrier configuration.
Test: Boot a device in Baker read barrier configuration.
Bug: 29516974
Change-Id: Ia5d90286bb9f753f3bbcb3a6254eb166523a2ff5

7 years agoUpdate entrypoint directly when doing JIT code cache GC.
Nicolas Geoffray [Wed, 22 Feb 2017 10:21:00 +0000 (10:21 +0000)]
Update entrypoint directly when doing JIT code cache GC.

Otherwise, the Instrumentation::UpdateMethodsCode might access
the declaring class while the GC is concurrently processing
references.

bug:35598395
test: run-libcore-tests.sh --mode=host --variant=X64
Change-Id: I0f059b1823e81672d43cf1f7eed64482f8927232

7 years agoART: Add primitive array reporting
Andreas Gampe [Thu, 23 Feb 2017 03:20:37 +0000 (19:20 -0800)]
ART: Add primitive array reporting

Add support for array_primitive_value_callback.

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

7 years agoAdd jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_.
Hiroshi Yamauchi [Thu, 23 Feb 2017 02:06:55 +0000 (18:06 -0800)]
Add jdwp event_list_lock_ to expected_mutexes_on_weak_ref_access_.

To avoid a DCHECK failure where event_list_lock_ is unexpectedly held
during a weak ref access.

Also move event_list_lock to Locks.

Bug: 35360959
Test: test-art-host.
Test: jdwp test.
Change-Id: I6315e1f7152058656f2479ad7b4e4f3defd15555

7 years agoMerge "Make dexlayout parse exception handlers not referenced by try blocks."
Treehugger Robot [Thu, 23 Feb 2017 01:48:52 +0000 (01:48 +0000)]
Merge "Make dexlayout parse exception handlers not referenced by try blocks."

7 years agoMerge "Check for null profile in ShouldCompileBasedOnProfile"
Mathieu Chartier [Thu, 23 Feb 2017 00:55:43 +0000 (00:55 +0000)]
Merge "Check for null profile in ShouldCompileBasedOnProfile"

7 years agoMake dexlayout parse exception handlers not referenced by try blocks.
Jeff Hao [Wed, 22 Feb 2017 22:20:41 +0000 (14:20 -0800)]
Make dexlayout parse exception handlers not referenced by try blocks.

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

7 years agoMerge "Fix mac build"
Mathieu Chartier [Thu, 23 Feb 2017 00:18:50 +0000 (00:18 +0000)]
Merge "Fix mac build"

7 years agoMerge "ART: Fix clean-oat-host rule"
Andreas Gampe [Thu, 23 Feb 2017 00:17:27 +0000 (00:17 +0000)]
Merge "ART: Fix clean-oat-host rule"

7 years agoFix mac build
Mathieu Chartier [Thu, 23 Feb 2017 00:07:23 +0000 (16:07 -0800)]
Fix mac build

Add some #if to accomplish this.

Test: mm
Change-Id: I934e805a0b41e172cb419a3648935c6db789ad57

7 years agoMerge "ART: Remove forced invariant checks"
Andreas Gampe [Wed, 22 Feb 2017 23:48:55 +0000 (23:48 +0000)]
Merge "ART: Remove forced invariant checks"

7 years agoMerge "dex2oat: Watchdog uses CLOCK_MONOTONIC instead of CLOCK_REALTIME"
Mathieu Chartier [Wed, 22 Feb 2017 23:15:40 +0000 (23:15 +0000)]
Merge "dex2oat: Watchdog uses CLOCK_MONOTONIC instead of CLOCK_REALTIME"

7 years agoDisallow modifying java.lang.String
Alex Light [Tue, 21 Feb 2017 23:00:48 +0000 (15:00 -0800)]
Disallow modifying java.lang.String

The optimizations we do for j.l.String mean that if agents put
profiling code j.l.String they will see a lot of surprising behaviors
(for example the String constructor is never called).

Bug: 35396224
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: I30df68186f30f7311e2a5e36b18d807d8e91a596