OSDN Git Service
Alex Light [Thu, 5 Jan 2017 22:37:21 +0000 (14:37 -0800)]
Revert "Revert "Cleanup jvmti tests""
This reverts commit
2a9d198b9929560c9ab07691b3afbe275483be95.
Test: mma -j40 test-art-host
Test: ART_TEST_RUN_TEST_NDEBUG=true mma -j40 test-art-host
Change-Id: I14bfd02f74f93e4a6b853287fcaa69f1fb027256
Hans Boehm [Thu, 5 Jan 2017 22:15:30 +0000 (22:15 +0000)]
Merge "Reduce the number of fences needed for monitors"
Aart Bik [Thu, 5 Jan 2017 20:34:32 +0000 (20:34 +0000)]
Merge "Tests on FP Math.abs()"
Treehugger Robot [Thu, 5 Jan 2017 19:13:38 +0000 (19:13 +0000)]
Merge "Fix unquitable apps when debug enabled."
Treehugger Robot [Thu, 5 Jan 2017 18:16:14 +0000 (18:16 +0000)]
Merge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""
Aart Bik [Tue, 3 Jan 2017 17:53:00 +0000 (09:53 -0800)]
Tests on FP Math.abs()
Rationale:
As a "quality of implementation", rather than pure "spec compliance", we
require that Math.abs() clears the sign bit (but changes nothing else)
for all numbers, including NaN (signaling NaN may become quiet though).
These tests ensure that remains the case.
NOTE:
This is a better redo of reverted CL
https://android-review.googlesource.com/#/c/316351/
Test: test-art-host
Bug:
30758343
Change-Id: I2740f9aea19abd82335f1f000d92f1cdb469a1c3
Treehugger Robot [Thu, 5 Jan 2017 17:37:56 +0000 (17:37 +0000)]
Merge "MIPS64: Implement table-based packed switch"
Treehugger Robot [Thu, 5 Jan 2017 16:55:53 +0000 (16:55 +0000)]
Merge "Remove racy DCHECK on string dex cache."
Nicolas Geoffray [Thu, 5 Jan 2017 15:27:03 +0000 (15:27 +0000)]
Remove racy DCHECK on string dex cache.
Test: test-art-host
Change-Id: I58940031d43d89f434d3c3239a218b99ebb1106b
Nicolas Geoffray [Thu, 5 Jan 2017 14:57:29 +0000 (14:57 +0000)]
Merge "Refine receiver type when inlining based on inline caches."
Nicolas Geoffray [Thu, 5 Jan 2017 13:27:14 +0000 (13:27 +0000)]
Merge "MIPS32: java.lang.String.getChars"
Nicolas Geoffray [Wed, 4 Jan 2017 16:46:23 +0000 (16:46 +0000)]
Refine receiver type when inlining based on inline caches.
We know we're guarding for a specific type
(eg foo.getClass() == Foo.class), so we can propagate the
exact type when building the callee graph.
Test: ART_TEST_JIT=true test-art-host
Change-Id: I3e1858945afbb651cb8966b2b7d7755eccac09e1
Vladimir Marko [Thu, 5 Jan 2017 12:45:35 +0000 (12:45 +0000)]
Merge "Revert "Disable 626-const-class-linking for JIT.""
Treehugger Robot [Thu, 5 Jan 2017 12:15:07 +0000 (12:15 +0000)]
Merge "Fix incorrect string hash value extension during cross-compilation."
Sebastien Hertz [Thu, 5 Jan 2017 10:28:56 +0000 (10:28 +0000)]
Merge "Limit Jack threads during tests"
Sebastien Hertz [Wed, 4 Jan 2017 15:07:57 +0000 (16:07 +0100)]
Limit Jack threads during tests
In default mode, run Jack with 4 threads to help reduce memory
footprint and thread contention. These are the same settings than
the Android build.
For the buildbot (where the Jack server is disabled), run Jack in
single-threaded mode to reduce the global memory consumption.
Bug:
31737153
Test: make -j32 test-art-host
Change-Id: I6a14efce92ea18dba008e6daa26cd6403e5eb503
Hans Boehm [Thu, 15 Dec 2016 21:12:59 +0000 (13:12 -0800)]
Reduce the number of fences needed for monitors
Add the necessary CasWeakAcquire primitives for LockWords.
Have MonitorEnter initially read the lockword using a
memory_order_relaxed operation. In the unlikely case we need more,
compensate with an explicit fence.
In the uncontended case, install the thin lock with Acquire,
rather than SequentiallyConsistent semantics.
Have MonitorExit use a Release instead of SequentiallyConsistent
CAS in the ReadBarrier case. Add TODO for the other case.
Together, these should usually eliminate 3 fences (or acq/rel)
per critical section.
Have Install() only use Release ordering.
Add TODO for inflation spinning, which looks to me like it could be
improved appreciably.
Drive-by fix:
GetMaxSpinsBeforeThinLockInflation spelling
Test: Build for several targets, boot, m art-test-host art-test-target
Change-Id: I2cab09723252065f6365e4234ee3249c69ece888
Treehugger Robot [Wed, 4 Jan 2017 22:59:02 +0000 (22:59 +0000)]
Merge "ART: Remove dequicken map from VerifiedMethod"
Andreas Gampe [Wed, 4 Jan 2017 20:04:05 +0000 (12:04 -0800)]
ART: Remove dequicken map from VerifiedMethod
Remove now unused VerifiedMethod's dequicken map. Follow-up to
c51c7ca7a779563d153c137c6bf01c3ea532a6c9.
Results on a large well-known app in speed compile with -j4:
Before:
dex2oat took [...] native alloc=84MB [...] swap=208MB [...]
After:
dex2oat took [...] native alloc=76MB [...] swap=208MB [...]
Bug:
34053922
Test: m clean-oat-host && m test-art-host
Change-Id: Ie95fd297299a0f5fac0c8c702773ee8372f662b6
Roland Levillain [Wed, 4 Jan 2017 15:22:32 +0000 (15:22 +0000)]
Merge "Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves."""
Roland Levillain [Wed, 4 Jan 2017 10:27:50 +0000 (10:27 +0000)]
Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves.""
This reverts commit
122ceb492f37e97d022cba2221a87368f1847f5f.
Test: m test-art-target on ARM64, with and without read barriers/heap poisoning.
Bug:
32545705
Change-Id: I4b447d762082eea8edfabeb070317d274e2f5bd0
Nicolas Geoffray [Wed, 4 Jan 2017 12:38:29 +0000 (12:38 +0000)]
Merge "Support non-exact upper bound of HBoundType."
Treehugger Robot [Wed, 4 Jan 2017 12:10:41 +0000 (12:10 +0000)]
Merge "Do not record dependencies on arrays."
Treehugger Robot [Wed, 4 Jan 2017 11:47:50 +0000 (11:47 +0000)]
Merge "MIPS64: Drop redundant sign-extensions in integer conversions"
Treehugger Robot [Wed, 4 Jan 2017 11:31:52 +0000 (11:31 +0000)]
Merge "MIPS32: Don't always do a null test in MarkGCCard"
Treehugger Robot [Wed, 4 Jan 2017 11:30:15 +0000 (11:30 +0000)]
Merge "MIPS64: Improve integer comparison with constants"
Nicolas Geoffray [Wed, 4 Jan 2017 10:06:27 +0000 (10:06 +0000)]
Merge changes from topic 'VIXLUpdate'
* changes:
ARM: VIXL32: Use a default code buffer capacity of 1Kb.
ART: VIXL32: Fix assembler test after VIXL update.
Nicolas Geoffray [Wed, 4 Jan 2017 10:04:08 +0000 (10:04 +0000)]
Merge "MIPS64: Implement branchless HCondition for floats"
Yi Kong [Wed, 4 Jan 2017 10:03:00 +0000 (10:03 +0000)]
Merge "Disable libcore test that requires IPv6"
Yi Kong [Wed, 4 Jan 2017 00:55:10 +0000 (00:55 +0000)]
Disable libcore test that requires IPv6
Test: N/A
Bug:
25178637
Bug:
34038136
Change-Id: I14c7451d269ee8f1163369d8c0d2209498466b66
Treehugger Robot [Tue, 3 Jan 2017 22:33:12 +0000 (22:33 +0000)]
Merge "Clean up VerifiedMethod."
Nicolas Geoffray [Fri, 25 Nov 2016 15:46:48 +0000 (15:46 +0000)]
Clean up VerifiedMethod.
Remove unused methods, and devirt map.
Results on a large well-known app in speed compile with -j4:
Before:
dex2oat took [...] native alloc=149MB [...] swap=208MB (
218103808B)
After:
dex2oat took [...] native alloc=84MB [...] swap=208MB (
218103808B)
Bug:
34053922
Test: m clean-oat-host && m test-art-host
Change-Id: I0791c1e4ec7a98ae3c98321c582974db8e26617d
Nicolas Geoffray [Tue, 3 Jan 2017 21:35:22 +0000 (21:35 +0000)]
Merge "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves.""
Nicolas Geoffray [Tue, 3 Jan 2017 21:34:59 +0000 (21:34 +0000)]
Revert "Avoid scratch register exhaustion during ARM64 stack slot moves."
Checker test fails.
Bug:
32545705
This reverts commit
4ec76d28f0f808117272134347abf828eea80b91.
Change-Id: Ief14978596341399404c504ec4ca6b68c54fd63c
Nicolas Geoffray [Tue, 3 Jan 2017 20:43:00 +0000 (20:43 +0000)]
Merge "MIPS64: Align register spills on 8-byte boundaries in slow paths"
Chris Larsen [Tue, 22 Nov 2016 00:04:53 +0000 (16:04 -0800)]
MIPS32: java.lang.String.getChars
Use memcpy(3) to copy characters under the assumption that memcpy()
has been hand optimized for best performance on the platform being
tested.
Test: run-test --optimizing 020-string
Test: run-test 020-string
Test: run-test --no-prebuild --optimizing 020-string
Test: run-test --no-prebuild 020-string
Test: run-test --optimizing 082-inline-execute
Test: run-test 082-inline-execute
Test: run-test --no-prebuild --optimizing 082-inline-execute
Test: run-test --no-prebuild 082-inline-execute
Test: mma -j2 ART_TEST_OPTIMIZING=true test-art-target-run-test
Test: booted MIPS32R2 emulator.
Note: Tested against both the MIPS32R2, and MIPS64R6 emulators.
Change-Id: I4192cf6244db120c8de5cc4932d4132acfc9740d
Roland Levillain [Tue, 3 Jan 2017 15:45:44 +0000 (15:45 +0000)]
Merge "Avoid scratch register exhaustion during ARM64 stack slot moves."
Roland Levillain [Mon, 7 Nov 2016 18:50:32 +0000 (18:50 +0000)]
Avoid scratch register exhaustion during ARM64 stack slot moves.
On ARM64, do not limit the selection of a scratch register
used in a move between two stack slots (or between two
double stack slots) to VIXL's floating-point register pool,
as it contains only one register (D31) and can be exhausted
in some rare cases. Instead, query both the core and the FP
register pools.
Add a regression run-test (626-checker-arm64-scratch-register).
Test: m test-art-target (on ARM64)
Bug:
32545705
Change-Id: I6203a4340e3c8b4f4879c07ed1be4c433c311c0f
Treehugger Robot [Tue, 3 Jan 2017 11:13:50 +0000 (11:13 +0000)]
Merge "MIPS64: java.lang.String.getChars"
Tijana Jakovljevic [Fri, 30 Dec 2016 08:23:01 +0000 (09:23 +0100)]
MIPS64: Implement branchless HCondition for floats
Test: mma test-art-target-run-test64 in QEMU
Change-Id: I595b5b7ddf9ebb19e872ed85f2e4098a835d9214
Goran Jakovljevic [Wed, 28 Dec 2016 15:21:48 +0000 (16:21 +0100)]
MIPS64: Drop redundant sign-extensions in integer conversions
Test: mma test-art-target-run-test64 in QEMU
Change-Id: I1dc7923d89528964771ddca288c5016d729cfb05
Goran Jakovljevic [Wed, 28 Dec 2016 13:33:21 +0000 (14:33 +0100)]
MIPS64: Improve integer comparison with constants
Test: mma test-art-target-run-test64 in QEMU
Change-Id: Ib29855a3e268e0333602f47185c520c6cfb16b59
Goran Jakovljevic [Mon, 26 Dec 2016 13:21:43 +0000 (14:21 +0100)]
MIPS32: Don't always do a null test in MarkGCCard
Test: mma test-art-target-run-test on CI20
Change-Id: I38fac492bb76b06b9cffc9be16944fb22ed2db70
Treehugger Robot [Fri, 23 Dec 2016 00:44:54 +0000 (00:44 +0000)]
Merge "Revert "Tests on FP Math.abs()""
Alexey Frunze [Thu, 22 Dec 2016 21:54:23 +0000 (13:54 -0800)]
MIPS64: Align register spills on 8-byte boundaries in slow paths
64-bit loads/stores would otherwise be split into pairs of
32-bit ones.
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: test-art-target-run-test-optimizing (MIPS64R6) in QEMU
Change-Id: I4846d11b52b71507dfd5ca2e27b3f2a5befcc58e
Aart Bik [Thu, 22 Dec 2016 22:54:04 +0000 (22:54 +0000)]
Revert "Tests on FP Math.abs()"
This reverts commit
b67877704edf8a32e71ce825d7ab4703be39f8ce.
On art-relocate-no-patchoat (linux)
we saw
#################### info
# Tests on floating-point Math.abs.
#################### diffs
--- expected.txt 2016-12-22 21:33:16.
796152568 +0000
+++ output.txt 2016-12-22 21:44:16.
685738052 +0000
@@ -1 +1,3 @@
-passed
+Exception in thread "main" java.lang.Error: Expected: 0x7f800001, found: 0x7fc00001
+ at Main.expectEquals32(Main.java:140)
+ at Main.main(Main.java:85)
####################
Change-Id: If8d1bce9d4d20668661af82bbd08940787cd8252
Treehugger Robot [Thu, 22 Dec 2016 21:00:40 +0000 (21:00 +0000)]
Merge "Tests on FP Math.abs()"
Scott Wakeling [Tue, 20 Dec 2016 09:43:32 +0000 (09:43 +0000)]
ARM: VIXL32: Use a default code buffer capacity of 1Kb.
Test: mma test-art-host && mma test-art-target
Change-Id: I238c40e775338b63cbdb8868c09d0555b0c3b077
Artem Serov [Wed, 21 Dec 2016 18:42:21 +0000 (18:42 +0000)]
ART: VIXL32: Fix assembler test after VIXL update.
Veneer pool is emitted 4 bytes later, so the expected output for
the test has been adjusted.
Test: test-art-host
Test: test-art-target
Change-Id: I3d656224fd4151904b8096486adecb6ef1eafea6
Alexey Frunze [Wed, 21 Dec 2016 01:24:59 +0000 (17:24 -0800)]
MIPS64: Implement table-based packed switch
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: test-art-target-run-test-optimizing (MIPS64R6) in QEMU
Test: test-art-host-gtest
Change-Id: I333dca43fca57ae7e6021bb84585487c889417c3
Alex Light [Wed, 21 Dec 2016 16:20:29 +0000 (08:20 -0800)]
Revert "Revert "Revert "Revert "Basic obsolete methods support""""
A GetDeclaringClass()->GetDexCache() got inserted during the
merge/review process meaning that we would try to access incorrect
dex-cache in obsolete methods in some situations.
Also when using tracing we would loop forever (or at least until an
OOM error) in test 916 due to tracing forcing InterpretOnly mode
meaning methods would never be jitted.
Bug:
32369913
Bug:
33630159
Test: ART_TEST_TRACE=true \
ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true mma -j40 test-art-host
This reverts commit
f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.
Change-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48
Aart Bik [Wed, 21 Dec 2016 16:59:12 +0000 (16:59 +0000)]
Merge "Refactored compilation on host to own method. Added dx option."
Nicolas Geoffray [Wed, 21 Dec 2016 15:06:46 +0000 (15:06 +0000)]
Do not record dependencies on arrays.
We do not record dependencies on arrays with component types in
the compiled DEX files, as the only thing that might change is their
access flags. If we were to change these flags in a breaking way, we would
need to enforce full verification again anyways.
Saves on doing type resolution during vdex update.
Test: test-art-host
Change-Id: Ib85e172a5cb99c2999eed8b6b37390aa6b5cac37
Nicolas Geoffray [Tue, 20 Dec 2016 09:25:42 +0000 (09:25 +0000)]
Support non-exact upper bound of HBoundType.
It used to not affect the analysis, but in order to recognize:
if (foo.getClass() == Foo.class)
We now need to differentiate between an exact and a non-exact
upper bound. Until now the "exact" flag on upper bounds was
there for convenience:
1) re-use of the same data structure
2) we mostly cared about HLoadClass as upper bounds.
Test: test-art-host
Test: master build with prebuilts
Test: apk scanner
Change-Id: I3a1f5e4d489a715a4545becee4c8c80f7d152fc0
Nicolas Geoffray [Wed, 21 Dec 2016 14:12:41 +0000 (14:12 +0000)]
Merge "Update vdex in place if input_vdex_fd == output_vdex_fd"
Nicolas Geoffray [Wed, 21 Dec 2016 13:30:48 +0000 (13:30 +0000)]
Merge "Point optimizations for vdex."
Nicolas Geoffray [Wed, 21 Dec 2016 12:30:10 +0000 (12:30 +0000)]
Merge "Optimize OatWriter when we don't compile any method."
Nicolas Geoffray [Wed, 21 Dec 2016 12:17:42 +0000 (12:17 +0000)]
Merge "Remove soon to be obsolete call kinds for direct calls."
Nicolas Geoffray [Wed, 21 Dec 2016 10:29:43 +0000 (10:29 +0000)]
Point optimizations for vdex.
- Do not record assignability due to not optimized CHECKCAST.
- Do not record that j.l.Object must not be assignable to other types.
- Chase the super class boundary to avoid recording a dependency
on a local class. This avoids doing type resolution of that class when
verifying the VerifierDeps.
Test: test-art-host
bug:
30937355
Change-Id: Ibcee205451f23958c759ddcca7f88fe9003d37a9
Nicolas Geoffray [Tue, 20 Dec 2016 21:15:00 +0000 (21:15 +0000)]
Optimize OatWriter when we don't compile any method.
- Don't write any quickening info.
- Don't visit methods.
Saves ~20% of compilation times.
Test: test-art-host
Change-Id: Ib18fd06c0ca42308e1d81401de0ee3e6297de0ce
Nicolas Geoffray [Tue, 20 Dec 2016 13:17:09 +0000 (13:17 +0000)]
Update vdex in place if input_vdex_fd == output_vdex_fd
Test: test-art-host
bug:
30937355
Change-Id: Ib8180d67996faec518d9092725b5de00d4dba9f6
Nicolas Geoffray [Wed, 21 Dec 2016 10:26:25 +0000 (10:26 +0000)]
Merge "Disable 080-oom-fragmentation."
Nicolas Geoffray [Wed, 21 Dec 2016 09:26:36 +0000 (09:26 +0000)]
Merge "Revert "Revert "Revert "Basic obsolete methods support""""
Nicolas Geoffray [Wed, 21 Dec 2016 09:26:18 +0000 (09:26 +0000)]
Revert "Revert "Revert "Basic obsolete methods support"""
Fails in tracing mode
Bug:
32369913
Bug:
33630159
This reverts commit
ce77fc0e7f60a15354bb20c356537cbf8b53b722.
Change-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69
Nicolas Geoffray [Wed, 21 Dec 2016 09:25:42 +0000 (09:25 +0000)]
Merge "Revert "Create test for field access in obsolete methods.""
Nicolas Geoffray [Wed, 21 Dec 2016 09:25:19 +0000 (09:25 +0000)]
Revert "Create test for field access in obsolete methods."
Fails on ndebug.
This reverts commit
322214405bf43684dbbde2fce549b2dad53fb04a.
Change-Id: I6a6c6c4bfb230eef1b7c4cb35f7e8051561d9e78
Nicolas Geoffray [Wed, 21 Dec 2016 08:58:27 +0000 (08:58 +0000)]
Disable 080-oom-fragmentation.
bug:
33795328
Test: test-art-host
Change-Id: I1aa87d8564c930f5ad5f8d5c4ac75f432cb6e7e7
Nicolas Geoffray [Wed, 21 Dec 2016 08:56:10 +0000 (08:56 +0000)]
Merge "Revert "Cleanup jvmti tests""
Nicolas Geoffray [Wed, 21 Dec 2016 08:55:49 +0000 (08:55 +0000)]
Revert "Cleanup jvmti tests"
Breaks ndebug.
This reverts commit
ca5b9dccced35a2dbf9626d92d3a44886aee097b.
Change-Id: I1f45fa43f554e9796f397b2f9f111689c3845692
Aart Bik [Wed, 21 Dec 2016 03:06:37 +0000 (19:06 -0800)]
Refactored compilation on host to own method. Added dx option.
Test: jfuzzing itself
Bug:
31267855
Change-Id: I9224075ea17b57c8c36b74fa4b9e401e26d3c96e
Alex Light [Wed, 21 Dec 2016 01:57:50 +0000 (01:57 +0000)]
Merge "Temporarily disable tests 914, 915, 917, & 918 on JIT."
Alex Light [Wed, 21 Dec 2016 00:15:45 +0000 (16:15 -0800)]
Temporarily disable tests 914, 915, 917, & 918 on JIT.
Since these tests are very sensitive to the positioning of
runtime methods due to bugs we will temporarily disable them.
Bug:
33630159
Bug:
33616143
Test: ART_TEST_JIT=true mma -j40 test-art-host
Change-Id: I38795029eed2ea8416d24a259f3a7925d95684c6
Vladimir Marko [Tue, 20 Dec 2016 21:26:13 +0000 (21:26 +0000)]
Revert "Disable 626-const-class-linking for JIT."
The failures were presumably fixed by
https://android-review.googlesource.com/314764
Test: m ART_TEST_JIT=true test-art-host-run-test-626-const-class-linking
Bug:
33567581
This reverts commit
0392920cb9f3dc76cbc9d2339b9ca00ba8a8269c.
Change-Id: I13ab17269f456580d57ca090ff44e8d087d770d4
Aart Bik [Mon, 19 Dec 2016 21:57:31 +0000 (13:57 -0800)]
Tests on FP Math.abs()
Rationale:
As a "quality of implementation" rather than pure "spec compliance"
we require that Math.abs() clears the sign bit (but changes nothing
else) for all numbers, including NaN.
These tests ensure that remains the case.
**NOTE**
This CL depends on the pending libcore change
(https://android-review.googlesource.com/#/c/316368/).
Test: test-art-host
Bug:
30758343
Change-Id: I01044a73992b2e89d97060ed8bbb76abea0933b9
Aart Bik [Tue, 20 Dec 2016 20:46:20 +0000 (20:46 +0000)]
Merge "Fix transfer over rejected induction."
Aart Bik [Tue, 20 Dec 2016 19:13:03 +0000 (11:13 -0800)]
Fix transfer over rejected induction.
Rationale:
With the more precise rejection of narrowing
linear induction, parent rules should be
prepared to reject failed transfers. Also
added a bit more comments to clarify rules.
With regression tests.
Bug:
33774618
Test: test-art-host
Change-Id: I4a206e51d4359ab383379914dd4697fc81903547
Hiroshi Yamauchi [Tue, 20 Dec 2016 18:56:19 +0000 (18:56 +0000)]
Merge "Handle ART_USE_READ_BARRIER as a product variable."
Alex Light [Tue, 20 Dec 2016 18:45:54 +0000 (18:45 +0000)]
Merge "Create test for field access in obsolete methods."
Treehugger Robot [Tue, 20 Dec 2016 17:49:02 +0000 (17:49 +0000)]
Merge changes Ie74f2dbe,I092d2e95,I5a75f5c4
* changes:
Fix 616-cha assumptions.
Fix JIT crash due to unverified dead code
Use interpret-only instead of verify-at-runtime when testing JIT
Alex Light [Tue, 20 Dec 2016 16:55:35 +0000 (08:55 -0800)]
Create test for field access in obsolete methods.
Test: ./test/run-test --host 918
Change-Id: Idf27a0a713e12876e35de5c24bf5d12984881927
Alex Light [Tue, 20 Dec 2016 16:42:09 +0000 (16:42 +0000)]
Merge changes I8cc87bac,If1a92e47
* changes:
Cleanup jvmti tests
Revert "Revert "Basic obsolete methods support""
Calin Juravle [Mon, 19 Dec 2016 15:38:07 +0000 (15:38 +0000)]
Fix 616-cha assumptions.
616-cha relies that some classes are not loaded at startup. Disable the
app image to prevent that.
Test: ART_TEST_JIT=true m test-art-host-run-test-616-cha
Change-Id: Ie74f2dbeae0f898d42051f248492126615ffdad6
Calin Juravle [Tue, 20 Dec 2016 14:36:59 +0000 (14:36 +0000)]
Fix JIT crash due to unverified dead code
The JIT compiler assumes that it only gets completely verified code. To
work around potential unverified dead code it uses kAccDontBotherCompile
flag set during runtime verification. However, if a class is verified
during a prior dex2oat the flag is not persisted and JIT happily things
that everything is ok.
The simplest fix is to mark classes with potential unverified dex code
as verify at runtime. We only do this for apps and assume that
everything in the boot image is well formed.
Test: m test-art-host
Bug:
31000839
Change-Id: I092d2e9553cd1c577036d78e8563a7a39d6cb7b9
Calin Juravle [Tue, 20 Dec 2016 14:00:48 +0000 (14:00 +0000)]
Use interpret-only instead of verify-at-runtime when testing JIT
That's because we run most of our products with interpret-only and not
verify-at-runtime.
Test: ART_TEST_JIT=true m test-art-host
Change-Id: I5a75f5c47a9e811db3ee7c3475a03fb648dba80d
Alexey Grebenkin [Fri, 2 Dec 2016 14:44:54 +0000 (17:44 +0300)]
Fix incorrect string hash value extension during cross-compilation.
Previouly, having a 32-bit Android device and a 64-bit host to compile
boot.oat could lead to an interning table be fulfilled using one hash
function and be worked with using another hash function (which is caused
by sign extension).
Target case is any string with a negative .GetHashCode().
Test: test-art-host-gtest-intern_table_test
Change-Id: I3f417e1ac990ef681f0651160292130e9b3632f0
Nicolas Geoffray [Tue, 20 Dec 2016 13:52:48 +0000 (13:52 +0000)]
Merge "ARM: VIXL32: Use 16-bit encoding for B(cond,...) where possible."
Nicolas Geoffray [Sun, 18 Dec 2016 15:52:36 +0000 (15:52 +0000)]
Remove soon to be obsolete call kinds for direct calls.
And remove CompilerDriver::GetCodeAndMethodForDirectCall in
preparation of removing non-PIC prebuild and non-PIC on-device
boot image compilation.
Test: test-art-host test-art-target
bug:
33192586
Change-Id: Ic48e3e8b9d7605dd0e66f31d458a182198ba9578
Treehugger Robot [Tue, 20 Dec 2016 12:00:20 +0000 (12:00 +0000)]
Merge "MIPS64: Improve string and class loads."
Nicolas Geoffray [Tue, 20 Dec 2016 09:06:17 +0000 (09:06 +0000)]
Merge "Sharpen HLoadClass from inliner."
Nicolas Geoffray [Tue, 20 Dec 2016 09:05:29 +0000 (09:05 +0000)]
Merge "Make 141-class-unload more robust under JIT."
Alex Light [Wed, 14 Dec 2016 23:29:42 +0000 (15:29 -0800)]
Cleanup jvmti tests
Deduplicate the 'run' scripts into the test/etc/run-test-jar file.
Test: mma -j40 test-art-host
Change-Id: I8cc87bacedb393bfa11cdf2345bfd7a4341caa37
Mingyao Yang [Tue, 20 Dec 2016 00:02:11 +0000 (00:02 +0000)]
Merge "CHA guard optimization (elimination/hoisting)."
Tao Wu [Wed, 14 Dec 2016 02:32:17 +0000 (18:32 -0800)]
Fix unquitable apps when debug enabled.
There is a race condition that we could read from control_sock_ after we are
asked to shutdown. Then we are stuck at pthread_join and can't exit.
Bug:
33592362
Test: manual - for detail, check bug description.
Change-Id: Ia7ece00131803a55fc040323ec19665d9b0300f9
Signed-off-by: Tao Wu <lepton@google.com>
Alexey Frunze [Wed, 14 Dec 2016 01:43:11 +0000 (17:43 -0800)]
MIPS64: Improve string and class loads.
This adds most kinds of string/class loads.
JIT string/class loads are TBD separately.
This also fixes Mips64Assembler::LoadLabelAddress()
(adding a constant to a 64-bit address must be done
using daddiu, not addiu).
Test: test-art-host-gtest
Test: booted MIPS64 (with 2nd arch MIPS32R6) in QEMU
Test: "make -j1 ART_TEST_DEFAULT_COMPILER=false ART_TEST_OPTIMIZING=true
ART_TEST_INTERPRETER=false ART_TEST_JIT=false
ART_TEST_PIC_TEST=true test-art-target-run-test64"
Change-Id: I1f94ece4cd202382c11167e1ed958e9d08d92822
Hiroshi Yamauchi [Mon, 19 Dec 2016 21:42:47 +0000 (13:42 -0800)]
Handle ART_USE_READ_BARRIER as a product variable.
Bug:
33492005
Test: top-level angler build.
Change-Id: I4e8a0a0af07fec0a5764692d8340faf4c9bcf2b4
Mingyao Yang [Thu, 17 Nov 2016 17:04:53 +0000 (09:04 -0800)]
CHA guard optimization (elimination/hoisting).
Test: manual by checking the dump-cfg output.
Change-Id: I254e168b9a85d2d3d23e02eea7e129c1bc9ab920
Alex Light [Thu, 15 Dec 2016 01:05:52 +0000 (01:05 +0000)]
Revert "Revert "Basic obsolete methods support""
This reverts commit
b81a9840b44480bfeacd74b8d9f51e06f295411d.
There were 2 issues with the original CL's test 916-obsolete-jit that
caused it to sporadically fail.
First, when checking if we had jitted the function under test in
916-obsolete-jit we failed to check to see if the function 'doCall',
which is used to work-around bugs in our deoptimization & compilation
systems, had also been jitted.
In the case where the 'sayHi' function had been jitted but the
'doCall' function had not we would (correctly) fail to redefine the
'Transform' class since we would not be able to deoptimize the 'sayHi'
function since it is under a quick_to_interpreter_bridge (runtime)
frame.
Secondly, the function Main.isInterpretedFunction was incorrect and
would always return false, regardless of the actual state of the
function. This would cause the test to fail as the
quick_to_interpreter_bridge frame prevented deoptimization of the
obsoleted function. Usually the warm-up period was enough to make sure
the methods were jitted anyway but this was not guaranteed.
Both of these problems become more likely to occur on systems with
more cpu contention such as the buildbots.
Test: stress --cpu 60 &; while ./test/run-test --host --jit 916; do ; done
Reason for revert: Fixed bug in test that was causing failures.
Original Tests:
Test: ./test/run-test --host 914
Test: ./test/run-test --host 915
Test: ./test/run-test --host 916
Test: mma -j40 test-art-host
Test: ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true mma -j40 test-art-host
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64 --no-jit
Bug:
32369913
Bug:
33630159
Change-Id: If1a92e47b90965a7dc21c5826185debe62bd1554
Aart Bik [Mon, 19 Dec 2016 21:38:57 +0000 (21:38 +0000)]
Merge "Improved induction var and range analysis around types."
Nicolas Geoffray [Mon, 19 Dec 2016 21:12:49 +0000 (21:12 +0000)]
Merge "Revert "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing JIT""""
Nicolas Geoffray [Mon, 19 Dec 2016 21:11:54 +0000 (21:11 +0000)]
Revert "Revert "Revert "Use interpret-only instead of verify-at-runtime when testing JIT"""
Reverting due to gtest crashes.
This reverts commit
3a3e4c10e4d08c9fa1fbeba6d74933964a3bb47f.
Change-Id: I7e1adf0d886a1cdaf3152469b3c11a33131ee498