OSDN Git Service

android-x86/art.git
7 years agoMerge "Additional debug logging for bug 33231647."
Vladimir Marko [Thu, 1 Dec 2016 16:11:34 +0000 (16:11 +0000)]
Merge "Additional debug logging for bug 33231647."
am: 6afaa42f50

Change-Id: Ia828c033c0dc304ed95f27caf233a494fbfa92b4

7 years agoMerge "Additional debug logging for bug 33231647."
Vladimir Marko [Thu, 1 Dec 2016 16:00:56 +0000 (16:00 +0000)]
Merge "Additional debug logging for bug 33231647."

7 years agoAdditional debug logging for bug 33231647.
Vladimir Marko [Thu, 1 Dec 2016 14:40:02 +0000 (14:40 +0000)]
Additional debug logging for bug 33231647.

Bug: 33231647
Test: m test-art-host
Change-Id: I5847ce92be5f588852e04ff44fe6eca19f363b93

7 years agoMerge "Mterp/arm64: Add CFI directives."
Vladimir Marko [Thu, 1 Dec 2016 15:01:01 +0000 (15:01 +0000)]
Merge "Mterp/arm64: Add CFI directives."
am: 4e1a19b2e2

Change-Id: Ic153b79632b1a7304a220b9a248f1def324a9d16

7 years agoMerge "Mterp/arm64: Add CFI directives."
Vladimir Marko [Thu, 1 Dec 2016 14:53:54 +0000 (14:53 +0000)]
Merge "Mterp/arm64: Add CFI directives."

7 years agoMterp/arm64: Add CFI directives.
Vladimir Marko [Thu, 1 Dec 2016 11:53:54 +0000 (11:53 +0000)]
Mterp/arm64: Add CFI directives.

Also add two bug 31975598 workarounds to arm64 entrypoints.

Test: m ART_TEST_INTERPRETER=true test-art-target
Bug: 31456348
Bug: 31975598
Change-Id: Ibf64160cf3b3f1ef644ff8f051ab7dc89643acf3

7 years agoMerge "Make sure that const-class linkage is preserved, try again."
Vladimir Marko [Thu, 1 Dec 2016 12:19:22 +0000 (12:19 +0000)]
Merge "Make sure that const-class linkage is preserved, try again."
am: 9036914553

Change-Id: I28498fa06cfcb2a75ce7f87fc60d5ea0f63ef193

7 years agoMerge "Make sure that const-class linkage is preserved, try again."
Treehugger Robot [Thu, 1 Dec 2016 12:11:07 +0000 (12:11 +0000)]
Merge "Make sure that const-class linkage is preserved, try again."

7 years agoMake sure that const-class linkage is preserved, try again.
Vladimir Marko [Wed, 30 Nov 2016 15:31:13 +0000 (15:31 +0000)]
Make sure that const-class linkage is preserved, try again.

This CL causes occasional test failures on the build servers
which we were not able to reproduce locally. So we add some
some additional debug output to help pinpoint the cause.

Bug: 30627598
Bug: 33231647
Test: m test-art-host

This reverts commit 171cf811a1cdf8b1cbc5151505d8630741ce4cf3.

Change-Id: Id56a3f0e86e8212fd547e09c61794401bff47fb0

7 years agoMerge "ARM: VIXL32: A couple of fixes to have more tests passing."
Nicolas Geoffray [Thu, 1 Dec 2016 09:15:58 +0000 (09:15 +0000)]
Merge "ARM: VIXL32: A couple of fixes to have more tests passing."
am: 982e0bf9ed

Change-Id: I57c2634b6508ced3b095aad2a60ca7db0fac9162

7 years agoMerge "Remove the fast path in art_quick_resolve_string."
Nicolas Geoffray [Thu, 1 Dec 2016 09:15:41 +0000 (09:15 +0000)]
Merge "Remove the fast path in art_quick_resolve_string."
am: 85b38bd1fd

Change-Id: I16a4aadc2f34516580d018b0fef8fa5b12a100d5

7 years agoMerge "ARM: VIXL32: A couple of fixes to have more tests passing."
Nicolas Geoffray [Thu, 1 Dec 2016 09:12:31 +0000 (09:12 +0000)]
Merge "ARM: VIXL32: A couple of fixes to have more tests passing."

7 years agoMerge "Remove the fast path in art_quick_resolve_string."
Nicolas Geoffray [Thu, 1 Dec 2016 09:07:35 +0000 (09:07 +0000)]
Merge "Remove the fast path in art_quick_resolve_string."

