OSDN Git Service
Treehugger Robot [Tue, 28 Feb 2017 19:47:16 +0000 (19:47 +0000)]
Merge "ART: Fix string reporting"
Treehugger Robot [Tue, 28 Feb 2017 17:31:32 +0000 (17:31 +0000)]
Merge "Apply String.equals() optimizations on MIPS32 and MIPS64"
Nicolas Geoffray [Tue, 28 Feb 2017 17:05:11 +0000 (17:05 +0000)]
Merge "Revert "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
Vladimir Marko [Tue, 28 Feb 2017 14:15:21 +0000 (14:15 +0000)]
Merge "Fix java.lang.Void.TYPE (void.class) initialization."
Nicolas Geoffray [Tue, 28 Feb 2017 14:12:33 +0000 (14:12 +0000)]
Merge "Intrinsify Integer.valueOf."
Nicolas Geoffray [Tue, 28 Feb 2017 12:43:06 +0000 (12:43 +0000)]
Merge "ARM: VIXL32: Use LoadLiteral for double constants."
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
Nicolas Geoffray [Tue, 28 Feb 2017 09:31:58 +0000 (09:31 +0000)]
Merge "Add hooks to avoid collecting code for run-tests."
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
Treehugger Robot [Tue, 28 Feb 2017 02:01:36 +0000 (02:01 +0000)]
Merge "Remove warning pragma from OpenJdkJvmTi.cc"
Mingyao Yang [Tue, 28 Feb 2017 00:06:40 +0000 (00:06 +0000)]
Merge "Revert "CHA for interface method.""
Treehugger Robot [Tue, 28 Feb 2017 00:05:41 +0000 (00:05 +0000)]
Merge "Make testrunner use an environment variable to control building."
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.
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
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
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
Igor Murashkin [Mon, 27 Feb 2017 22:02:14 +0000 (22:02 +0000)]
Merge "proxy: Fix crash when creating proxies with dx-built libcore."
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
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
Treehugger Robot [Mon, 27 Feb 2017 20:32:34 +0000 (20:32 +0000)]
Merge "Make AddCapabilities call GetPotentialCapabilities."
Hiroshi Yamauchi [Mon, 27 Feb 2017 19:48:22 +0000 (19:48 +0000)]
Merge "Improve the region space memory mapping."
Mingyao Yang [Mon, 27 Feb 2017 19:45:10 +0000 (19:45 +0000)]
Merge "CHA for interface method."
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
Bill Buzbee [Mon, 27 Feb 2017 18:15:42 +0000 (18:15 +0000)]
Merge "ART: Let mterp know about invoke-custom"
Aart Bik [Mon, 27 Feb 2017 16:52:41 +0000 (16:52 +0000)]
Merge "SIMD type conversion for x86"
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
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
Treehugger Robot [Mon, 27 Feb 2017 15:41:47 +0000 (15:41 +0000)]
Merge "ART: Enable build options in test runner script."
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).""
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
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).""
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
Nicolas Geoffray [Mon, 27 Feb 2017 14:28:24 +0000 (14:28 +0000)]
Merge "Re-arrange System.identityHashCode for better performance."
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
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
Nicolas Geoffray [Mon, 27 Feb 2017 12:30:19 +0000 (12:30 +0000)]
Merge "Implement 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
Treehugger Robot [Mon, 27 Feb 2017 00:09:53 +0000 (00:09 +0000)]
Merge "ART: 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
Treehugger Robot [Sun, 26 Feb 2017 19:49:12 +0000 (19:49 +0000)]
Merge "ART: 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
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).
Treehugger Robot [Sat, 25 Feb 2017 02:36:20 +0000 (02:36 +0000)]
Merge "ART: Fix tagging"
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"
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
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."
Treehugger Robot [Fri, 24 Feb 2017 23:18:45 +0000 (23:18 +0000)]
Merge "Add more DCHECK logging to Heap::CheckPreconditionsForAllocObject"
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
Andreas Gampe [Fri, 24 Feb 2017 22:09:37 +0000 (22:09 +0000)]
Merge "ART: Remove stale TODOs"
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
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
Andreas Gampe [Fri, 24 Feb 2017 21:08:05 +0000 (21:08 +0000)]
Merge "Revert^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
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
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
Vladimir Marko [Fri, 24 Feb 2017 15:38:14 +0000 (15:38 +0000)]
Merge "Fix 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
Treehugger Robot [Fri, 24 Feb 2017 12:50:24 +0000 (12:50 +0000)]
Merge "Revert^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
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"
Vladimir Marko [Fri, 24 Feb 2017 10:15:20 +0000 (10:15 +0000)]
Merge "Fix compilation statistics collection in inliner."
Nicolas Geoffray [Fri, 24 Feb 2017 09:40:54 +0000 (09:40 +0000)]
Merge "Revert "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
Nicolas Geoffray [Fri, 24 Feb 2017 09:02:57 +0000 (09:02 +0000)]
Merge "Update entrypoint directly when doing JIT code cache GC."
Treehugger Robot [Fri, 24 Feb 2017 02:38:50 +0000 (02:38 +0000)]
Merge "Fix testrunner.py reporting"
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
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>
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
Treehugger Robot [Fri, 24 Feb 2017 00:35:23 +0000 (00:35 +0000)]
Merge "ART: Add heap filter support"
Treehugger Robot [Fri, 24 Feb 2017 00:09:53 +0000 (00:09 +0000)]
Merge "ART: Add klass filter support"
Treehugger Robot [Thu, 23 Feb 2017 23:48:46 +0000 (23:48 +0000)]
Merge "ART: Ignore vreg=-1 in test 913"
Treehugger Robot [Thu, 23 Feb 2017 23:24:22 +0000 (23:24 +0000)]
Merge "Check stacks for unmodifiable frames"
Treehugger Robot [Thu, 23 Feb 2017 22:41:18 +0000 (22:41 +0000)]
Merge "ART: Add flag for ArtMethod class state checks"
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
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
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
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
Treehugger Robot [Thu, 23 Feb 2017 20:39:12 +0000 (20:39 +0000)]
Merge "Add more comments in GetProfiledMethods"
Hans Boehm [Thu, 23 Feb 2017 19:42:27 +0000 (19:42 +0000)]
Merge "Improve aarch64 MonitorEntry/Exit assembly code"
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
Treehugger Robot [Thu, 23 Feb 2017 19:33:20 +0000 (19:33 +0000)]
Merge "Disallow modifying java.lang.String"
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
Treehugger Robot [Thu, 23 Feb 2017 17:53:54 +0000 (17:53 +0000)]
Merge "ART: Add primitive array reporting"
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_."
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
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
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
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
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
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
Treehugger Robot [Thu, 23 Feb 2017 01:48:52 +0000 (01:48 +0000)]
Merge "Make dexlayout parse exception handlers not referenced by try blocks."
Mathieu Chartier [Thu, 23 Feb 2017 00:55:43 +0000 (00:55 +0000)]
Merge "Check for null profile in ShouldCompileBasedOnProfile"
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
Mathieu Chartier [Thu, 23 Feb 2017 00:18:50 +0000 (00:18 +0000)]
Merge "Fix mac build"
Andreas Gampe [Thu, 23 Feb 2017 00:17:27 +0000 (00:17 +0000)]
Merge "ART: Fix clean-oat-host rule"
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
Andreas Gampe [Wed, 22 Feb 2017 23:48:55 +0000 (23:48 +0000)]
Merge "ART: Remove forced invariant checks"
Mathieu Chartier [Wed, 22 Feb 2017 23:15:40 +0000 (23:15 +0000)]
Merge "dex2oat: Watchdog uses CLOCK_MONOTONIC instead of CLOCK_REALTIME"
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