OSDN Git Service

android-x86/art.git
7 years agoMerge "Revert "Revert "Cleanup jvmti tests"""
Alex Light [Fri, 6 Jan 2017 00:50:23 +0000 (00:50 +0000)]
Merge "Revert "Revert "Cleanup jvmti tests"""
am: 9890a5b579

Change-Id: I44a27f4655bf378c007d7f8814d251e3d04cce77

7 years agoMerge "Revert "Revert "Cleanup jvmti tests"""
Alex Light [Fri, 6 Jan 2017 00:46:17 +0000 (00:46 +0000)]
Merge "Revert "Revert "Cleanup jvmti tests"""

7 years agoMerge "Add some code info checking in GetCalleeSaveMethodCaller"
Mathieu Chartier [Fri, 6 Jan 2017 00:07:18 +0000 (00:07 +0000)]
Merge "Add some code info checking in GetCalleeSaveMethodCaller"
am: 6980dc54b9

Change-Id: Ib030b51bb3cc3f38e9e3693dcf92260641b45b3d

7 years agoMerge "Add some code info checking in GetCalleeSaveMethodCaller"
Mathieu Chartier [Thu, 5 Jan 2017 23:59:14 +0000 (23:59 +0000)]
Merge "Add some code info checking in GetCalleeSaveMethodCaller"

7 years agoRevert "Revert "Cleanup jvmti tests""
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

7 years agoMerge "Reduce the number of fences needed for monitors"
Hans Boehm [Thu, 5 Jan 2017 22:20:40 +0000 (22:20 +0000)]
Merge "Reduce the number of fences needed for monitors"
am: 8ba6549565

Change-Id: Id737e3646ce29c2d90a0043d03abb09d220960c4

7 years agoMerge "Reduce the number of fences needed for monitors"
Hans Boehm [Thu, 5 Jan 2017 22:15:30 +0000 (22:15 +0000)]
Merge "Reduce the number of fences needed for monitors"

7 years agoAdd some code info checking in GetCalleeSaveMethodCaller
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

7 years agoMerge "Tests on FP Math.abs()"
Aart Bik [Thu, 5 Jan 2017 20:44:35 +0000 (20:44 +0000)]
Merge "Tests on FP Math.abs()"
am: 8a26281ead

Change-Id: I0264a6f44684e53e58830851a448f9f0e006f50c

7 years agoMerge "Tests on FP Math.abs()"
Aart Bik [Thu, 5 Jan 2017 20:34:32 +0000 (20:34 +0000)]
Merge "Tests on FP Math.abs()"

7 years agoMerge "Fix unquitable apps when debug enabled."
Tao Wu [Thu, 5 Jan 2017 19:20:29 +0000 (19:20 +0000)]
Merge "Fix unquitable apps when debug enabled."
am: ec107997ab

Change-Id: Ibb5a1ef1ae1a649fbd1aeb48e9337c3e56cb6fa0

7 years agoMerge "Fix unquitable apps when debug enabled."
Treehugger Robot [Thu, 5 Jan 2017 19:13:38 +0000 (19:13 +0000)]
Merge "Fix unquitable apps when debug enabled."

7 years agoMerge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""
Alex Light [Thu, 5 Jan 2017 18:21:25 +0000 (18:21 +0000)]
Merge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""
am: 16722603e0

Change-Id: Ib787af7eb142b3f37f9745fce0c19cb2b067c5c4