7 years agoMerge "Move compiled methods to use AtomicMethodRefMap"
Mathieu Chartier [Thu, 1 Dec 2016 02:09:43 +0000 (02:09 +0000)]
Merge "Move compiled methods to use AtomicMethodRefMap"
am: 2ba0c377ec

Change-Id: Ifeb213ca7ca1e27fda641e0b0e537e3d3076a4ef

7 years agoMerge "Move compiled methods to use AtomicMethodRefMap"
Mathieu Chartier [Thu, 1 Dec 2016 02:02:43 +0000 (02:02 +0000)]
Merge "Move compiled methods to use AtomicMethodRefMap"

7 years agoMerge "Optimizations around escape analysis. With tests."
Aart Bik [Thu, 1 Dec 2016 00:53:10 +0000 (00:53 +0000)]
Merge "Optimizations around escape analysis. With tests."
am: 679ba8d5d5

Change-Id: I78b8d4d3da19997158f45d9f2fd75578de87842f

7 years agoMerge "Optimizations around escape analysis. With tests."
Treehugger Robot [Thu, 1 Dec 2016 00:45:27 +0000 (00:45 +0000)]
Merge "Optimizations around escape analysis. With tests."

7 years agoMerge "Infrastructure for obsolete methods"
Alex Light [Wed, 30 Nov 2016 23:12:08 +0000 (23:12 +0000)]
Merge "Infrastructure for obsolete methods"
am: 0fd9a7d678

Change-Id: I1cf9630b5f5363334bc37e6f81b1dc733efa1c66

7 years agoMerge "Infrastructure for obsolete methods"
Alex Light [Wed, 30 Nov 2016 23:01:31 +0000 (23:01 +0000)]
Merge "Infrastructure for obsolete methods"

7 years agoOptimizations around escape analysis. With tests.
Aart Bik [Wed, 16 Nov 2016 18:17:46 +0000 (10:17 -0800)]
Optimizations around escape analysis. With tests.

Details:
(1) added new intrinsics
(2) implemented optimizations
      more !can be null information
      more null check removals
      replace return-this uses with incoming parameter
      remove dead StringBuffer/Builder calls (with escape analysis)
(3) Fixed exposed bug in CanBeMoved()

Performance gain:
This improves CafeineString by about 360%
(removes null check from first loop, eliminates second loop completely)

Test: test-art-host

Change-Id: Iaf16a1b9cab6a7386f43d71c6b51dd59600e81c1

7 years agoMove compiled methods to use AtomicMethodRefMap
Mathieu Chartier [Wed, 23 Nov 2016 21:45:58 +0000 (13:45 -0800)]
Move compiled methods to use AtomicMethodRefMap

Use AtomicMethodRefMap to avoid locking and map costs.

Native RAM usage for interpret-only compile FB:
71270192B -> 64117168B

Perf:
CompilerDriver::GetCompiledMethod: 0.88% -> 0.04%
Mutex::ExclusiveLock: 1.55% -> 1.05%

Bug: 32641252

Test: test-art-host-run-test

Change-Id: I146e7bf2f3328b4fa84f2cc19d591f4da82dccfc

7 years agoMerge "Revert "Revert CC related changes.""
Mathieu Chartier [Wed, 30 Nov 2016 21:08:55 +0000 (21:08 +0000)]
Merge "Revert "Revert CC related changes.""
am: 07ab8831ff

Change-Id: Ibd61ac9cbce9269f084a60eed6b2f71a74c8320f

7 years agoMerge "Revert "Revert CC related changes.""
Mathieu Chartier [Wed, 30 Nov 2016 21:02:25 +0000 (21:02 +0000)]
Merge "Revert "Revert CC related changes.""

7 years agoMerge "Add release fence after copying object"
Mathieu Chartier [Wed, 30 Nov 2016 20:58:24 +0000 (20:58 +0000)]
Merge "Add release fence after copying object"
am: 7874c0c926

Change-Id: Ibf553d90eac400406cb32ba66f6e5be94fb6bf73

7 years agoMerge "Add release fence after copying object"
Mathieu Chartier [Wed, 30 Nov 2016 20:44:42 +0000 (20:44 +0000)]
Merge "Add release fence after copying object"

7 years agoMerge "Add atomic method reference map"
Mathieu Chartier [Wed, 30 Nov 2016 19:55:21 +0000 (19:55 +0000)]
Merge "Add atomic method reference map"
am: 392fb010a7

Change-Id: I29b36b6868d52fb197cfcde7804fd417251a3238

