OSDN Git Service
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
Nicolas Geoffray [Wed, 30 Nov 2016 16:23:24 +0000 (16:23 +0000)]
Merge "Do not call IsMarked on null."
Treehugger Robot [Wed, 30 Nov 2016 16:20:44 +0000 (16:20 +0000)]
Merge "ART: Remove duplicate StackVisitor method."
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
Nicolas Geoffray [Wed, 30 Nov 2016 15:49:40 +0000 (15:49 +0000)]
Merge "ARM: VIXL32: Implement HClassTableGet Visitor."
Nicolas Geoffray [Wed, 30 Nov 2016 14:45:14 +0000 (14:45 +0000)]
Merge "ARM: VIXL32: Fix some test failures."
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."
Nicolas Geoffray [Wed, 30 Nov 2016 13:57:30 +0000 (13:57 +0000)]
Merge "Move inline caches GC handling in JitCodeCache."
Nicolas Geoffray [Wed, 30 Nov 2016 13:40:23 +0000 (13:40 +0000)]
Merge "Revert CC related changes."
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
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
Nicolas Geoffray [Wed, 30 Nov 2016 10:38:17 +0000 (10:38 +0000)]
Merge "Don't use ashmen when kIsTargetLinux is set."
Mathieu Chartier [Wed, 30 Nov 2016 01:07:05 +0000 (01:07 +0000)]
Merge "Improve invalid object logging"
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
Aart Bik [Wed, 30 Nov 2016 00:26:22 +0000 (00:26 +0000)]
Merge "Added support for android root in dexfuzz."
Mathieu Chartier [Tue, 29 Nov 2016 23:38:00 +0000 (23:38 +0000)]
Merge "Fix 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
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
Mathieu Chartier [Tue, 29 Nov 2016 22:20:24 +0000 (22:20 +0000)]
Merge "Fix 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
Mathieu Chartier [Tue, 29 Nov 2016 22:07:47 +0000 (22:07 +0000)]
Merge "ARM: Fix JNI MacroAssembler after VIXL update."
Mathieu Chartier [Tue, 29 Nov 2016 21:32:11 +0000 (21:32 +0000)]
Merge "X86_64: Add allocation entrypoint switching for CC is_marking"
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.""""""
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
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
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
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
Mathieu Chartier [Tue, 29 Nov 2016 18:15:29 +0000 (18:15 +0000)]
Merge "Use 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
Treehugger Robot [Tue, 29 Nov 2016 16:33:41 +0000 (16:33 +0000)]
Merge "Disabled fallback to interpreter in dexfuzz."
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."
Sebastien Hertz [Tue, 29 Nov 2016 15:49:39 +0000 (15:49 +0000)]
Merge "Fix event reporting from the debugger thread"
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."""""
Nicolas Geoffray [Tue, 29 Nov 2016 15:06:15 +0000 (15:06 +0000)]
Merge "Fix the target Linux builds of ART"
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
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
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
Treehugger Robot [Tue, 29 Nov 2016 11:56:16 +0000 (11:56 +0000)]
Merge "Removed quick support from dexfuzz."
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."
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
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
Paul Duffin [Tue, 29 Nov 2016 10:12:12 +0000 (10:12 +0000)]
Merge "Use junit-host instead of junit"
Treehugger Robot [Tue, 29 Nov 2016 05:55:52 +0000 (05:55 +0000)]
Merge "Moved escape analysis to reusable module"
Aart Bik [Mon, 28 Nov 2016 19:22:35 +0000 (11:22 -0800)]
Moved escape analysis to reusable module
Rationale:
This prepares other optimizations that
want to do some simple escape analysis.
Also introduces ability for client
to inject a case-specific function.
Test: test-art-host
Change-Id: Ie38a1e24e4479dc40154673db589ec1c82fb73b9
Paul Duffin [Mon, 28 Nov 2016 16:34:59 +0000 (16:34 +0000)]
Use junit-host instead of junit
Bug:
30188076
Test: make checkbuild
Change-Id: Ia54aeae56f49123885765bc896c00fd363e93c26
Nicolas Geoffray [Mon, 28 Nov 2016 13:15:55 +0000 (13:15 +0000)]
Merge "Refine the DexOptNeeded codes."
Nicolas Geoffray [Mon, 28 Nov 2016 12:50:57 +0000 (12:50 +0000)]
Merge "ARM: VIXL32: Fix breaking changes from recent VIXL update."
Treehugger Robot [Mon, 28 Nov 2016 12:05:22 +0000 (12:05 +0000)]
Merge "Cache flush/invalidate needs RWX permission"
Artem Udovichenko [Thu, 17 Nov 2016 07:51:58 +0000 (10:51 +0300)]
Cache flush/invalidate needs RWX permission
When generating JIT code, perform cache maintenance operations before
removing page write permissions. Errata on some cores require data
flush operations to be followed by data invalidate operations
requiring write permission.
Test: ART_TEST_JIT=true test-art-target on an arm64 device.
bug:
27265969
Change-Id: I70cbb0dc2ea37e42f2011d23333e386ae3f639c7
Orion Hodson [Mon, 28 Nov 2016 09:39:44 +0000 (09:39 +0000)]
Merge "ART: Throw InternalError rather than VirtualMachineError"
Orion Hodson [Mon, 28 Nov 2016 09:10:32 +0000 (09:10 +0000)]
Merge "Revert "Revert "Method Handles: Add VarargsCollector."""
Richard Uhler [Tue, 22 Nov 2016 10:12:03 +0000 (10:12 +0000)]
Refine the DexOptNeeded codes.
To expose information useful for optimizing how dex2oat is invoked in
the presence of vdex files.
Bug:
30937355
Test: art-test-host
Change-Id: I8e09fabf8c56bf1e1041f43d3d9edf7850adc395
Orion Hodson [Fri, 25 Nov 2016 15:46:49 +0000 (15:46 +0000)]
Revert "Revert "Method Handles: Add VarargsCollector.""
This reverts commit
12af7a41c224923fb55699305008214636a1a3da.
Test: m test-art-host-run-test-956-methodhandles
Bug:
30550796
Change-Id: Ia820093bab919667729daba5b14330de51a63f79
Orion Hodson [Fri, 25 Nov 2016 16:07:11 +0000 (16:07 +0000)]
ART: Throw InternalError rather than VirtualMachineError
Instantiate InternalError instead of VirtualMachineError as the latter
is abstract and not instantiable.
Change-Id: I3e90b28a34bef02dd1c200c02cb832aa8dce10b3
Orion Hodson [Fri, 25 Nov 2016 14:31:43 +0000 (14:31 +0000)]
Merge "Revert "Method Handles: Add VarargsCollector.""
Orion Hodson [Fri, 25 Nov 2016 14:27:07 +0000 (14:27 +0000)]
Revert "Method Handles: Add VarargsCollector."
This reverts commit
ab52ce1480d9c4701bfe3ff3530596ec0c5760ee.
Change-Id: Idc6dd28b58a61cbd2c9ee72e8a0eeb07b2ca0edf
Anton Kirilov [Mon, 21 Nov 2016 19:55:20 +0000 (19:55 +0000)]
ARM: VIXL32: Fix some test failures.
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: I6cc179a56c967fc35936a5743a953013a2388c90
Scott Wakeling [Mon, 21 Nov 2016 19:46:00 +0000 (19:46 +0000)]
ARM: VIXL32: Fix breaking changes from recent VIXL update.
Test: m test-art-host
Test: m test-art-target
Change-Id: I02a608bf51b889a2bfff43272a3619582bf9cf20
Nicolas Geoffray [Fri, 25 Nov 2016 11:25:43 +0000 (11:25 +0000)]
Merge "ARM: VIXL32: Improve codegen on CBZ/CBNZ"
Nicolas Geoffray [Fri, 25 Nov 2016 08:32:37 +0000 (08:32 +0000)]
Merge "Use input-vdex-fd, or input-vdex in dex2oat."
Richard Uhler [Fri, 25 Nov 2016 07:53:25 +0000 (07:53 +0000)]
Merge changes Ia3853e46,Ic32af2ec,I79c6cc12,Idfd59472,I68720661
* changes:
Refine OatStatus enum.
Factor out code for picking the best oat file.
Move dumping of oat file status inside of the OatFileAssistant.
Remove OatFileAssistant IsOutOfDate, IsUpToDate, and NeedsRelocation.
Simplify decision of which is the best oat file.
Richard Uhler [Tue, 22 Nov 2016 09:42:04 +0000 (09:42 +0000)]
Refine OatStatus enum.
Replace Exists() with a separate OatStatus code, and distinguish
between the oat file being out of date due to the dex being out of
date or the image being out of date.
Bug:
30937355
Test: oat_file_assistant_test
Change-Id: Ia3853e461beb07f0b417276b9277b9c562b20865
Nicolas Geoffray [Sat, 19 Nov 2016 10:42:37 +0000 (10:42 +0000)]
Use input-vdex-fd, or input-vdex in dex2oat.
input-vdex-fd is used by installd
input-vdex is used by run-tests, and (will be used by) go/lem
This change copies the contents of the passed vdex to the new one,
unquicken the new vdex, and run the fast verification on the new
vdex.
bug:
30937355
Test: device boots, apps get updated faster with vdex
Test: set TEST_VDEX to true in run-test-jar, run all tests
Test: 628-vdex
Change-Id: Idfbac4de411cebcf8ea7a6af7a417d7c7908dd72
Branislav Rankov [Wed, 23 Nov 2016 11:41:43 +0000 (11:41 +0000)]
Removed quick support from dexfuzz.
Test: Execute: dexfuzz --quick. You should get the following error:
[ERROR] Unrecognised flag: --quick
Change-Id: Iccc5509edfa5e5febfd67904d1d2d76336975070
Vladimir Marko [Thu, 24 Nov 2016 13:05:12 +0000 (13:05 +0000)]
Merge "Revert "Revert "Revert "Make sure that const-class linkage is preserved.""""
Vladimir Marko [Thu, 24 Nov 2016 13:03:57 +0000 (13:03 +0000)]
Revert "Revert "Revert "Make sure that const-class linkage is preserved."""
626-const-class-linking is failing (spurious wakeups?)
970-iface-super-resolution-gen is failing:
dex2oatd F 11-24 10:57:16 6410 6410 image_writer.cc:1144]
Check failed: !IsBootClassLoaderClass(as_klass)
java.lang.Class<java.lang.NoSuchMethodError>
Bug:
30627598
This reverts commit
25dcbad4462ea7279ee2bbe0884abc25bdfac77a.
Change-Id: Ie010169bdde45e6ccf2e04a521da4682bd817114
xueliang.zhong [Wed, 23 Nov 2016 17:05:25 +0000 (17:05 +0000)]
ARM: VIXL32: Implement HClassTableGet Visitor.
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: Ia334bff827a78966274dc2a80a2be8688240cadf
Orion Hodson [Thu, 24 Nov 2016 11:57:29 +0000 (11:57 +0000)]
Merge "Method Handles: Add VarargsCollector."
xueliang.zhong [Fri, 4 Nov 2016 09:23:32 +0000 (09:23 +0000)]
ARM: VIXL32: Improve codegen on CBZ/CBNZ
This patch improves codegen on CBZ/CBNZ.
CompareAndBranchIfZero/CompareAndBranchIfNonZero are introduced.
These two functions can generate CMP+Bcc or Cbz/Cbnz.
CMP+Bcc are generated by default.
If a hint is given (is_far_target = false) and rn and label
can all fit into Cbz/Cbnz, then Cbz/Cbnz is generated.
Prefer these two interfaces to using vixl32::MacroAssembler::Cbz/Cbnz.
In T32, Cbz/Cbnz instructions have following limitations:
- Far targets, which are over 126 bytes away, are not supported.
- Only low registers can be encoded.
- Backward branches are not supported.
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-host
Test: ART_USE_VIXL_ARM_BACKEND=true m test-art-target
Change-Id: I5d2ada19ea4f83dab78baf0cf78c72e99e58d946
Vladimir Marko [Thu, 24 Nov 2016 10:07:53 +0000 (10:07 +0000)]
Merge "Revert "Revert "Make sure that const-class linkage is preserved."""
Richard Uhler [Mon, 14 Nov 2016 14:38:03 +0000 (14:38 +0000)]
Factor out code for picking the best oat file.
Factor out common code for determining the best oat file.
Bug:
30937355
Test: oat_file_assistant_test
Change-Id: Ic32af2ec493675be1a22e81c2de46a848c398f6b
Richard Uhler [Mon, 14 Nov 2016 14:53:55 +0000 (14:53 +0000)]
Move dumping of oat file status inside of the OatFileAssistant.
Rather than exposing what could otherwise be internal to the
OatFileAssistant, move the logic for dumping a human readable
representation of the status of the oat files inside the
OatFileAssistant.
Bug:
30937355
Test: oat_file_assistant_test
Change-Id: I79c6cc1286a822f1dbe0035be934a2be4792563c
Richard Uhler [Tue, 8 Nov 2016 16:23:07 +0000 (16:23 +0000)]
Remove OatFileAssistant IsOutOfDate, IsUpToDate, and NeedsRelocation.
Relatively recent design changes made these functions equivalent to
the Status function. Prefer to use the Status function instead to
simplify the OatFileAssistant API, especially in preparation for
expanding the number of possible Status results.
Bug:
30937355
Test: oat_file_assistant_test
Change-Id: Idfd594729210257f693f03ca823a8d54e74034c5
Richard Uhler [Tue, 8 Nov 2016 16:51:51 +0000 (16:51 +0000)]
Simplify decision of which is the best oat file.
Previously the best oat file was determined by looking at all
combination of states of the oat file in the odex location and the oat
location. This change simplifies the decision by using the oat
location if that oat file is not out of date and using the odex
location otherwise. For practical cases, both decisions lead to the
same result.
Bug:
30937355
Test: oat_file_assistant_test
Change-Id: I687206612914cdbd43950fcdd7dd818a54255a6b
Mathieu Chartier [Wed, 23 Nov 2016 19:19:22 +0000 (19:19 +0000)]
Merge "Speed up verified methods"
Nicolas Geoffray [Wed, 23 Nov 2016 17:26:20 +0000 (17:26 +0000)]
Merge "libopenjdkjvmti is actually not a test library."
Vladimir Marko [Wed, 23 Nov 2016 13:35:26 +0000 (13:35 +0000)]
Revert "Revert "Make sure that const-class linkage is preserved.""
Fix jdwp getting multiple instances of the same class.
Fix counting "zygote"/"non-zygote" classes in class table.
Fix FindClass() to EnsureResolved() classes added by
a racing thread to the class table.
Test: m test-art-host
Test: art/tools/run-jdwp-tests.sh --mode=host --variant=X64 --debug
Bug:
30627598
This reverts commit
ecffc67068a28d55d131553bf915fdb9fafbbc03.
Change-Id: I15807949da4f163c2693fac2fbfc274f17685f8a
Orion Hodson [Fri, 11 Nov 2016 11:11:31 +0000 (11:11 +0000)]
Method Handles: Add VarargsCollector.
Enable support for methods with variable arity arguments.
Test: m test-art-host-run-test-956-methodhandles
Bug:
30550796
Change-Id: I205724ddacc6c9840e18093a3984c1ad6e54394a
Nicolas Geoffray [Wed, 23 Nov 2016 16:25:15 +0000 (16:25 +0000)]
libopenjdkjvmti is actually not a test library.
Use the right target for the libopenjdkjvmti library.
Test: test-art-target-sync
Change-Id: I8c23c87911bc890482e5e9be3d64ce0a362b6924
Roland Levillain [Wed, 23 Nov 2016 14:29:49 +0000 (14:29 +0000)]
Re-enable run-test 484-checker-register-hints with read barriers.
The code generated by the x86 back end with all read barrier
configurations now satisfies all Checker assertions.
Test: ART_USE_READ_BARRIER=true make test-art-host-run-test-484-checker-register-hints
Test: ART_USE_READ_BARRIER=true ART_HEAP_POISONING=true make test-art-host-run-test-484-checker-register-hints
Test: ART_USE_READ_BARRIER=true ART_READ_BARRIER_TYPE=TABLELOOKUP make test-art-host-run-test-484-checker-register-hints
Test: ART_USE_READ_BARRIER=true ART_READ_BARRIER_TYPE=TABLELOOKUP ART_HEAP_POISONING=true make test-art-host-run-test-484-checker-register-hints
Bug:
12687968
Change-Id: Ic1b40a4fd13ca52736db102426060713e83009b2
Nicolas Geoffray [Wed, 23 Nov 2016 14:23:05 +0000 (14:23 +0000)]
Merge "Update expectations in SetVerifierDeps/SetStackSample."
Calin Juravle [Wed, 23 Nov 2016 12:53:24 +0000 (12:53 +0000)]
Merge "Revert "Use interpret-only instead of verify-at-runtime when testing JIT""
Calin Juravle [Wed, 23 Nov 2016 12:52:53 +0000 (12:52 +0000)]
Revert "Use interpret-only instead of verify-at-runtime when testing JIT"
This reverts commit
8b2cf761df20e60a9e0e57564db3ab4eae5d64a7.
Change-Id: I3a15a20eb9d3c71902f42cd5e559d8ab4e15f07d
Nicolas Geoffray [Wed, 23 Nov 2016 12:52:01 +0000 (12:52 +0000)]
Update expectations in SetVerifierDeps/SetStackSample.
SetStackSample might update an existing sample. So instead
check that SetStackSample is only called in non-AOT mode, and
SetVerifierDeps is only called in AOT mode.
Test: 099-vmdebug
Change-Id: I80dc3d61da651fb311364418802b0bb7e1ce9351
Nicolas Geoffray [Wed, 23 Nov 2016 12:35:42 +0000 (12:35 +0000)]
Merge "Update run-test dependencies on device."
Nicolas Geoffray [Wed, 23 Nov 2016 10:47:02 +0000 (10:47 +0000)]
Update run-test dependencies on device.
Test: test-art-target
Change-Id: I5f58bcbf9eb41571d9511eba8b3f11765baf24a2
Julien Duraj [Wed, 16 Nov 2016 14:05:48 +0000 (14:05 +0000)]
Fix the target Linux builds of ART
When ART_TARGET_LINUX was set it would hit some pieces of dead code that
were using old defines i.e. `__ANDROID__`
Test: export ART_TARGET_LINUX=true
Test: source build/envsetup.sh
Test: lunch
Test: cd art && mma
Change-Id: I80102750192928606e0884d2b723a87ccb7d7e19
Roland Levillain [Wed, 23 Nov 2016 10:33:03 +0000 (10:33 +0000)]
Merge "Fix build rules for statically linked oatdump on host."
Mathieu Chartier [Mon, 21 Nov 2016 23:05:23 +0000 (15:05 -0800)]
Speed up verified methods
Switch to an array of atomic pointers instead of a map. Removes lock
and map lookup. Also address comments from previous CL.
GetVerifiedMethod: 1.59% -> 0.18% of compilation time.
Install time seems to goes down by around 1%.
Also has significant RAM savings (FB host compile):
dex2oat native alloc:
84695472B ->
71268736B
For the JIT case, the old method is used to prevent any increase in
RAM usage.
Bug:
32641252
Test: test-art-host
Change-Id: I47b4b8a4a3cb3f8ef23e36a888b8885e12168787
Jeff Hao [Tue, 22 Nov 2016 23:49:19 +0000 (23:49 +0000)]
Merge changes from topic 'dex2oat_dexlayout'
* changes:
Add layout scheme to dexlayout for dex file reordering.
Add new --layout-profile compiler-filter for dex2oat.
Dexlayout cleanup and refactoring.
Mathieu Chartier [Tue, 22 Nov 2016 23:09:48 +0000 (23:09 +0000)]
Merge "Always fill in root table length"
Jeff Hao [Wed, 19 Oct 2016 18:17:11 +0000 (11:17 -0700)]
Add layout scheme to dexlayout for dex file reordering.
Currently takes startup classes from profile and groups them together
with the lowest class indexes. Moves the ClassDef, ClassData, and
CodeItem sections.
Results gathered from 5 second systrace of app startup (no other input):
Maps
base.vdex - 24.70MB -> 19.35MB (30.50MB file size)
base.odex - 13.22MB -> 12.82MB (13.22MB file size)
Running time of dex2oat: 27.5s -> 37.1s
Photos
base.vdex - 12.98MB -> 9.77MB (15.10MB file size)
base.odex - 6.84MB -> 6.24MB ( 6.84MB file size)
Running time of dex2oat: 15.6s -> 19.9s
Plus
base.vdex - 14.09MB -> 13.29MB (16.72MB file size)
base.odex - 2.47MB -> 2.47MB ( 2.47MB file size)
Running time of dex2oat: 14.1s -> 18.5s
Performance and memory tracking bug: b/
33017139
Test: mm test-art-host-gtest-dexlayout_test
Bug:
29921113
Change-Id: Ib500ed353d71a606e2db0dd80378750c5f7b8e33
Mathieu Chartier [Tue, 22 Nov 2016 21:24:40 +0000 (13:24 -0800)]
Always fill in root table length
Otherwise, there may be DCHECK failure in JitCodeCache::ClearData.
Fixes gcstress JIT tests.
Test: test/run-test --host --relocate --prebuild --64 --jit --gcstress --dev 021-string2
Change-Id: I757ccd1e5a015c5e686254417a2a3f68b650da1c
Treehugger Robot [Tue, 22 Nov 2016 20:30:12 +0000 (20:30 +0000)]
Merge "Verify for type_id out of range errors"
Mathieu Chartier [Tue, 22 Nov 2016 19:26:09 +0000 (19:26 +0000)]
Merge "Correctly handle EINTR return from futex"
David Sehr [Mon, 21 Nov 2016 20:52:12 +0000 (12:52 -0800)]
Verify for type_id out of range errors
The dalvik documentation states that several fields used as type ids are
uint, which is 32 bits. Other places use uint16, which is obviously 16.
This adds assertions that there are fewer than 65536
class_def_items/class_data_items and that the fields in question are
either valid (0 <= id <= 0xffff) or id == kDexNoIndex (0xffffffff).
Test: m test-art-host
Change-Id: I584615192086e6d8bb30aa11217d569d6dbe1280
Vladimir Marko [Tue, 22 Nov 2016 17:49:05 +0000 (17:49 +0000)]
Merge "Revert "Make sure that const-class linkage is preserved.""
Vladimir Marko [Tue, 22 Nov 2016 17:37:21 +0000 (17:37 +0000)]
Revert "Make sure that const-class linkage is preserved."
Bug:
30627598
This reverts commit
19886dbeced9430579a27979beb92b09c95197b4.
Squashed reverts of subsequent partial fixes.
This reverts commit
bad475a63b7c938b7ff7903ea1dae27369c3f629.
This reverts commit
0ba0c7d9b0328af39a385014652eb9af4e42d8b5.
This reverts commit
ddb8afec79492750f16f98e5bd07d44f3dc485d4.
Change-Id: Id94af5ae56a0335f9641a79c885cc75bba971713
Roland Levillain [Tue, 22 Nov 2016 17:20:46 +0000 (17:20 +0000)]
Fix build rules for statically linked oatdump on host.
Test: m build-art-host
Test: m test-art-host-gtest-oatdump_test
Bug:
29530992
Change-Id: Iaa1ff13f0d42e5bc9670fc87da5b6e291482f626
Jeff Hao [Wed, 19 Oct 2016 18:17:11 +0000 (11:17 -0700)]
Add new --layout-profile compiler-filter for dex2oat.
New compiler filter makes dex2oat call into dexlayout.
Added basic test for --layout-profile filter to make sure dex2oat runs
to completion and file is valid. Contests of file are not checked.
Test: mm test-art-host-gtest-dexlayout_test
Bug:
29921113
Change-Id: I4bd0dea3d3f1284c155d1d9dea80a48062e67770