7 years agoMerge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""
Treehugger Robot [Thu, 5 Jan 2017 18:16:14 +0000 (18:16 +0000)]
Merge "Revert "Revert "Revert "Revert "Basic obsolete methods support"""""

7 years agoTests on FP Math.abs()
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

7 years agoMerge "MIPS64: Implement table-based packed switch"
Alexey Frunze [Thu, 5 Jan 2017 17:44:51 +0000 (17:44 +0000)]
Merge "MIPS64: Implement table-based packed switch"
am: f67dadb555

Change-Id: I33f1422cc5ca728704891da83151ca94d1a983b2

7 years agoMerge "MIPS64: Implement table-based packed switch"
Treehugger Robot [Thu, 5 Jan 2017 17:37:56 +0000 (17:37 +0000)]
Merge "MIPS64: Implement table-based packed switch"

7 years agoMerge "Remove racy DCHECK on string dex cache."
Nicolas Geoffray [Thu, 5 Jan 2017 17:02:18 +0000 (17:02 +0000)]
Merge "Remove racy DCHECK on string dex cache."
am: cda4b75615

Change-Id: Ie61f6bf1922ad441dc6383a0beb4f357521a2094

7 years agoMerge "Remove racy DCHECK on string dex cache."
Treehugger Robot [Thu, 5 Jan 2017 16:55:53 +0000 (16:55 +0000)]
Merge "Remove racy DCHECK on string dex cache."

7 years agoRemove 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

7 years agoMerge "Refine receiver type when inlining based on inline caches."
Nicolas Geoffray [Thu, 5 Jan 2017 15:01:08 +0000 (15:01 +0000)]
Merge "Refine receiver type when inlining based on inline caches."
am: 168768d203

Change-Id: I827455011a6da3f8db6392da34b29c065c16ba6a

7 years agoMerge "Refine receiver type when inlining based on inline caches."
Nicolas Geoffray [Thu, 5 Jan 2017 14:57:29 +0000 (14:57 +0000)]
Merge "Refine receiver type when inlining based on inline caches."

7 years agoMerge "MIPS32: java.lang.String.getChars"
Nicolas Geoffray [Thu, 5 Jan 2017 13:34:02 +0000 (13:34 +0000)]
Merge "MIPS32: java.lang.String.getChars"
am: 8174621224

Change-Id: I27aba6272c9c3d1af12af308089b4e0fbd72c75d

7 years agoMerge "MIPS32: java.lang.String.getChars"
Nicolas Geoffray [Thu, 5 Jan 2017 13:27:14 +0000 (13:27 +0000)]
Merge "MIPS32: java.lang.String.getChars"

7 years agoRefine receiver type when inlining based on inline caches.
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

7 years agoMerge "Revert "Disable 626-const-class-linking for JIT.""
Vladimir Marko [Thu, 5 Jan 2017 12:50:59 +0000 (12:50 +0000)]
Merge "Revert "Disable 626-const-class-linking for JIT.""
am: f0bfd75c19

Change-Id: Ia712e881e655532f5217fdd4d1347806c7b92ef6

7 years agoMerge "Revert "Disable 626-const-class-linking for JIT.""
Vladimir Marko [Thu, 5 Jan 2017 12:45:35 +0000 (12:45 +0000)]
Merge "Revert "Disable 626-const-class-linking for JIT.""

7 years agoMerge "Fix incorrect string hash value extension during cross-compilation."
Alexey Grebenkin [Thu, 5 Jan 2017 12:20:59 +0000 (12:20 +0000)]
Merge "Fix incorrect string hash value extension during cross-compilation."
am: efe703fa49

Change-Id: Id4a007750b8da2493c91b8177f5673c451df1804

7 years agoMerge "Fix incorrect string hash value extension during cross-compilation."
Treehugger Robot [Thu, 5 Jan 2017 12:15:07 +0000 (12:15 +0000)]
Merge "Fix incorrect string hash value extension during cross-compilation."

7 years agoMerge "Limit Jack threads during tests"
Sebastien Hertz [Thu, 5 Jan 2017 10:36:20 +0000 (10:36 +0000)]
Merge "Limit Jack threads during tests"
am: 77e9bddee9

Change-Id: Ie998180dd59076fed3211c7b4aefbe22546ef872

7 years agoMerge "Limit Jack threads during tests"
Sebastien Hertz [Thu, 5 Jan 2017 10:28:56 +0000 (10:28 +0000)]
Merge "Limit Jack threads during tests"

7 years agoLimit 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

7 years agoReduce the number of fences needed for monitors
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

7 years agoMerge "ART: Remove dequicken map from VerifiedMethod"
Andreas Gampe [Wed, 4 Jan 2017 23:05:04 +0000 (23:05 +0000)]
Merge "ART: Remove dequicken map from VerifiedMethod"
am: 18f7ef3dc0

Change-Id: I4464445f1b3c201249cd40e254d50c62235b0d84

7 years agoMerge "ART: Remove dequicken map from VerifiedMethod"
Treehugger Robot [Wed, 4 Jan 2017 22:59:02 +0000 (22:59 +0000)]
Merge "ART: Remove dequicken map from VerifiedMethod"

7 years agoART: 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

7 years agoMerge "Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot...
Roland Levillain [Wed, 4 Jan 2017 15:26:32 +0000 (15:26 +0000)]
Merge "Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves."""
am: 001cd47ddd

Change-Id: I58e889a010f6683d329755626bc8187ab8b9612a