7 years agoMerge "Add atomic method reference map"
Mathieu Chartier [Wed, 30 Nov 2016 19:40:48 +0000 (19:40 +0000)]
Merge "Add atomic method reference map"

7 years agoAdd atomic method reference map
Mathieu Chartier [Wed, 23 Nov 2016 21:28:16 +0000 (13:28 -0800)]
Add atomic method reference map

Less RAM usage and faster than using a normal map with
MethodReference. Speed is faster by avoiding locking and tree
traversal. RAM usage is lower since the map usually had a value
for most method references.

Plan on using for marking methods for dex2dex, storing compiled
methods. Also use the new map for VerifiedMethods (refactoring).

Added test.

Bug: 32641252

Test: test-art-host-run-test

Change-Id: I46268031b8e0daf9be3597145cf6ecf579a039e2

7 years agoRevert "Revert CC related changes."
Mathieu Chartier [Wed, 30 Nov 2016 18:15:41 +0000 (10:15 -0800)]
Revert "Revert CC related changes."

Disable entrypoint switching in ResetQuickAllocEntryPointsForThread
instead of callers. Fixes bug where instrumentation would switch
to non CC entrypoints for non X86_64 architectures causing aborts.

Bug: 31018974

Test: test-art-host
Test: test/run-test 099

This reverts commit 96172e0172c5fca6e9a5ad4b857a24d8c7b064e5.

Change-Id: If206694ae35ff4446c6a8a97bfbcbf2dac35e3f9

7 years agoMerge "ART: Add dex::StringIndex"
Andreas Gampe [Wed, 30 Nov 2016 18:30:45 +0000 (18:30 +0000)]
Merge "ART: Add dex::StringIndex"
am: 211fd80290

Change-Id: Ic693797b08729ba2e400657a8106bec1f8c22190

7 years agoInfrastructure for obsolete methods
Alex Light [Tue, 15 Nov 2016 18:43:06 +0000 (10:43 -0800)]
Infrastructure for obsolete methods

This adds some of the structures and functions needed to eventually
support obsolete methods. Specifically this adds the code to create
and iterate through the obsolete dex-cache maps of classes and
re-organizes the redefinition code to be more sensible and extensible.

Bug: 32369913
Test: ./test/run-test --host 902
Test: mma -j40 test-art-host

Change-Id: I93d60fa66e7512e8b059cdf42af8a56e93ef4bd7

7 years agoMerge "ART: Add dex::StringIndex"
Treehugger Robot [Wed, 30 Nov 2016 18:21:22 +0000 (18:21 +0000)]
Merge "ART: Add dex::StringIndex"

7 years agoAdd release fence after copying object
Mathieu Chartier [Wed, 30 Nov 2016 01:55:19 +0000 (17:55 -0800)]
Add release fence after copying object

Try to ensure that the field CAS in ConcurrentCopying::Process will
never reorder before the object copy.

May fix a bug where null classes are seen.

Test: test-art-host CC

Bug: 33210571
Change-Id: I71ab937b7ca60c88c5f69698731edac6a8f2e91a

7 years agoARM: VIXL32: A couple of fixes to have more tests passing.
Artem Serov [Wed, 23 Nov 2016 14:19:38 +0000 (14:19 +0000)]
ARM: VIXL32: A couple of fixes to have more tests passing.

Fix 103-string-append, CheckCast visitor, stop interpretting
boot.oat, port Floating point compare optimization.

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

7 years agoMerge "Do not call IsMarked on null."
Nicolas Geoffray [Wed, 30 Nov 2016 16:29:21 +0000 (16:29 +0000)]
Merge "Do not call IsMarked on null."
am: 304f2d3a1d

Change-Id: Ic4e6c1fe8f924f82c10c344babdda4330188b81b

7 years agoMerge "ART: Remove duplicate StackVisitor method."
Andreas Gampe [Wed, 30 Nov 2016 16:29:06 +0000 (16:29 +0000)]
Merge "ART: Remove duplicate StackVisitor method."
am: 846ddc7b9f

Change-Id: I7c568e581c87573922bbf30151aa4db1eb7428b1

7 years agoMerge "Do not call IsMarked on null."
Nicolas Geoffray [Wed, 30 Nov 2016 16:23:24 +0000 (16:23 +0000)]
Merge "Do not call IsMarked on null."

7 years agoMerge "ART: Remove duplicate StackVisitor method."
Treehugger Robot [Wed, 30 Nov 2016 16:20:44 +0000 (16:20 +0000)]
Merge "ART: Remove duplicate StackVisitor method."

