OSDN Git Service
Igor Murashkin [Thu, 3 Dec 2015 19:24:51 +0000 (19:24 +0000)]
Merge "imgdiag: Fix rarely flaky imgdiag_test."
Igor Murashkin [Thu, 3 Dec 2015 18:47:08 +0000 (10:47 -0800)]
imgdiag: Fix rarely flaky imgdiag_test.
Don't hardcode pid as we could get unlucky and a real process
could have a pid of 12345.
This prevents false negatives by making the PID always be out-of-range
for valid kernel PIDs.
Change-Id: I8e8ae5c20a39e95b27b35905d5273c77dbf701f9
Nicolas Geoffray [Wed, 2 Dec 2015 23:01:21 +0000 (23:01 +0000)]
Merge "Revert "Enable profiled guided compilation in dex2oat""
Nicolas Geoffray [Wed, 2 Dec 2015 22:44:52 +0000 (22:44 +0000)]
Revert "Enable profiled guided compilation in dex2oat"
Test has flakes:
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] string: '��gy�
\7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] input: '<0x80> 0xd8 0x67 0x79 0x8e 0x7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] in call to NewStringUTF
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)
This reverts commit
27e17fd81cc30e16e86c9c15498cae7f920c9dfe.
Change-Id: Id224b5970c3620c4c71fc0d39ed4a2e4755e5f29
Nicolas Geoffray [Wed, 2 Dec 2015 23:00:37 +0000 (23:00 +0000)]
Merge "Revert "Fix test path in libarttest.mk""
Nicolas Geoffray [Wed, 2 Dec 2015 23:00:20 +0000 (23:00 +0000)]
Revert "Fix test path in libarttest.mk"
Test has flakes:
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] string: '��gy�
\7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] input: '<0x80> 0xd8 0x67 0x79 0x8e 0x7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] in call to NewStringUTF
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)
This reverts commit
95f51a71d28be844e68fe3dda3ed0bba6b99f8ad.
Change-Id: I32ae3ad8e2e6c4eed1d3f79e5498709c43afadcb
Nicolas Geoffray [Wed, 2 Dec 2015 22:58:53 +0000 (22:58 +0000)]
Merge "Revert "Fix the order in which profiled methods are dumped.""
Nicolas Geoffray [Wed, 2 Dec 2015 22:58:39 +0000 (22:58 +0000)]
Merge "Revert "Disable 554-jit-profile-file for unsupported test modes""
Nicolas Geoffray [Wed, 2 Dec 2015 22:46:12 +0000 (22:46 +0000)]
Revert "Disable 554-jit-profile-file for unsupported test modes"
Test has flakes:
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] string: '��gy�
\7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] input: '<0x80> 0xd8 0x67 0x79 0x8e 0x7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] in call to NewStringUTF
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)
This reverts commit
33bcb0734db9ccfdd0e8bb8fba77c1e0a1904090.
Change-Id: I3fe236acb196e847b7845802e436b0ee893144e6
Nicolas Geoffray [Wed, 2 Dec 2015 22:45:39 +0000 (22:45 +0000)]
Revert "Fix the order in which profiled methods are dumped."
Test has flakes:
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] JNI DETECTED ERROR IN APPLICATION: input is not valid Modified UTF-8: illegal start byte 0x80
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] string: '��gy�
\7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] input: '<0x80> 0xd8 0x67 0x79 0x8e 0x7f'
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] in call to NewStringUTF
+art F 30865 30865 art/runtime/java_vm_ext.cc:466] from java.lang.String Main.getProfileInfoDump(java.lang.String, java.lang.Class, java.lang.Class)
This reverts commit
1d2760bb6128f1bd623824ebcef5784d81b2ab85.
Change-Id: I84e478d715c1496892fa800778fc454d15e5d2c5
Andreas Gampe [Wed, 2 Dec 2015 19:55:20 +0000 (19:55 +0000)]
Merge "ART: Fix Mac build"
Andreas Gampe [Wed, 2 Dec 2015 19:53:26 +0000 (11:53 -0800)]
ART: Fix Mac build
dl_iterate_context code should only be done when we're not on the
Mac. #ifdef out DlOpenOatFile::PreSetup code.
Change-Id: I11e8f95e397a327f2aa0b749ecbf6f03bdb76f24
Andreas Gampe [Wed, 2 Dec 2015 19:51:29 +0000 (19:51 +0000)]
Merge "ART: Fix Makefile"
Andreas Gampe [Wed, 2 Dec 2015 19:49:01 +0000 (11:49 -0800)]
ART: Fix Makefile
Fix the run-test makefile.
Change-Id: Iccd64165e70a3e18cd966289f150f053b091ef7c
Calin Juravle [Wed, 2 Dec 2015 19:21:20 +0000 (19:21 +0000)]
Merge "Disable 554-jit-profile-file for unsupported test modes"
Calin Juravle [Wed, 2 Dec 2015 18:40:05 +0000 (18:40 +0000)]
Disable 554-jit-profile-file for unsupported test modes
Reasons:
- interpreter modes: the test needs JIT.
- no-dex2oat/no-prebuild: we only save profiling info for the primary
oat file. In these modes we don't create oat files and thus nothing is
saved.
Change-Id: I3b0574c0f39ee0db20803c021a6e827d96acd7c0
Andreas Gampe [Wed, 2 Dec 2015 19:02:29 +0000 (19:02 +0000)]
Merge "ART: Support dlopen for a PIC boot image"
Andreas Gampe [Wed, 2 Dec 2015 19:01:46 +0000 (19:01 +0000)]
Merge "ART: Refactor oat_file.h/cc for better maintainability"
Andreas Gampe [Wed, 2 Dec 2015 18:29:33 +0000 (10:29 -0800)]
ART: Support dlopen for a PIC boot image
Add support for the recent dlext extension for PIC support. Pass
the oat_file_begin to dlopen_ext as a reserved_addr using the new
LOAD_AT_FIXED_ADDRESS flag (when it isn't null).
Bug:
24683631
Change-Id: I59c5c82aebfa7cfb815e1fcf47fd72bec6f8239b
Andreas Gampe [Wed, 2 Dec 2015 07:27:12 +0000 (23:27 -0800)]
ART: Refactor oat_file.h/cc for better maintainability
Refactor the code so that generic oat file initialization (checking
ART symbols etc) is common between dlopen and ART's ElfFile
implementation. Reduce methods and fields exposed in the oat_file
header.
Change-Id: I5bf65dd8b7047a007c6bf435b55bdde306595e8d
Calin Juravle [Wed, 2 Dec 2015 18:22:30 +0000 (18:22 +0000)]
Merge "Fix the order in which profiled methods are dumped."
Calin Juravle [Wed, 2 Dec 2015 18:21:39 +0000 (18:21 +0000)]
Fix the order in which profiled methods are dumped.
This fixes flacky behaviour in tests.
Change-Id: I1b79111ad739ca9f3936110bce6719335b5ea112
Calin Juravle [Wed, 2 Dec 2015 17:03:39 +0000 (17:03 +0000)]
Merge "Fix test path in libarttest.mk"
Calin Juravle [Wed, 2 Dec 2015 17:03:06 +0000 (17:03 +0000)]
Fix test path in libarttest.mk
Change-Id: Ied98b5a407048d173e66f593fe0685d02a54d0f8
Calin Juravle [Wed, 2 Dec 2015 16:18:40 +0000 (16:18 +0000)]
Merge "Enable profiled guided compilation in dex2oat"
Calin Juravle [Wed, 25 Nov 2015 15:59:14 +0000 (15:59 +0000)]
Enable profiled guided compilation in dex2oat
- add parsing of the profile info saved during JIT
- don't compile methods which are not part of the profile info.
- delete old profile hooks
Change-Id: I45a13c3aeb36265d335e57cd160b9ea0fab3cbb5
Nicolas Geoffray [Wed, 2 Dec 2015 14:39:43 +0000 (14:39 +0000)]
Merge "Revert "Revert "Don't use the compiler driver for method resolution."""
Nicolas Geoffray [Wed, 2 Dec 2015 09:06:11 +0000 (09:06 +0000)]
Revert "Revert "Don't use the compiler driver for method resolution.""
This reverts commit
c88ef3a10c474045a3476a02ae75d07ddd3230b7.
Change-Id: I0ed88a48b313a8d28bc39fae40631123aadb13ef
Calin Juravle [Wed, 2 Dec 2015 12:10:26 +0000 (12:10 +0000)]
Merge "Clean up optimizing compiler stats"
David Brazdil [Wed, 2 Dec 2015 12:04:18 +0000 (12:04 +0000)]
Merge "Revert "Revert "ART: Do not eagerly type LoopPhi [null, ...]"""
David Brazdil [Wed, 2 Dec 2015 09:06:57 +0000 (09:06 +0000)]
Revert "Revert "ART: Do not eagerly type LoopPhi [null, ...]""
Fixes one more place where RTP expected the parent to have valid RTI.
This reverts commit
5f3fb18e9705f7d0d594f665858bff2020409c6a.
Bug:
25899441
Change-Id: I65c55a81617ffb82c2de2470eda562600b10d479
Vladimir Marko [Wed, 2 Dec 2015 11:37:04 +0000 (11:37 +0000)]
Merge "Optimizing: Add checker tests for sharpening."
Vladimir Marko [Tue, 1 Dec 2015 14:58:23 +0000 (14:58 +0000)]
Optimizing: Add checker tests for sharpening.
This is a follow-up to
https://android-review.googlesource.com/184116 .
Change-Id: Ib03c424fb673afc5ccce15d7d072b7572b47799a
David Brazdil [Wed, 2 Dec 2015 09:04:08 +0000 (09:04 +0000)]
Merge "Revert "ART: Do not eagerly type LoopPhi [null, ...]""
David Brazdil [Wed, 2 Dec 2015 09:03:44 +0000 (09:03 +0000)]
Revert "ART: Do not eagerly type LoopPhi [null, ...]"
Breaks some libcore tests. Revert to unblock others while investigating.
This reverts commit
3a738bfe9784b9ea0f2fccbe75f0c72ede536641.
Change-Id: I9f103c692199b8f9b6e7af469fc424512b57544a
Mathieu Chartier [Tue, 1 Dec 2015 23:20:39 +0000 (23:20 +0000)]
Merge "ART: set growth limit to heap size when it is larger."
Aart Bik [Tue, 1 Dec 2015 22:44:35 +0000 (22:44 +0000)]
Merge "Dynamic BCE (based on induction range analysis)"
Aart Bik [Mon, 30 Nov 2015 18:17:46 +0000 (10:17 -0800)]
Dynamic BCE (based on induction range analysis)
Rationale:
A rewritten dynamic BCE that uses induction variable analysis
to generate the run-time tests before a loop in order to
eliminate bounds-checks from its body. This CL removes now
obsoleted induction related code inside the BCE module.
Also, the dynamic test generation is placed more strategically,
since we missed a few cases where static analysis does better.
Most significant performance improvements (filtering noise) is about:
Linpack +20%
LU > +10%
Change-Id: I03d7631857154b6a131b132f26a2dc568af1b3a1
Mathieu Chartier [Tue, 1 Dec 2015 18:14:53 +0000 (18:14 +0000)]
Merge "Support null error_msg for select MemMap functions"
Nicolas Geoffray [Tue, 1 Dec 2015 16:28:28 +0000 (16:28 +0000)]
Merge "Revert "Don't use the compiler driver for method resolution.""
Nicolas Geoffray [Tue, 1 Dec 2015 16:28:10 +0000 (16:28 +0000)]
Revert "Don't use the compiler driver for method resolution."
Fails 425 in debuggable mode.
This reverts commit
4db0bf9c4db6a09716c3388b7d2f88d534470339.
Change-Id: I346df8f75674564fc4fb241c60f23e250fc7f0a7
David Brazdil [Tue, 1 Dec 2015 15:17:21 +0000 (15:17 +0000)]
Merge "ART: Do not eagerly type LoopPhi [null, ...]"
David Brazdil [Mon, 30 Nov 2015 10:38:12 +0000 (10:38 +0000)]
ART: Do not eagerly type LoopPhi [null, ...]
ReferenceTypePropagation would eagerly set the type of each loop phi
to the type of the first input prior to beginning the fix-point
iteration. While this does make the algorithm converge faster, it
should not be applied when the first input is a NullConstant becuase
that sets the type of the phi and all dependent instructions to Object.
Bug:
25899441
Change-Id: Iff1ed26a63fe4332eaf88d9ca171e287f10ba1a6
Paul Duffin [Tue, 1 Dec 2015 14:43:54 +0000 (14:43 +0000)]
Merge "Remove unnecessary workaround to vogar escaping issue"
Nicolas Geoffray [Tue, 1 Dec 2015 14:24:03 +0000 (14:24 +0000)]
Merge "Don't use the compiler driver for method resolution."
Nicolas Geoffray [Mon, 23 Nov 2015 09:35:04 +0000 (09:35 +0000)]
Don't use the compiler driver for method resolution.
The compiler driver makes assumptions that don't hold for
the optimizing compiler, and will for example always go to
slow path for an invoke-super when there's no verified method.
Also fix GenerateInvokeVirtual in the presence of intrinsics.
Next change will address some of the TODOs in sharpening.cc.
Change-Id: I2b0e543ee9b9bebcadb2d26de29e850c59ad58b9
Vladimir Marko [Tue, 1 Dec 2015 14:15:52 +0000 (14:15 +0000)]
Merge "Move PC-relative addressing bases to a better position."
Paul Duffin [Tue, 1 Dec 2015 13:56:52 +0000 (13:56 +0000)]
Remove unnecessary workaround to vogar escaping issue
Vogar didn't handle arguments for the target (i.e. after --)
properly if they had characters that affect shell parsing, e.g.
spaces. In order to work around it the tools/run-jdwp-tests.sh
script added some extra quotes that now cause it to break. This
simply removes those quotes.
Change-Id: If0349f87cacf93ff8e454780e187fe7ff1623c99
Calin Juravle [Thu, 19 Nov 2015 17:26:29 +0000 (17:26 +0000)]
Clean up optimizing compiler stats
- removed unused stats.
- add 'OptStat' prefix to the names of the printed
stats to make them `grep` friendly.
Change-Id: I189e98b5226465c88c4a00247cd0b9b2ddb6d66e
Vladimir Marko [Tue, 1 Dec 2015 12:57:09 +0000 (12:57 +0000)]
Merge "Optimizing/ARM: Implement kDexCachePcRelative dispatch."
Vladimir Marko [Wed, 25 Nov 2015 15:25:10 +0000 (15:25 +0000)]
Move PC-relative addressing bases to a better position.
Move the platform-specific HX86ComputeBaseMethodAddress and
HArmDexCacheArraysBase to the latest dominator of their uses
outside any loop. This brings the base closer to the first
use (previously, it was in the entry block) and relieves
some pressure on the register allocator while avoiding
recalculation of the base in a loop.
Change-Id: I231aa81eb5b4de9af2d0167054d06b65eb18a636
Vladimir Marko [Tue, 24 Nov 2015 13:45:23 +0000 (13:45 +0000)]
Optimizing/ARM: Implement kDexCachePcRelative dispatch.
Change-Id: I0fe2da50a30a3f62bec8ea01688dd1fec84b1831
Vladimir Marko [Tue, 1 Dec 2015 10:16:19 +0000 (10:16 +0000)]
Merge "Refactor oat file writing to give Dex2Oat more control."
Mathieu Chartier [Tue, 1 Dec 2015 01:20:12 +0000 (01:20 +0000)]
Merge "Revert "Change LoadNativeLibrary to use GetOrCreateAllocator""
Mathieu Chartier [Tue, 1 Dec 2015 01:20:00 +0000 (01:20 +0000)]
Revert "Change LoadNativeLibrary to use GetOrCreateAllocator"
This reverts commit
2d902b99bba7ae1ad77ebeb038a4ef63c3ed6399.
Change-Id: I4a674844f2f6d76d1c33741b46f12417ec7eab35
Alex Light [Mon, 30 Nov 2015 23:37:10 +0000 (23:37 +0000)]
Merge "Make debugger support default methods."
Mathieu Chartier [Mon, 30 Nov 2015 23:00:33 +0000 (23:00 +0000)]
Merge "Change LoadNativeLibrary to use GetOrCreateAllocator"
Mathieu Chartier [Tue, 24 Nov 2015 21:47:52 +0000 (13:47 -0800)]
Support null error_msg for select MemMap functions
In the failure case, reading proc maps takes 30ms. This is too slow
for app images.
Bug:
22858531
Change-Id: Ib6998cf82116720b23faec89d011fb7197c3d1cb
Alex Light [Fri, 20 Nov 2015 23:03:26 +0000 (15:03 -0800)]
Make debugger support default methods.
Supports breaking on, stepping into and through default methods.
Bug:
25549445
Bug:
24618811
Change-Id: I1a47e3263a0624adbd9e83b99d0acd7bef7757a4
Mathieu Chartier [Wed, 25 Nov 2015 00:22:54 +0000 (16:22 -0800)]
Change LoadNativeLibrary to use GetOrCreateAllocator
Previously we used GetAllocatorForClassLoader. This did not
handle the case where someone called LoadLibrary without having
already loaded a class.
Added regression test.
Bug:
25866849
Change-Id: Id720505eaded3b0f9c2eab59a40611b328837c4a
Chih-hung Hsieh [Mon, 30 Nov 2015 19:46:10 +0000 (19:46 +0000)]
Merge "Do not build art with clang for mips64"
Lazar Trsic [Fri, 27 Nov 2015 13:33:06 +0000 (14:33 +0100)]
Do not build art with clang for mips64
Clang generates illegal instruction on mips64r6 with -O0.
https://dmz-portal.mips.com/bugz/show_bug.cgi?id=2218
BUG:
25928358
Change-Id: I8ccd644f1509b4b341384fa67facc07cb966dfa8
Jeff Hao [Mon, 30 Nov 2015 18:48:59 +0000 (18:48 +0000)]
Merge "Test case for getting annotations of renamed enums."
Jeff Hao [Wed, 25 Nov 2015 03:12:57 +0000 (19:12 -0800)]
Test case for getting annotations of renamed enums.
The crashing app was trying to get enums explicitly by name, but could
not find them since they had been renamed by Proguard.
Regression test for bug
25802263.
Change-Id: Iff78a82d81ca108f1289051916f4272cd0f1e6fe
Vladimir Marko [Wed, 25 Nov 2015 14:33:36 +0000 (14:33 +0000)]
Refactor oat file writing to give Dex2Oat more control.
This is the first step towards writing dex files to oat file
and mapping them from there for the actual AOT compilation.
Change-Id: Icb0d27487eaf6ba3a66c157e695f9bdc5bb9cf9a
Aart Bik [Mon, 30 Nov 2015 17:28:16 +0000 (17:28 +0000)]
Merge "Accept synthetic phi nodes and general names for blocks."
David Srbecky [Fri, 27 Nov 2015 14:08:26 +0000 (14:08 +0000)]
Merge "Temporarily omit MIPS floating point registers in DWARF."
David Srbecky [Fri, 27 Nov 2015 13:31:16 +0000 (13:31 +0000)]
Temporarily omit MIPS floating point registers in DWARF.
I am struggling to find authoritative source for the mapping,
so disable them in the meantime so they do not break tests.
Change-Id: I37340179f5d2fe91f318b64ddf64a725ce96ab76
Vladimir Marko [Fri, 27 Nov 2015 11:23:00 +0000 (11:23 +0000)]
Merge "MIPS64: Fix stub_test implementation"
Goran Jakovljevic [Fri, 27 Nov 2015 10:20:20 +0000 (11:20 +0100)]
MIPS64: Fix stub_test implementation
Clang doesn't recognize f0-f31 registers without '$' symbol in
inline assembly. So now they are $f0-$f31.
This change allows building ART tests.
Change-Id: Ie08e1a5aceee266f7b674c9883bed53473696178
David Srbecky [Fri, 27 Nov 2015 01:59:40 +0000 (01:59 +0000)]
Merge "Add stack locations to DWARF parameters."
Vladimir Marko [Thu, 26 Nov 2015 09:55:07 +0000 (09:55 +0000)]
Merge "ARM64: Use the shifter operands."
Mathieu Chartier [Wed, 25 Nov 2015 20:14:18 +0000 (20:14 +0000)]
Merge "Fix circular dependencies for ContainsBootClassLoaderNonImageClass"
Mathieu Chartier [Tue, 24 Nov 2015 23:37:12 +0000 (15:37 -0800)]
Fix circular dependencies for ContainsBootClassLoaderNonImageClass
Old behavior incorrectly updated the memoization array when there was
a circular dependency. The new behavior is to not update the array
in this case.
Bug:
25839261
Change-Id: I081c97c4f7a62a783fdaf2afbe23ea380ef6946d
Calin Juravle [Wed, 25 Nov 2015 19:15:23 +0000 (19:15 +0000)]
Merge "Fix jit profile saving flags."
Calin Juravle [Wed, 25 Nov 2015 19:05:42 +0000 (19:05 +0000)]
Fix jit profile saving flags.
Bug:
25886401
Change-Id: Ie7b9ead708736298f1d4a53b640434c988a5a0a8
Vladimir Marko [Wed, 25 Nov 2015 18:27:37 +0000 (18:27 +0000)]
Merge "ART: Clean up ordering of dex cache arrays in image files."
Roland Levillain [Wed, 25 Nov 2015 17:05:40 +0000 (17:05 +0000)]
Merge "ARM64 read barrier support for concurrent GC in Optimizing."
Vladimir Marko [Mon, 23 Nov 2015 18:05:08 +0000 (18:05 +0000)]
ART: Clean up ordering of dex cache arrays in image files.
Use the CompilerDriver::GetDexFilesForOatFile() ordering
and do not rely on the ordering of dex caches in the class
linker, even though the ordering is currently the same,
so we don't need to bump the image version.
Change-Id: Ie1807e42909058ab9983f5d0107a2a0a2641d9b7
Alexandre Rames [Wed, 25 Nov 2015 16:28:08 +0000 (16:28 +0000)]
ARM64: Use the shifter operands.
This introduces architecture-specific instruction simplification.
On ARM64 we try to merge shifts and sign-extension operations into
arithmetic and logical instructions.
For example for the Java code
int res = a + (b << 5);
we would generate
lsl w3, w2, #5
add w0, w1, w3
and we now generate
add w0, w1, w2, lsl #5
Change-Id: Ic03bdff44a1c12e21ddff1b0513bd32a730742b7
Calin Juravle [Wed, 25 Nov 2015 12:51:40 +0000 (12:51 +0000)]
Merge "Save jit profiling info to file."
Vladimir Marko [Wed, 25 Nov 2015 12:10:44 +0000 (12:10 +0000)]
Merge "ART: Improve utf_test for unpaired surrogates."
Vladimir Marko [Wed, 25 Nov 2015 11:10:20 +0000 (11:10 +0000)]
ART: Improve utf_test for unpaired surrogates.
This is a follow-up to
https://android-review.googlesource.com/180986
Change-Id: I8982a63c0ec48bf3b3198c278a96be7b5dfc2152
David Srbecky [Mon, 16 Nov 2015 16:39:10 +0000 (16:39 +0000)]
Add stack locations to DWARF parameters.
Translate StackMap to DWARF location attributes so that the
debugger knows where to read the run-time value from.
Change-Id: I8b2baf23f37e6e7ff6f76e18077d880f0c1cf57d
Vladimir Marko [Wed, 25 Nov 2015 11:14:08 +0000 (11:14 +0000)]
Merge "Optimize some commonly used utf8 functions by:"
Calin Juravle [Fri, 23 Oct 2015 16:56:15 +0000 (17:56 +0100)]
Save jit profiling info to file.
Currently saves only the hot method references and omits the inline
cache.
Change-Id: I79e91f855f6b52dc19a9a86662604f2eee16613c
Nicolas Geoffray [Tue, 24 Nov 2015 18:53:37 +0000 (18:53 +0000)]
Merge "Optimize HLoadClass when we know the class is in the cache."
Nicolas Geoffray [Tue, 24 Nov 2015 15:48:56 +0000 (15:48 +0000)]
Optimize HLoadClass when we know the class is in the cache.
Change-Id: Iaa74591eed0f2eabc9ba9f9988681d9582faa320
Nicolas Geoffray [Tue, 24 Nov 2015 17:50:24 +0000 (17:50 +0000)]
Merge "Add backward branch instumentation to the switch interpreter."
Vladimir Marko [Tue, 24 Nov 2015 17:20:34 +0000 (17:20 +0000)]
Merge "ART: Fix SafeMap::Put()/PutBefore() rvalue overloads."
Vladimir Marko [Tue, 24 Nov 2015 17:06:32 +0000 (17:06 +0000)]
ART: Fix SafeMap::Put()/PutBefore() rvalue overloads.
Remove the mistaken "const" qualifier which pretty much
defeats the intended optimizations and prevents using
the SafeMap with non-copyable values.
Change-Id: I07d3e083c0b9b8895cbd181cb1bb4ca2293c7c5d
Nicolas Geoffray [Tue, 24 Nov 2015 16:32:33 +0000 (16:32 +0000)]
Add backward branch instumentation to the switch interpreter.
Change-Id: I0328daa86d5f19311ab3bd6246a1c3e4b40b0ba9
Nicolas Geoffray [Tue, 24 Nov 2015 15:17:08 +0000 (15:17 +0000)]
Merge "A few more optimizations on avoiding HClinit."
Nicolas Geoffray [Tue, 24 Nov 2015 14:06:57 +0000 (14:06 +0000)]
A few more optimizations on avoiding HClinit.
Change-Id: I622a98b620e9d261cb654e2f5ab578bd8b3484b1
Nicolas Geoffray [Tue, 24 Nov 2015 14:49:44 +0000 (14:49 +0000)]
Merge "MIPS32: Record missing implicit null checks"
Goran Jakovljevic [Fri, 20 Nov 2015 16:22:57 +0000 (17:22 +0100)]
MIPS32: Record missing implicit null checks
ImplicitNullChecks are recorded for HandleFieldGet and HandleFieldSet
instructions for longs after accessing first word.
This fixes following CTS tests:
* dot.junit.opcodes.iget_wide.JUnit_Test_iget_wide#testE2
* dot.junit.opcodes.iput_wide.JUnit_Test_iput_wide#testE2
Change-Id: I0a93370d4a78d36805a8d5a6c304ca0329da2363
Roland Levillain [Tue, 24 Nov 2015 13:10:05 +0000 (13:10 +0000)]
ARM64 read barrier support for concurrent GC in Optimizing.
This first implementation uses slow paths to instrument heap
reference loads and GC root loads for the concurrent copying
collector, respectively calling the artReadBarrierSlow and
artReadBarrierForRootSlow runtime entry points.
Notes:
- This implementation does not instrument HInvokeVirtual
nor HInvokeInterface instructions (for class reference
loads), as the corresponding read barriers are not stricly
required with the current concurrent copying collector.
- Intrinsics which may eventually call (on slow path) are
disabled when read barriers are enabled, as the current
slow path infrastructure does not support this case.
- When read barriers are enabled, the code generated for a
HArraySet instruction always go into the array set slow
path for object arrays (delegating the operation to the
runtime), as we are lacking a mechanism to keep a
temporary register live accross a runtime call (needed for
the instrumentation of type checking code, which requires
two successive read barriers).
Bug:
12687968
Change-Id: Icfb74f67bf23ae80e7723ee6a0c9ff34ba325d48
Roland Levillain [Tue, 24 Nov 2015 12:05:25 +0000 (12:05 +0000)]
Merge "Revamp art::CheckEntrypointTypes uses."
Roland Levillain [Mon, 23 Nov 2015 18:53:50 +0000 (18:53 +0000)]
Revamp art::CheckEntrypointTypes uses.
Change-Id: I6e13e594539e766ed94524ac3282cec292ba91da
Bruce Hoult [Wed, 28 Oct 2015 12:06:12 +0000 (15:06 +0300)]
Optimize some commonly used utf8 functions by:
- using counted loops instead of searching for terminating null. In
the important cases the caller already knows the length: change
the API to pass it in. Keep the old API version as well to avoid
extensive changes to non-critical debug and test code.
- ensure the common cases are at the start of if/then/else chains.
Usually 99+% of characters are ASCII even in mixed strings.
- for the "convert" functions, when both utf8 and utf16 lengths are
passed, and are equal, it means the entire string is ASCII, and a
specialized loop can be used. The compiler might then unroll or
even vectorize this.
The functions improved are (tested on Nexus 5 with a 44 character
ASCII string):
CountModifiedUtf8Chars : 20% faster
ConvertUtf16ToModifiedUtf8: 80% faster
ConvertModifiedUtf8ToUtf16: 200% faster
Also for completeness CountUtf8Bytes has been cleaned up a little, but
the speed is unchanged. Unlike CountModifiedUtf8Chars, it was already
passed the length, rather than searching for null.
Change-Id: I1c9b7dea3eda869fc9f5f6b4dd6be8cdd5bc3ac0