7 years agoMerge "Revert "Revert "Avoid scratch register exhaustion during ARM64 stack slot...
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."""

7 years agoMerge "Support non-exact upper bound of HBoundType."
Nicolas Geoffray [Wed, 4 Jan 2017 12:41:23 +0000 (12:41 +0000)]
Merge "Support non-exact upper bound of HBoundType."
am: b28c8749a5

Change-Id: Id64939c8ed1c9920b314a2d11ef2af56a9bb03df

7 years agoRevert "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

7 years agoMerge "Support non-exact upper bound of HBoundType."
Nicolas Geoffray [Wed, 4 Jan 2017 12:38:29 +0000 (12:38 +0000)]
Merge "Support non-exact upper bound of HBoundType."

7 years agoMerge "Do not record dependencies on arrays."
Nicolas Geoffray [Wed, 4 Jan 2017 12:12:53 +0000 (12:12 +0000)]
Merge "Do not record dependencies on arrays."
am: 88268f08ad

Change-Id: I60d860cd6a023e5a2b824396d9ea3d709fa41b09

7 years agoMerge "Do not record dependencies on arrays."
Treehugger Robot [Wed, 4 Jan 2017 12:10:41 +0000 (12:10 +0000)]
Merge "Do not record dependencies on arrays."

7 years agoMerge "MIPS64: Drop redundant sign-extensions in integer conversions"
Goran Jakovljevic [Wed, 4 Jan 2017 11:50:22 +0000 (11:50 +0000)]
Merge "MIPS64: Drop redundant sign-extensions in integer conversions"
am: 6fc063cd8a

Change-Id: I83e6c3904b12dd6e143129825d7950497cf4069c

7 years agoMerge "MIPS64: Drop redundant sign-extensions in integer conversions"
Treehugger Robot [Wed, 4 Jan 2017 11:47:50 +0000 (11:47 +0000)]
Merge "MIPS64: Drop redundant sign-extensions in integer conversions"

7 years agoMerge "MIPS32: Don't always do a null test in MarkGCCard"
Goran Jakovljevic [Wed, 4 Jan 2017 11:34:51 +0000 (11:34 +0000)]
Merge "MIPS32: Don't always do a null test in MarkGCCard"
am: 4ca40e89aa

Change-Id: Ic8bdf1a5a7d66b6ed9ef19a8e7f7000ec26c2e85

7 years agoMerge "MIPS64: Improve integer comparison with constants"
Goran Jakovljevic [Wed, 4 Jan 2017 11:32:53 +0000 (11:32 +0000)]
Merge "MIPS64: Improve integer comparison with constants"
am: 7ee9ee9921

Change-Id: I00bd014b5340d5509b96a205a692ae87211bf66b

7 years agoMerge "MIPS32: Don't always do a null test in MarkGCCard"
Treehugger Robot [Wed, 4 Jan 2017 11:31:52 +0000 (11:31 +0000)]
Merge "MIPS32: Don't always do a null test in MarkGCCard"

7 years agoMerge "MIPS64: Improve integer comparison with constants"
Treehugger Robot [Wed, 4 Jan 2017 11:30:15 +0000 (11:30 +0000)]
Merge "MIPS64: Improve integer comparison with constants"

7 years agoMerge changes from topic 'VIXLUpdate'
Nicolas Geoffray [Wed, 4 Jan 2017 10:09:32 +0000 (10:09 +0000)]
Merge changes from topic 'VIXLUpdate'
am: 059802455e

Change-Id: I5b85d6ef53d47d1a5fed422a96795fb81de0a063

7 years agoARM: VIXL32: Use a default code buffer capacity of 1Kb.
Scott Wakeling [Wed, 4 Jan 2017 10:09:28 +0000 (10:09 +0000)]
ARM: VIXL32: Use a default code buffer capacity of 1Kb.
am: f8d19c2852

Change-Id: I2619d712f7af0127692407bf37a2968c34b868ea

7 years agoART: VIXL32: Fix assembler test after VIXL update.
Artem Serov [Wed, 4 Jan 2017 10:09:19 +0000 (10:09 +0000)]
ART: VIXL32: Fix assembler test after VIXL update.
am: f2665fa6e5

Change-Id: I5c6e97bbcdb56aaf66764dd8837fefdbb0270b1e

7 years agoMerge "MIPS64: Implement branchless HCondition for floats"
Nicolas Geoffray [Wed, 4 Jan 2017 10:08:04 +0000 (10:08 +0000)]
Merge "MIPS64: Implement branchless HCondition for floats"
am: e2157fb29e

Change-Id: I5cd74fb1b95b2e20c8b3e27918fbf3fb4a6d8b4b

7 years agoMerge "Disable libcore test that requires IPv6"
Yi Kong [Wed, 4 Jan 2017 10:07:23 +0000 (10:07 +0000)]
Merge "Disable libcore test that requires IPv6"
am: 0ec9ac0a5f

Change-Id: Ie611e75ecf8659a4cf8b71f33ac05732607ccf51

7 years agoMerge changes from topic 'VIXLUpdate'
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.

7 years agoMerge "MIPS64: Implement branchless HCondition for floats"
Nicolas Geoffray [Wed, 4 Jan 2017 10:04:08 +0000 (10:04 +0000)]
Merge "MIPS64: Implement branchless HCondition for floats"

7 years agoMerge "Disable libcore test that requires IPv6"
Yi Kong [Wed, 4 Jan 2017 10:03:00 +0000 (10:03 +0000)]
Merge "Disable libcore test that requires IPv6"

7 years agoDisable 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

7 years agoMerge "Clean up VerifiedMethod."
Nicolas Geoffray [Tue, 3 Jan 2017 22:47:03 +0000 (22:47 +0000)]
Merge "Clean up VerifiedMethod."
am: b1c41c2431

Change-Id: Ibfb35a9eb02b17f77371a573658ada399bf43b0a

7 years agoMerge "Clean up VerifiedMethod."
Treehugger Robot [Tue, 3 Jan 2017 22:33:12 +0000 (22:33 +0000)]
Merge "Clean up VerifiedMethod."

7 years agoClean 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

7 years agoMerge "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves.""
Nicolas Geoffray [Tue, 3 Jan 2017 21:42:29 +0000 (21:42 +0000)]
Merge "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves.""
am: db577b6911

Change-Id: If6d1d1c3bedfde8378425b519dd732cb494876ee

7 years agoMerge "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves.""
Nicolas Geoffray [Tue, 3 Jan 2017 21:35:22 +0000 (21:35 +0000)]
Merge "Revert "Avoid scratch register exhaustion during ARM64 stack slot moves.""

7 years agoRevert "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

7 years agoMerge "MIPS64: Align register spills on 8-byte boundaries in slow paths"
Nicolas Geoffray [Tue, 3 Jan 2017 20:51:26 +0000 (20:51 +0000)]
Merge "MIPS64: Align register spills on 8-byte boundaries in slow paths"
am: 595375fc44

Change-Id: Ia4e9e9a65f9d3c48532983bff3205acc6590e0e3

7 years agoMerge "MIPS64: Align register spills on 8-byte boundaries in slow paths"
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"

7 years agoMIPS32: java.lang.String.getChars
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

7 years agoMerge "Avoid scratch register exhaustion during ARM64 stack slot moves."
Roland Levillain [Tue, 3 Jan 2017 15:51:38 +0000 (15:51 +0000)]
Merge "Avoid scratch register exhaustion during ARM64 stack slot moves."
am: 00797355fa

Change-Id: I6edabfc4aa252d8308f6e0baa6b81887fa4357e3

7 years agoMerge "Avoid scratch register exhaustion during ARM64 stack slot moves."
Roland Levillain [Tue, 3 Jan 2017 15:45:44 +0000 (15:45 +0000)]
Merge "Avoid scratch register exhaustion during ARM64 stack slot moves."

7 years agoAvoid 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

7 years agoMerge "MIPS64: java.lang.String.getChars"
Chris Larsen [Tue, 3 Jan 2017 11:23:20 +0000 (11:23 +0000)]
Merge "MIPS64: java.lang.String.getChars"
am: 66e3919bc4

Change-Id: I1439b994fbd909923c02e16936dc5a60dfb88ec3

7 years agoMerge "MIPS64: java.lang.String.getChars"
Treehugger Robot [Tue, 3 Jan 2017 11:13:50 +0000 (11:13 +0000)]
Merge "MIPS64: java.lang.String.getChars"

7 years agoMIPS64: Implement branchless HCondition for floats
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

7 years agoMIPS64: Drop redundant sign-extensions in integer conversions
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

7 years agoMIPS64: Improve integer comparison with constants
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

7 years agoMIPS32: Don't always do a null test in MarkGCCard
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

7 years agoMerge "Revert "Tests on FP Math.abs()""
Aart Bik [Fri, 23 Dec 2016 00:55:52 +0000 (00:55 +0000)]
Merge "Revert "Tests on FP Math.abs()""
am: 6a14c62270

Change-Id: I210f6454f95bbe5dbeb10323b353f83ba36e7317

7 years agoMerge "Revert "Tests on FP Math.abs()""
Treehugger Robot [Fri, 23 Dec 2016 00:44:54 +0000 (00:44 +0000)]
Merge "Revert "Tests on FP Math.abs()""

7 years agoMIPS64: Align register spills on 8-byte boundaries in slow paths
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

7 years agoRevert "Tests on FP Math.abs()"
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

7 years agoMerge "Tests on FP Math.abs()"
Aart Bik [Thu, 22 Dec 2016 21:09:09 +0000 (21:09 +0000)]
Merge "Tests on FP Math.abs()"
am: 1e33d05866

Change-Id: Iacc0ec3d84e25b840cb1231e1a2ce48bde4bbfc0

7 years agoMerge "Tests on FP Math.abs()"
Treehugger Robot [Thu, 22 Dec 2016 21:00:40 +0000 (21:00 +0000)]
Merge "Tests on FP Math.abs()"

7 years agoARM: VIXL32: Use a default code buffer capacity of 1Kb.
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

7 years agoART: VIXL32: Fix assembler test after VIXL update.
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

7 years agoMIPS64: Implement table-based packed switch
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

7 years agoRevert "Revert "Revert "Revert "Basic obsolete methods support""""
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