7 years agoDo not call IsMarked on null.
Nicolas Geoffray [Wed, 30 Nov 2016 16:02:16 +0000 (16:02 +0000)]
Do not call IsMarked on null.

The concurrent collector checks it.

Test: ART_TEST_JIT=true test-art-host-run-test-jit
Change-Id: I02c2462ce1d8f3092f0b2f52f8b6dede8ff4a339

7 years agoMerge "ARM: VIXL32: Implement HClassTableGet Visitor."
Nicolas Geoffray [Wed, 30 Nov 2016 15:55:05 +0000 (15:55 +0000)]
Merge "ARM: VIXL32: Implement HClassTableGet Visitor."
am: 725466c020

Change-Id: I15c8535549261b379e331493c44a0c1e06eb72b3

7 years agoMerge "ARM: VIXL32: Implement HClassTableGet Visitor."
Nicolas Geoffray [Wed, 30 Nov 2016 15:49:40 +0000 (15:49 +0000)]
Merge "ARM: VIXL32: Implement HClassTableGet Visitor."

7 years agoMerge "ARM: VIXL32: Fix some test failures."
Nicolas Geoffray [Wed, 30 Nov 2016 14:54:18 +0000 (14:54 +0000)]
Merge "ARM: VIXL32: Fix some test failures."
am: 07e6a7947f

Change-Id: I58b8126bcb7fa128edc4a726f955157d4c6c6036

7 years agoMerge "ARM: VIXL32: Fix some test failures."
Nicolas Geoffray [Wed, 30 Nov 2016 14:45:14 +0000 (14:45 +0000)]
Merge "ARM: VIXL32: Fix some test failures."

7 years agoMerge "Don't call realpath on a file that may not exist."
Nicolas Geoffray [Wed, 30 Nov 2016 14:41:00 +0000 (14:41 +0000)]
Merge "Don't call realpath on a file that may not exist."
am: 73209a4a64

Change-Id: I3eb3bc9e876f3efdafd738da2d43fa9ad5e8d0be

7 years agoMerge "Don't call realpath on a file that may not exist."
Nicolas Geoffray [Wed, 30 Nov 2016 14:33:31 +0000 (14:33 +0000)]
Merge "Don't call realpath on a file that may not exist."

7 years agoMerge "Move inline caches GC handling in JitCodeCache."
Nicolas Geoffray [Wed, 30 Nov 2016 14:02:29 +0000 (14:02 +0000)]
Merge "Move inline caches GC handling in JitCodeCache."
am: c9e2fc27c5

Change-Id: I9c05d759e5b14bd6ec26870f3fff7ecd4817bedf

7 years agoMerge "Move inline caches GC handling in JitCodeCache."
Nicolas Geoffray [Wed, 30 Nov 2016 13:57:30 +0000 (13:57 +0000)]
Merge "Move inline caches GC handling in JitCodeCache."

7 years agoMerge "Revert CC related changes."
Nicolas Geoffray [Wed, 30 Nov 2016 13:50:27 +0000 (13:50 +0000)]
Merge "Revert CC related changes."
am: 9ebca690fd

Change-Id: I56445fbe00521ea7c47432d1b56f0955de804e41

7 years agoMerge "Revert CC related changes."
Nicolas Geoffray [Wed, 30 Nov 2016 13:40:23 +0000 (13:40 +0000)]
Merge "Revert CC related changes."

7 years agoDon't call realpath on a file that may not exist.
Nicolas Geoffray [Tue, 29 Nov 2016 22:06:50 +0000 (22:06 +0000)]
Don't call realpath on a file that may not exist.

Otherwise realpath prints an error message.

bug: 25658944
Change-Id: I63145c3d955e088e53708d8c6add945e6eab6654

7 years agoRevert CC related changes.
Nicolas Geoffray [Wed, 30 Nov 2016 11:52:19 +0000 (11:52 +0000)]
Revert CC related changes.

Revert: "X86_64: Add allocation entrypoint switching for CC is_marking"
Revert: "Fix mips build in InitEntryPoints"
Revert: "Fix mac build in ResetQuickAllocEntryPoints"

Test: test-art-target-run-test
Change-Id: If38d44edf8c5def5c4d8c9419e4af0cd8d3be724

7 years agoMerge "Don't use ashmen when kIsTargetLinux is set."
Nicolas Geoffray [Wed, 30 Nov 2016 10:46:49 +0000 (10:46 +0000)]
Merge "Don't use ashmen when kIsTargetLinux is set."
am: 626b839f88

