OSDN Git Service
TatWai Chong [Wed, 2 Nov 2016 08:12:48 +0000 (16:12 +0800)]
ART: Reference.getReferent intrinsic for arm and arm64
Test: m test-art-host
Test: m test-art-target
Test: export ART_HEAP_POISONING=true; m test-art-host
Test: export ART_HEAP_POISONING=true; m test-art-target
Bug:
32535355
Change-Id: Ie63317689dd9e03a24e701c30411f8014970173a
Treehugger Robot [Wed, 11 Jan 2017 00:42:14 +0000 (00:42 +0000)]
Merge "Make all class redefinition operations after suspend_all infallible"
Treehugger Robot [Wed, 11 Jan 2017 00:26:10 +0000 (00:26 +0000)]
Merge "ART: Add system properties support"
Alex Light [Tue, 10 Jan 2017 21:33:56 +0000 (13:33 -0800)]
Make all class redefinition operations after suspend_all infallible
We can guarantee that the mutations to the class, classloader, method
& stack data-structures which occur after the suspend_all can never
fail. This will simplify implementing the required semantics of class
redefinition with respect to atomically updating multiple classes at
once.
Test: mma -j40 test-art-host
Change-Id: Iab95c66afbdcfe161a9486f5fb7193c53642c060
Andreas Gampe [Tue, 10 Jan 2017 03:21:06 +0000 (19:21 -0800)]
ART: Add system properties support
Add simple support for GetSystemProperties, GetSystemProperty and
SetSystemProperty. Add a test.
Bug:
31455788
Test: m test-art-host-run-test-922-properties
Change-Id: I02914f04643f0f8fab96f1b372925c2c5306fc9b
Mathieu Chartier [Tue, 10 Jan 2017 18:40:25 +0000 (18:40 +0000)]
Merge "Fix some issues reported by Valgrind"
Mathieu Chartier [Tue, 10 Jan 2017 18:09:21 +0000 (18:09 +0000)]
Merge "Delete extra arm64/mips64 MterpReturn suspend check"
Treehugger Robot [Tue, 10 Jan 2017 17:04:13 +0000 (17:04 +0000)]
Merge "Revert "Revert "Add basic implementation of IsModifiableClass"""
Treehugger Robot [Tue, 10 Jan 2017 17:01:12 +0000 (17:01 +0000)]
Merge "Revert "Revert "Add basic checks for redefinition."""
Mathieu Chartier [Tue, 10 Jan 2017 02:48:11 +0000 (18:48 -0800)]
Delete extra arm64/mips64 MterpReturn suspend check
Doing a suspend check after moving the result into the shadow frame
result_register_ is not safe since result_register_ is not a GC
root. The suspend check is unnecessary since the opcodes that branch
to MterpReturn already do a suspend check.
This could maybe explain one crash for CC that was seen after calling
a getter that had no compiled code.
The extra suspend check appears to only be present on arm64 amd mips64.
Test: test-art-target ART_TEST_INTERPRETER=true
Bug:
33211261
Change-Id: I70b8863f40a25a26f278ac8ef0d57e083b663e0f
Alex Light [Tue, 10 Jan 2017 15:41:24 +0000 (07:41 -0800)]
Revert "Revert "Add basic implementation of IsModifiableClass""
This reverts commit
c66c077d40db58ec239f93a9c42b9939439c85c7.
Reason for revert: Problem with preceding CL fixed.
Test: mma -j40 test-art-host
Alex Light [Tue, 10 Jan 2017 15:37:17 +0000 (15:37 +0000)]
Revert "Revert "Add basic checks for redefinition.""
This reverts commit
f9d41c1d269f3031c0a89e34fc4a04303e186958.
Reason for revert: Fixed issue of missing target skip.
Test: mma -j40 test-art-host
Change-Id: Ibe632e1f3063373950fb873e1716d0439c561297
Nicolas Geoffray [Tue, 10 Jan 2017 12:10:09 +0000 (12:10 +0000)]
Merge "The HBoundsCheck should be the index input of String.charAt."
Nicolas Geoffray [Tue, 10 Jan 2017 09:00:28 +0000 (09:00 +0000)]
Merge "Revert "Add basic checks for redefinition.""
Nicolas Geoffray [Tue, 10 Jan 2017 08:58:44 +0000 (08:58 +0000)]
Revert "Add basic checks for redefinition."
Test fails.
This reverts commit
10f02fb4f026c493c69b21d4ec7c3096970357e1.
Change-Id: I21abfff0d7cd4ec840447f19819b7859b90f45b2
Nicolas Geoffray [Tue, 10 Jan 2017 08:59:54 +0000 (08:59 +0000)]
Merge "Revert "Add basic implementation of IsModifiableClass""
Nicolas Geoffray [Tue, 10 Jan 2017 08:59:31 +0000 (08:59 +0000)]
Revert "Add basic implementation of IsModifiableClass"
Built on top of a failing change.
This reverts commit
b4e51ebfa23a1cb175a6c317ac4a69228709e78f.
Change-Id: I7f4dbe22271a9c04e518bceabba12c95cad3c6f7
Treehugger Robot [Tue, 10 Jan 2017 01:52:42 +0000 (01:52 +0000)]
Merge "Add basic implementation of IsModifiableClass"
Mathieu Chartier [Tue, 10 Jan 2017 01:04:32 +0000 (01:04 +0000)]
Merge "Use relative futex timeout in SuspendAllInternal."
Alex Light [Tue, 10 Jan 2017 00:28:58 +0000 (16:28 -0800)]
Add basic implementation of IsModifiableClass
Currently we just flatly disallow some types of modifications that
might be allowed in the future.
Bug:
31684578
Test: mma -j40 test-art-host
Change-Id: Ica76d12276eb11b318da2f642591ea78766f36ad
Treehugger Robot [Tue, 10 Jan 2017 00:22:41 +0000 (00:22 +0000)]
Merge "ART: Add method modifiers functions"
Treehugger Robot [Tue, 10 Jan 2017 00:13:40 +0000 (00:13 +0000)]
Merge "Add basic checks for redefinition."
Dan Willemsen [Mon, 9 Jan 2017 23:55:50 +0000 (23:55 +0000)]
Merge "Remove oat-target* rules"
Treehugger Robot [Mon, 9 Jan 2017 22:57:24 +0000 (22:57 +0000)]
Merge "ART: Add method code item functions"
Andreas Gampe [Mon, 9 Jan 2017 22:40:25 +0000 (14:40 -0800)]
ART: Add method modifiers functions
Add support for IsMethodNative, IsMethodObsolete and IsMethodSynthetic.
Add tests.
Bug:
34163329
Test: m test-art-host-run-test-910-methods
Change-Id: I89077cfde1f37861ccb718345b753dfae1d6abe3
Alex Light [Sat, 7 Jan 2017 00:21:48 +0000 (16:21 -0800)]
Add basic checks for redefinition.
This adds some checks for redefined classes. Currently it checks that
the transformed class has the same name, interfaces, and access flags.
Other checks will be added in the future.
Test: mma -j40 test-art-host
Change-Id: Iaa94e9e8688db1985d15f27acf3ddb53908a1c8b
Nicolas Geoffray [Mon, 9 Jan 2017 14:02:45 +0000 (14:02 +0000)]
The HBoundsCheck should be the index input of String.charAt.
Otherwise, the charAt call may be licmed but the bounds check
stay in the loop.
bug:
33909430
bug:
28330359
Test: 632-checker-char-at-bounds
Change-Id: I3cb749785c26ff8a016a7103899e9b19a24d5022
Andreas Gampe [Mon, 9 Jan 2017 19:38:04 +0000 (11:38 -0800)]
ART: Add method code item functions
Add support for GetArgumentsSize, GetMaxLocals and GetMethodLocation
support. Add tests.
Bug:
34163329
Test: m test-art-host-run-test-910-methods
Change-Id: I14b5d02bf0513dc5a8d3f4ea17c849ab08b8554a
Treehugger Robot [Mon, 9 Jan 2017 21:04:09 +0000 (21:04 +0000)]
Merge "ART: Change no-image run-test dependency"
Hiroshi Yamauchi [Mon, 9 Jan 2017 20:26:01 +0000 (20:26 +0000)]
Merge "Simplify the collector names."
Treehugger Robot [Mon, 9 Jan 2017 20:25:59 +0000 (20:25 +0000)]
Merge "ART: Add trivial implementation of extensions"
Andreas Gampe [Mon, 9 Jan 2017 18:50:17 +0000 (10:50 -0800)]
ART: Add trivial implementation of extensions
We do not need extension support.
Bug:
31455788
Test: m test-art-host
Change-Id: I40e9435ad3ffee83070c522a1938509db4cc889e
Andreas Gampe [Mon, 9 Jan 2017 18:42:25 +0000 (10:42 -0800)]
ART: Change no-image run-test dependency
Let the no-image run-test Make configuration depend on the pic
image for prebuilding. This is what the run-test/run-test-jar
configuration will use.
Test: m ART_TEST_RUN_TEST_NO_IMAGE=true test-art-host && rm $ANDROID_HOST_OUT/framework/x86*/* && m ART_TEST_RUN_TEST_NO_IMAGE=true test-art-host
Change-Id: I5c02e76d5e51a63416705a58f733135b688158c2
Treehugger Robot [Mon, 9 Jan 2017 17:53:25 +0000 (17:53 +0000)]
Merge "ART: Add GetObjectSize and GetObjectHashCode"
Anton Kirilov [Fri, 6 Jan 2017 13:33:42 +0000 (13:33 +0000)]
Fix some issues reported by Valgrind
* Update the target suppression file.
* Disable the detection of mismatched free() / delete / delete []
calls, since it results in a lot of false positives (a known
Valgrind limitation associated with asymmetric inlining of
operator new() and operator delete()).
* Avoid a memory leak in the code generator tests, caused by the
fact that the VIXL-based ARM code generator does not always use
the arena allocator.
* Fix an access to uninitialized memory.
Test: m valgrind-test-art-target
Test: valgrind --leak-check=full --show-mismatched-frees=no \
--ignore-range-below-sp=1024-1 \
--suppressions=valgrind-target-suppressions.txt \
dalvikvm ...
Change-Id: I891a3247aa9828226b4e62c69d6e1c8398d757b8
rock.yeh [Fri, 23 Dec 2016 07:11:13 +0000 (15:11 +0800)]
Use relative futex timeout in SuspendAllInternal.
This erroneously used an absolute timeout for FUTEX_WAIT, potentially
causing it to block for MUCH longer than 10 seconds.
http://man7.org/linux/man-pages/man2/futex.2.html
Note: for FUTEX_WAIT, timeout is interpreted as a relative value.
Error case:
kernel time: 15842.476344
nsec:
31694950164731
12-22 20:25:48.020043 0 0 F [15842.476344][HeapTaskDaemon:3008]
futex_wait
00000070fcdf8980 1 1
31694950164731
Normal case:
kernel time: 15842.476344
nsec:
15842476344
Block backtrace:
"HeapTaskDaemon" sysTid=3008
#00 pc
000000000001bcac /system/lib64/libc.so (syscall+28)
#01 pc
0000000000461db0 /system/lib64/libart.so
(_ZN3art10ThreadList18SuspendAllInternalEPNS_6ThreadES2_S2_b+720)
#02 pc
000000000046249c /system/lib64/libart.so
(_ZN3art10ThreadList10SuspendAllEPKcb+532)
#03 pc
00000000001e8fc8 /system/lib64/libart.so
(_ZN3art2gc9collector9MarkSweep9RunPhasesEv+232)
#04 pc
00000000001e1694 /system/lib64/libart.so
(_ZN3art2gc9collector16GarbageCollector3RunENS0_7GcCauseEb+332)
#05 pc
0000000000211500 /system/lib64/libart.so
(_ZN3art2gc4Heap22CollectGarbageInternalENS0_9collector6GcTypeENS0_7Gc
CauseEb+3048)
#06 pc
0000000000218acc /system/lib64/libart.so
(_ZN3art2gc4Heap12ConcurrentGCEPNS_6ThreadEb+124)
#07 pc
000000000021fbf4 /system/lib64/libart.so
(_ZN3art2gc4Heap16ConcurrentGCTask3RunEPNS_6ThreadE+36)
This is a fix patch log and each timeout log interval of 10 seconds:
12-27 03:27:46.153744 1631 1713 E art : Unexpected time out during
suspend all.
12-27 03:27:56.154401 1631 1713 E art : Unexpected time out during
suspend all.
12-27 03:28:06.154956 1631 1713 E art : Unexpected time out during
suspend all.
Nicolas Geoffray [Sat, 7 Jan 2017 13:46:59 +0000 (13:46 +0000)]
Merge "Find the classpath boundary for being assignable to an interface."
Nicolas Geoffray [Wed, 21 Dec 2016 16:54:52 +0000 (16:54 +0000)]
Find the classpath boundary for being assignable to an interface.
Test: verifier_deps_test, test-art-host
Change-Id: Icab3a5a9f94f6a38fa8ef320f93ac14691a732d3
Dan Willemsen [Sat, 7 Jan 2017 07:14:05 +0000 (23:14 -0800)]
Remove oat-target* rules
This really only did anything for the 'mm' case, and was broken:
* Didn't find any apps (needed to search app/*/*.apk)
* Attempted to build framework/pm.odex instead of
framework/oat/arm/pm.odex.
* Caused Kati to re-read all the makefiles any time the contents of
system/app or system/framework changed.
Test: m -j installclean; m -j a (repeat until kati doesn't regenerate)
m -j pmlib; m -j a (doesn't regenerate)
Change-Id: Icca6556f0de952b8fbc740433272766a1ce5cdc9
Andreas Gampe [Sat, 7 Jan 2017 02:00:20 +0000 (18:00 -0800)]
ART: Add GetObjectSize and GetObjectHashCode
Add support for these two functions. Add tests.
Bug:
31684578
Test: m test-art-host-run-test-920-objects
Change-Id: If5dfb5aedddee47e5d739b0c56c7d264ba6e2d51
Treehugger Robot [Sat, 7 Jan 2017 02:20:28 +0000 (02:20 +0000)]
Merge "Revert "Revert "Create test for field access in obsolete methods."""
Treehugger Robot [Sat, 7 Jan 2017 02:07:08 +0000 (02:07 +0000)]
Merge "Make GetErrorName allocate the output buffer."
Treehugger Robot [Sat, 7 Jan 2017 01:55:10 +0000 (01:55 +0000)]
Merge "ART: Add GetClassLoader"
Andreas Gampe [Fri, 6 Jan 2017 23:50:55 +0000 (15:50 -0800)]
ART: Add GetClassLoader
Add support for GetClassLoader. Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I629ec2a1f4843bc3b28e40111805e250be44d993
Andreas Gampe [Fri, 6 Jan 2017 23:49:35 +0000 (23:49 +0000)]
Merge "ART: Add GetImplementedInterfaces"
Andreas Gampe [Fri, 6 Jan 2017 23:03:37 +0000 (23:03 +0000)]
Merge changes Ia14276d3,I7f063806
* changes:
ART: Add GetClassModifiers
ART: Add GetClassMethods
Hiroshi Yamauchi [Fri, 6 Jan 2017 23:03:26 +0000 (15:03 -0800)]
Simplify the collector names.
To make it easier to distinguish the collector names in the GC logs.
Bug:
12687968
Test: test-art-host with CC.
Change-Id: I23d06a4f8f4b0447d0904c0cb813e080277a2e9e
Alex Light [Fri, 6 Jan 2017 22:44:23 +0000 (14:44 -0800)]
Make GetErrorName allocate the output buffer.
Previously we were simply returning a static pointer which isn't
allowed by the spec.
Test: mma -j40 test-art-host
Change-Id: I84cfb81e58d479c7c0d5ee352f5b005183895c82
Alex Light [Fri, 6 Jan 2017 16:58:19 +0000 (16:58 +0000)]
Revert "Revert "Create test for field access in obsolete methods.""
This reverts commit
b710a0e0e32193d345a4bfeb93649de2503489be.
Reason for revert: Fixed test issue
Test: ART_TEST_RUN_TEST_NDEBUG=true mma -j40 test-art-host
Change-Id: I30b758a61afa0eb132af239e8071ea79eab58ac1
Andreas Gampe [Fri, 6 Jan 2017 22:20:39 +0000 (14:20 -0800)]
ART: Add GetImplementedInterfaces
Add support for GetImplementedInterfaces. Add a test. Add cleanup
to some existing tests.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Ic75bf3bba3b568232178d8525501122826b5a430
Andreas Gampe [Fri, 6 Jan 2017 21:07:19 +0000 (13:07 -0800)]
ART: Add GetClassModifiers
Add support for GetClassModifiers. Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Ia14276d3139503ce35f7684bd846b371e9eafa25
Treehugger Robot [Fri, 6 Jan 2017 21:07:06 +0000 (21:07 +0000)]
Merge "Also use ThreadList::Dump() in empty checkpoint timeout."
Andreas Gampe [Fri, 6 Jan 2017 19:36:35 +0000 (11:36 -0800)]
ART: Add GetClassMethods
Add GetClassMethods support. Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I7f063806671db5a5a69f7064e61f950b246f0b86
Treehugger Robot [Fri, 6 Jan 2017 19:58:30 +0000 (19:58 +0000)]
Merge "ART: Add GetClassStatus"
Treehugger Robot [Fri, 6 Jan 2017 18:59:54 +0000 (18:59 +0000)]
Merge changes Id7509ef1,Id33b8c54,I2f9e5c62
* changes:
ART: Add GetClassFields support
ART: Add Field methods
ART: Add IsInterface and IsArrayClass support
Hiroshi Yamauchi [Fri, 6 Jan 2017 18:45:17 +0000 (10:45 -0800)]
Also use ThreadList::Dump() in empty checkpoint timeout.
After dumping runnable threading that haven't responded to the empty
checkpoint request, use ThreadList::Dump() to try to dump the other
threads, noting that it may get stuck, but it's the end of logging
anyway. This should help diagnose the timeout better as we would be
able to see more threads.
Bug:
33006388
Bug:
12687968
Test: test-art-host with CC.
Change-Id: I6936098949d53dbc74af11fd5d796e1524581468
Hiroshi Yamauchi [Fri, 6 Jan 2017 18:32:19 +0000 (18:32 +0000)]
Merge "Avoid using ThreadList::Dump() in empty checkpoint timeout."
Andreas Gampe [Fri, 6 Jan 2017 17:12:49 +0000 (09:12 -0800)]
ART: Add GetClassStatus
Add support for GetClassStatus. Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Id8a3c3f4e4855a0c9bd87976a1cc0fad2db13f25
Andreas Gampe [Thu, 5 Jan 2017 23:21:34 +0000 (15:21 -0800)]
ART: Add GetClassFields support
Add GetClassFields support. Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: Id7509ef10ec9c19b54b7db8637729556b91273e5
Andreas Gampe [Fri, 6 Jan 2017 01:23:45 +0000 (17:23 -0800)]
ART: Add Field methods
Add GetFieldName, GetFieldDeclaringClass, GetFieldModifiers
and IsFieldSynthetic support. Add tests.
Bug:
34113943
Test: m test-art-host-run-test-918-fields
Change-Id: Id33b8c54c250f73f0658ec45ccb2b55eccb37623
Andreas Gampe [Thu, 5 Jan 2017 22:42:13 +0000 (14:42 -0800)]
ART: Add IsInterface and IsArrayClass support
Add support for these two required calls. Add a test.
Bug:
31684578
Test: m test-art-host-run-test-912-classes
Change-Id: I2f9e5c62dd4c3d7f29aaf3dd08f1297aa3b2fd8b
Treehugger Robot [Fri, 6 Jan 2017 16:19:51 +0000 (16:19 +0000)]
Merge "Remove the IsInDexCache flag from HLoadString."
Vladimir Marko [Fri, 6 Jan 2017 14:43:11 +0000 (14:43 +0000)]
Remove the IsInDexCache flag from HLoadString.
This flag was obsolete and always false.
Test: m test-art-host
Change-Id: Iabefc068908ff4f994b63e7e18a2a27c25a0919e
Orion Hodson [Fri, 6 Jan 2017 09:04:47 +0000 (09:04 +0000)]
Merge "ART: Make method handle runtime code callable from compiler."
Treehugger Robot [Fri, 6 Jan 2017 09:04:18 +0000 (09:04 +0000)]
Merge "Remove bogus DCHECK."
Nicolas Geoffray [Fri, 6 Jan 2017 09:03:36 +0000 (09:03 +0000)]
Merge "ARM: VIXL32: Fix crash in Exchange for stack slots."
Nicolas Geoffray [Fri, 6 Jan 2017 09:00:15 +0000 (09:00 +0000)]
Merge "Actually record arrays in classpath."
Orion Hodson [Wed, 7 Dec 2016 11:35:37 +0000 (11:35 +0000)]
ART: Make method handle runtime code callable from compiler.
Most of this change is moving the existing method handles code, but it
also introduces a new header file, common_dex_operations.h, that has
some operations taken from interpreter_common.{h,cc} that are also used
by method handles (perform call, set field, get field).
Bug:
30550796
Test: m test-art-host
Change-Id: I2235e13770a5562950f2767f65a25ca273479150
Treehugger Robot [Fri, 6 Jan 2017 03:59:24 +0000 (03:59 +0000)]
Merge "Prevent moving GC from running during redefinition."
Alex Light [Fri, 6 Jan 2017 01:53:00 +0000 (17:53 -0800)]
Prevent moving GC from running during redefinition.
This could cause a deadlock during deoptimization.
Test: ART_USE_READ_BARRIER=true ART_READ_BARRIER_TYPE=TABLELOOKUP mma -j40 test-art-host
Change-Id: I57e4f1a50709bf4a1817227913e61f3ef434d04a
Hiroshi Yamauchi [Thu, 5 Jan 2017 04:32:57 +0000 (20:32 -0800)]
Avoid using ThreadList::Dump() in empty checkpoint timeout.
ThreadList::Dump() that uses a checkpoint to dump threads may get
stuck when an empty checkpoint gets stuck and isn't useful when
debugging an empty checkpoint timeout. Instead, directly use
Thread::Dump() for each runnable thread that isn't responding to an
empty checkpoint request.
Bug:
33006388
Bug:
12687968
Test: test-art-host with CC.
Change-Id: If07a205786d469eec9b1f587485c80f54fb84c4d
Alex Light [Fri, 6 Jan 2017 00:46:17 +0000 (00:46 +0000)]
Merge "Revert "Revert "Cleanup jvmti tests"""
Mathieu Chartier [Thu, 5 Jan 2017 23:59:14 +0000 (23:59 +0000)]
Merge "Add some code info checking in GetCalleeSaveMethodCaller"
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"
Mathieu Chartier [Thu, 5 Jan 2017 18:17:55 +0000 (10:17 -0800)]
Add some code info checking in GetCalleeSaveMethodCaller
Will print info if the memory region is too small for the stack maps.
Test: test-art-host
Bug:
33924573
Change-Id: I03e0151724d3a0933f3bef004e0d16ba1c6134c4
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 15:23:19 +0000 (15:23 +0000)]
Actually record arrays in classpath.
With https://android-review.googlesource.com/#/c/316151/,
I was under the wrong impression arrays all have the same
access flags. They actually have the visibility of the inner
most component type.
Therefore, we still need to record visibility of array types whose
innermost component type is in the classpath.
Test: verifier_deps_test
Change-Id: If7b1004efb679e320330258f42ced83b8eedae87
Artem Serov [Thu, 29 Dec 2016 16:21:49 +0000 (16:21 +0000)]
ARM: VIXL32: Fix crash in Exchange for stack slots.
In ParallelMoveResolverARMVIXL::Exchange(int mem1, int mem2)
scratch general purpose register was used without any spilling
(like in StoreToOffset) which led to lack of scratch register
for VLDR with big offset. Now it uses two scratch S-registers.
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: I0416a69e281d09a04dd1689efa5a8c1994c82638
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
Nicolas Geoffray [Wed, 4 Jan 2017 11:49:00 +0000 (11:49 +0000)]
Remove bogus DCHECK.
The code may be executed concurrently by multiple threads,
so the flag may already be set.
Test: test-art-host
bug:
34074968
Change-Id: I162b90a853ce53e6b7063754bbfce5d68cffc82a
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."