7 years agoMerge "Refactored compilation on host to own method. Added dx option."
Aart Bik [Wed, 21 Dec 2016 17:06:30 +0000 (17:06 +0000)]
Merge "Refactored compilation on host to own method. Added dx option."
am: f827804c3d

Change-Id: I1a02265312b3a64e7746522197585212208f8f92

7 years agoMerge "Refactored compilation on host to own method. Added dx option."
Aart Bik [Wed, 21 Dec 2016 16:59:12 +0000 (16:59 +0000)]
Merge "Refactored compilation on host to own method. Added dx option."

7 years agoDo not record dependencies on arrays.
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

7 years agoSupport non-exact upper bound of HBoundType.
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

7 years agoMerge "Update vdex in place if input_vdex_fd == output_vdex_fd"
Nicolas Geoffray [Wed, 21 Dec 2016 14:23:20 +0000 (14:23 +0000)]
Merge "Update vdex in place if input_vdex_fd == output_vdex_fd"
am: cb2ce333ee

Change-Id: I43e2c3bb8a8133493c7d4724c9514a64b22b420c

7 years agoMerge "Update vdex in place if input_vdex_fd == output_vdex_fd"
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"

7 years agoMerge "Point optimizations for vdex."
Nicolas Geoffray [Wed, 21 Dec 2016 13:37:48 +0000 (13:37 +0000)]
Merge "Point optimizations for vdex."
am: bde1168f3b