Change-Id: I8ccc7b148e49ef51e5424d70749d05a21d90ec57

7 years agoMerge "Don't use ashmen when kIsTargetLinux is set."
Nicolas Geoffray [Wed, 30 Nov 2016 10:38:17 +0000 (10:38 +0000)]
Merge "Don't use ashmen when kIsTargetLinux is set."

7 years agoMerge "Improve invalid object logging"
Mathieu Chartier [Wed, 30 Nov 2016 01:13:41 +0000 (01:13 +0000)]
Merge "Improve invalid object logging"
am: f5ba1152d7

Change-Id: Icb2effb6f24f918b1f4b3b7139a18fc05e5133b3

7 years agoMerge "Improve invalid object logging"
Mathieu Chartier [Wed, 30 Nov 2016 01:07:05 +0000 (01:07 +0000)]
Merge "Improve invalid object logging"

7 years agoART: Remove duplicate StackVisitor method.
Andreas Gampe [Wed, 30 Nov 2016 00:52:33 +0000 (16:52 -0800)]
ART: Remove duplicate StackVisitor method.

Remove method that is the same as the older IsShadowFrame and only
used in tests.

Test: m ART_TEST_JIT=true ART_TEST_INTERPRETER=true test-art-host-run-test-454-get-vreg
Test: m ART_TEST_JIT=true ART_TEST_INTERPRETER=true test-art-host-run-test-457-regs
Test: m ART_TEST_JIT=true ART_TEST_INTERPRETER=true test-art-host-run-test-570-checker-osr
Change-Id: Id222d25d5345790b6c500ec8120880a3b9d79986

7 years agoMerge "Added support for android root in dexfuzz."
Aart Bik [Wed, 30 Nov 2016 00:34:39 +0000 (00:34 +0000)]
Merge "Added support for android root in dexfuzz."
am: 10096becf6

Change-Id: I4e27363162486aa63b18b74aca8efe73fb14a52c

7 years agoMerge "Added support for android root in dexfuzz."
Aart Bik [Wed, 30 Nov 2016 00:26:22 +0000 (00:26 +0000)]
Merge "Added support for android root in dexfuzz."

7 years agoMerge "Fix mips build in InitEntryPoints"
Mathieu Chartier [Tue, 29 Nov 2016 23:47:06 +0000 (23:47 +0000)]
Merge "Fix mips build in InitEntryPoints"
am: d7a7c7f3e9

Change-Id: I9de67848af40584fca3af778a0ae92d263b8e191

7 years agoMerge "Fix mips build in InitEntryPoints"
Mathieu Chartier [Tue, 29 Nov 2016 23:38:00 +0000 (23:38 +0000)]
Merge "Fix mips build in InitEntryPoints"

7 years agoFix mips build in InitEntryPoints
Mathieu Chartier [Tue, 29 Nov 2016 23:31:00 +0000 (15:31 -0800)]
Fix mips build in InitEntryPoints

Added missing arg.

Test: Untested
Change-Id: I7bd25203eee92d0424f03ee9fdb9e7079d05d23c

7 years agoDon't use ashmen when kIsTargetLinux is set.
Nicolas Geoffray [Tue, 29 Nov 2016 21:49:43 +0000 (21:49 +0000)]
Don't use ashmen when kIsTargetLinux is set.

Test: get JIT enabled when running ART.
Change-Id: Ic1c351601d8e85ba6597c3b400fa0094e070a56a

7 years agoMerge "Fix mac build in ResetQuickAllocEntryPoints"
Mathieu Chartier [Tue, 29 Nov 2016 22:27:00 +0000 (22:27 +0000)]
Merge "Fix mac build in ResetQuickAllocEntryPoints"
am: f9c2f88d13

Change-Id: Ieec9eed95858167e263fd2f045385f951e3d9ff9

7 years agoMerge "Fix mac build in ResetQuickAllocEntryPoints"
Mathieu Chartier [Tue, 29 Nov 2016 22:20:24 +0000 (22:20 +0000)]
Merge "Fix mac build in ResetQuickAllocEntryPoints"

7 years agoFix mac build in ResetQuickAllocEntryPoints
Mathieu Chartier [Tue, 29 Nov 2016 22:17:09 +0000 (14:17 -0800)]
Fix mac build in ResetQuickAllocEntryPoints

Unused arg warning.

Test: None

Change-Id: I5b147b1a584b96ad5457c9fee36f3edb0498cecf

7 years agoMerge "ARM: Fix JNI MacroAssembler after VIXL update."
Mathieu Chartier [Tue, 29 Nov 2016 22:17:01 +0000 (22:17 +0000)]
Merge "ARM: Fix JNI MacroAssembler after VIXL update."
am: ae7f6b965e

Change-Id: Ia433a1b5eda0b825aecc992103823a44ca9a713c

7 years agoMerge "ARM: Fix JNI MacroAssembler after VIXL update."
Mathieu Chartier [Tue, 29 Nov 2016 22:07:47 +0000 (22:07 +0000)]
Merge "ARM: Fix JNI MacroAssembler after VIXL update."

7 years agoMerge "X86_64: Add allocation entrypoint switching for CC is_marking"
Mathieu Chartier [Tue, 29 Nov 2016 21:40:28 +0000 (21:40 +0000)]
Merge "X86_64: Add allocation entrypoint switching for CC is_marking"
am: ab191538a1

Change-Id: I568ce012c3e585fade7bb919182cdaa4ae2be086

7 years agoMerge "X86_64: Add allocation entrypoint switching for CC is_marking"
Mathieu Chartier [Tue, 29 Nov 2016 21:32:11 +0000 (21:32 +0000)]
Merge "X86_64: Add allocation entrypoint switching for CC is_marking"

7 years agoMerge "Revert "Revert "Revert "Revert "Revert "Make sure that const-class linkage...
Vladimir Marko [Tue, 29 Nov 2016 21:18:57 +0000 (21:18 +0000)]
Merge "Revert "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved.""""""
am: 8fb28dcf0e

Change-Id: Icf47b0bb6c44331d892239069ffee1988e0731f5

7 years agoMerge "Revert "Revert "Revert "Revert "Revert "Make sure that const-class linkage...
Vladimir Marko [Tue, 29 Nov 2016 21:11:32 +0000 (21:11 +0000)]
Merge "Revert "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved.""""""