Change-Id: I8ed430a862b5ab6e2d5d501d11b8242e2c8c62c3

7 years agoMerge "Point optimizations for vdex."
Nicolas Geoffray [Wed, 21 Dec 2016 13:30:48 +0000 (13:30 +0000)]
Merge "Point optimizations for vdex."

7 years agoMerge "Optimize OatWriter when we don't compile any method."
Nicolas Geoffray [Wed, 21 Dec 2016 12:37:13 +0000 (12:37 +0000)]
Merge "Optimize OatWriter when we don't compile any method."
am: 454f339775

Change-Id: I28a6e8d1826d8f71a5109e25391703801324b79a

7 years agoMerge "Optimize OatWriter when we don't compile any method."
Nicolas Geoffray [Wed, 21 Dec 2016 12:30:10 +0000 (12:30 +0000)]
Merge "Optimize OatWriter when we don't compile any method."

7 years agoMerge "Remove soon to be obsolete call kinds for direct calls."
Nicolas Geoffray [Wed, 21 Dec 2016 12:23:44 +0000 (12:23 +0000)]
Merge "Remove soon to be obsolete call kinds for direct calls."
am: 56e2f93699

Change-Id: I2f21012b21068fa4e92a0bb697b741b88024ee12

7 years agoMerge "Remove soon to be obsolete call kinds for direct calls."
Nicolas Geoffray [Wed, 21 Dec 2016 12:17:42 +0000 (12:17 +0000)]
Merge "Remove soon to be obsolete call kinds for direct calls."

7 years agoPoint optimizations for vdex.
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

7 years agoOptimize OatWriter when we don't compile any method.
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