7 years agoRevert "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserv...
Vladimir Marko [Tue, 29 Nov 2016 21:10:22 +0000 (21:10 +0000)]
Revert "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved."""""

Bug: 30627598

This reverts commit e47172b75b8b04a450d235cf72bdc4e223a29cb5.

Change-Id: I038029c71195a80f041982e82ae556d3157db7b8

7 years agoMove inline caches GC handling in JitCodeCache.
Nicolas Geoffray [Tue, 22 Nov 2016 14:49:31 +0000 (14:49 +0000)]
Move inline caches GC handling in JitCodeCache.

Make the classes they hold weak references and visit
them during SweepJitRoots.

This fixes the newly introduced deadlock:

Thread1:
1) Lock JitCodeCache lock to create Profiling info for
  ArtMethod m.
2) m is a copied method, we need to track the actual holder,
   needing to decode a weak reference.
3) Weak references are not accessible due to GC.

GC Thread:
- Disallow weak reference access.
- Wait for checkpoint.

Thread2:
- Try to lock JitCodeCache lock
- Deadlock, as Thread1 owns the JitCodeCache lock.

Test: test-art-host
bug: 31289185
bug: 33198826

Change-Id: I7ee17631015450ace8d2a0264415a81c5a902bb8

7 years agoImprove invalid object logging
Mathieu Chartier [Mon, 28 Nov 2016 21:13:28 +0000 (13:13 -0800)]
Improve invalid object logging

Prioritize holder logging instead of maps and stack traces.

Test: test-art-host

Bug: 31441673

Change-Id: Ibc0523ffe5a8f8ba207c2643eae65d44599dcc86

7 years agoART: Add dex::StringIndex
Andreas Gampe [Mon, 28 Nov 2016 15:38:35 +0000 (07:38 -0800)]
ART: Add dex::StringIndex

Add abstraction for uint32_t string index.

Test: m test-art-host
Change-Id: I917c2881702fe3df112c713f06980f2278ced7ed

7 years agoARM: Fix JNI MacroAssembler after VIXL update.
Artem Serov [Tue, 29 Nov 2016 13:31:33 +0000 (13:31 +0000)]
ARM: Fix JNI MacroAssembler after VIXL update.

This patch fixes an issue found here:
https://android-review.googlesource.com/#/c/307532/

Also re-enables vixl MacroAssembler for arm.

Test: export ART_USE_READ_BARRIER=true; export ART_HEAP_POISONING=true; \
      m test-art-host
Test: export ART_USE_READ_BARRIER=true; export ART_HEAP_POISONING=true; \
      m test-art-target
Test: dump-oat-boot with ART_USE_READ_BARRIER=true

Change-Id: I03e3014fb250791db2d24a0ab1a76ca96384c332

7 years agoMerge "Use non vixl arm macro assembler"
Mathieu Chartier [Tue, 29 Nov 2016 18:23:45 +0000 (18:23 +0000)]
Merge "Use non vixl arm macro assembler"
am: 8662aaaae4

Change-Id: Ib11edf85220a6d09f0875b5854fd276328bb836d

7 years agoMerge "Use non vixl arm macro assembler"
Mathieu Chartier [Tue, 29 Nov 2016 18:15:29 +0000 (18:15 +0000)]
Merge "Use non vixl arm macro assembler"

7 years agoUse non vixl arm macro assembler
Mathieu Chartier [Tue, 29 Nov 2016 03:24:08 +0000 (19:24 -0800)]
Use non vixl arm macro assembler

The VIXL one hits an assertion error for CC:
external/vixl/src/aarch32/macro-assembler-aarch32.h:1386:
void vixl::aarch32::MacroAssembler::Cmp(vixl::aarch32::Condition,
vixl::aarch32::Register, const vixl::aarch32::Operand &):
Assertion `!AliasesAvailableScratchRegister(rn)' failed.

Fixes dump-oat-boot with CC.

Test: test-art-target, N6P booting

Change-Id: I781fe8c8c2d6cd8b246ee4509281d6c645c89a28

7 years agoMerge "Disabled fallback to interpreter in dexfuzz."
Branislav Rankov [Tue, 29 Nov 2016 16:41:39 +0000 (16:41 +0000)]
Merge "Disabled fallback to interpreter in dexfuzz."
am: 52f52361c2

Change-Id: I9e095f9ef08fdb434776f7ee2abddeb242f2327b

7 years agoMerge "Disabled fallback to interpreter in dexfuzz."
Treehugger Robot [Tue, 29 Nov 2016 16:33:41 +0000 (16:33 +0000)]
Merge "Disabled fallback to interpreter in dexfuzz."

7 years agoMerge "ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics."
Vladimir Marko [Tue, 29 Nov 2016 16:31:37 +0000 (16:31 +0000)]
Merge "ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics."
am: ec428a7ab9

Change-Id: If52bab0008327f409ff5321d35ee67f95fe6911f

7 years agoMerge "ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics."
Vladimir Marko [Tue, 29 Nov 2016 16:22:50 +0000 (16:22 +0000)]
Merge "ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics."

7 years agoMerge "Fix event reporting from the debugger thread"
Sebastien Hertz [Tue, 29 Nov 2016 15:56:07 +0000 (15:56 +0000)]
Merge "Fix event reporting from the debugger thread"
am: 60438b4609

Change-Id: Ia6187cdfb3b2fb459093cd1b8f2aff8c8c9b4adb

7 years agoMerge "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserve...
Vladimir Marko [Tue, 29 Nov 2016 15:51:09 +0000 (15:51 +0000)]
Merge "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved."""""
am: df743754f4

Change-Id: Ib2f48cb30bfc559563ddefba7c86f0e29c252f6d

7 years agoMerge "Fix event reporting from the debugger thread"
Sebastien Hertz [Tue, 29 Nov 2016 15:49:39 +0000 (15:49 +0000)]
Merge "Fix event reporting from the debugger thread"

7 years agoMerge "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserve...
Vladimir Marko [Tue, 29 Nov 2016 15:46:38 +0000 (15:46 +0000)]
Merge "Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved."""""

7 years agoMerge "Fix the target Linux builds of ART"
Nicolas Geoffray [Tue, 29 Nov 2016 15:11:33 +0000 (15:11 +0000)]
Merge "Fix the target Linux builds of ART"
am: ded461e9df

Change-Id: I16a851ff3892b8842fd918ff7cbf38a2c7828185

7 years agoMerge "Fix the target Linux builds of ART"
Nicolas Geoffray [Tue, 29 Nov 2016 15:06:15 +0000 (15:06 +0000)]
Merge "Fix the target Linux builds of ART"

7 years agoARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics.
Vladimir Marko [Mon, 28 Nov 2016 16:03:15 +0000 (16:03 +0000)]
ARM64: Merge TBNZ+CMP+BGE/BGT to CMP+BHS/BHI in intrinsics.

Test: m test-art-target
Change-Id: I7316dfc40555a3c47670a3b79b4c8fc0cd3edc4f

7 years agoDisabled fallback to interpreter in dexfuzz.
Branislav Rankov [Tue, 29 Nov 2016 14:02:04 +0000 (14:02 +0000)]
Disabled fallback to interpreter in dexfuzz.

Added the -Xno-dex-file-fallback option when running optimizing backends so
that it fails in case compilation fails.

Test: Introduce an artificial crash in the optimizing compiler. There should
be a divergence reported.
dexfuzz --input=Hello.dex --execute --arm --interpreter --optimizing --repeat=20 --dump-output

Change-Id: I8adfc68b176b7482efce0cc7335c3cc50857c5a2

7 years agoRevert "Revert "Revert "Revert "Make sure that const-class linkage is preserved.""""
Vladimir Marko [Fri, 25 Nov 2016 11:47:20 +0000 (11:47 +0000)]
Revert "Revert "Revert "Revert "Make sure that const-class linkage is preserved.""""

Avoid class loading triggered by verification in the
626-const-class-linking test. Expect spurious wakeups.

Add extra debugging output for a very strange failure
    image_writer.cc:1144] Check failed:
    !IsBootClassLoaderClass(as_klass)
    java.lang.Class<java.lang.NoSuchMethodError>
That class is supposed to be in the boot image (core.art for
tests), so the failing check should not be reached at all.

Test: m test-art-host
Test: m ART_TEST_OPTIMIZING=true \
        ART_TEST_JIT=true \
        ART_TEST_INTERPRETER=true \
        ART_TEST_INTERPRETER_ACCESS_CHECKS=true \
        test-art-host-run-test-626-const-class-linking
Bug: 30627598

This reverts commit 09ded9201fbeec605b12741ae255663c14bda225.

Change-Id: I65a68cb53f0707b8abb3555ac3dc44c82907aef5

7 years agoMerge "Removed quick support from dexfuzz."
Branislav Rankov [Tue, 29 Nov 2016 12:06:21 +0000 (12:06 +0000)]
Merge "Removed quick support from dexfuzz."
am: d34d4f303b

Change-Id: I4227804a789a36a0dd03d2527118c4ed5cfe2347

7 years agoMerge "Removed quick support from dexfuzz."
Treehugger Robot [Tue, 29 Nov 2016 11:56:16 +0000 (11:56 +0000)]
Merge "Removed quick support from dexfuzz."

7 years agoMerge "Re-enable run-test 484-checker-register-hints with read barriers."
Roland Levillain [Tue, 29 Nov 2016 11:27:18 +0000 (11:27 +0000)]
Merge "Re-enable run-test 484-checker-register-hints with read barriers."
am: b981c5ebba

Change-Id: I8dab7d738677866cd4c636dd92ed7b57ebc25a1e

7 years agoMerge "Re-enable run-test 484-checker-register-hints with read barriers."
Roland Levillain [Tue, 29 Nov 2016 11:19:51 +0000 (11:19 +0000)]
Merge "Re-enable run-test 484-checker-register-hints with read barriers."

7 years agoAdded support for android root in dexfuzz.
Branislav Rankov [Wed, 23 Nov 2016 13:44:28 +0000 (13:44 +0000)]
Added support for android root in dexfuzz.

Test: Execute dexfuzz with option --android-root=folder
All tests should be VerifyFail since folder does not exist on device.

Change-Id: I3f1d75386475661f09bc2a4d2c8ae3e94a202526

7 years agoFix event reporting from the debugger thread
Sebastien Hertz [Tue, 22 Nov 2016 13:55:04 +0000 (14:55 +0100)]
Fix event reporting from the debugger thread

The debugger thread may trigger events (like CLASS PREPARE after the
initalization of a class while processing a command).

This CL removes the incorrect CHECK that makes the runtime abort in
this case. However, we do check that only the debugger thread can
report an event while it is already processing a command.

Bug: 33032664
Test: art/tools/run-jdwp-tests.sh '--mode=host' '--variant=X64'
Change-Id: I32a284cfb4df6eb44eac27bbdcabd3c426d726ce

7 years agoMerge "Use junit-host instead of junit"
Paul Duffin [Tue, 29 Nov 2016 10:20:14 +0000 (10:20 +0000)]
Merge "Use junit-host instead of junit"
am: c23d5e4783

Change-Id: Ibb28ddbd1e64ac7d94bfc8e7f88bedecbc1a18a5

7 years agoMerge "Use junit-host instead of junit"
Paul Duffin [Tue, 29 Nov 2016 10:12:12 +0000 (10:12 +0000)]
Merge "Use junit-host instead of junit"