OSDN Git Service

android-x86/art.git
8 years agoMerge "Revert "Fix the ART Buildbots using the master-art manifest.""
Roland Levillain [Mon, 7 Dec 2015 12:38:49 +0000 (12:38 +0000)]
Merge "Revert "Fix the ART Buildbots using the master-art manifest.""

8 years agoRevert "Fix the ART Buildbots using the master-art manifest."
Roland Levillain [Mon, 7 Dec 2015 12:38:24 +0000 (12:38 +0000)]
Revert "Fix the ART Buildbots using the master-art manifest."

Reverting as repo syncing later won't work, as this symlink is an untracked file.

Bug: 26051370
This reverts commit f1389288c6f642e16b5d9a06ef43f982dfeeb30d.

Change-Id: Idd41955710b4d3d5809e4f6bf963ed3a4cead126

8 years agoMerge "Fix the ART Buildbots using the master-art manifest."
Roland Levillain [Mon, 7 Dec 2015 12:19:07 +0000 (12:19 +0000)]
Merge "Fix the ART Buildbots using the master-art manifest."

8 years agoFix the ART Buildbots using the master-art manifest.
Roland Levillain [Mon, 7 Dec 2015 12:04:03 +0000 (12:04 +0000)]
Fix the ART Buildbots using the master-art manifest.

When system/core/base/include/android-base is missing, create it as a
symlink to system/core/base/include/base.

This change is very brittle and is only to unblock the ART Buildbots.
It should be a temporary solution while we come up with something
better.

Bug: 26051370
Change-Id: Ie412fbf170e2cd260f77caaeb7af0b2e399ef3ab

8 years agoMerge "Annotate Boolean literals more uniformly in Optimizing's intrinsics."
Roland Levillain [Mon, 7 Dec 2015 11:15:14 +0000 (11:15 +0000)]
Merge "Annotate Boolean literals more uniformly in Optimizing's intrinsics."

8 years agoAnnotate Boolean literals more uniformly in Optimizing's intrinsics.
Roland Levillain [Fri, 4 Dec 2015 14:33:02 +0000 (14:33 +0000)]
Annotate Boolean literals more uniformly in Optimizing's intrinsics.

Change-Id: Ida40309b4bc170a18b4e5db552b77f021a7b89df

8 years agoMerge "Fix art::x86::IntrinsicLocationsBuilderX86::VisitUnsafeGetLong."
Roland Levillain [Mon, 7 Dec 2015 10:19:40 +0000 (10:19 +0000)]
Merge "Fix art::x86::IntrinsicLocationsBuilderX86::VisitUnsafeGetLong."

8 years agoMerge "MIPS32: Bit rotation intrinsics"
Andreas Gampe [Sat, 5 Dec 2015 02:08:06 +0000 (02:08 +0000)]
Merge "MIPS32: Bit rotation intrinsics"

8 years agoMerge "MIPS32: int java.lang.*.numberOfTrailingZeros"
Andreas Gampe [Sat, 5 Dec 2015 02:04:14 +0000 (02:04 +0000)]
Merge "MIPS32: int java.lang.*.numberOfTrailingZeros"

8 years agoMerge "MIPS32: int java.lang.*.numberOfLeadingZeros"
Andreas Gampe [Sat, 5 Dec 2015 02:02:13 +0000 (02:02 +0000)]
Merge "MIPS32: int java.lang.*.numberOfLeadingZeros"

8 years agoMerge "Make test 100 not depend on undefined ordering."
Alex Light [Fri, 4 Dec 2015 22:21:23 +0000 (22:21 +0000)]
Merge "Make test 100 not depend on undefined ordering."

8 years agoMake test 100 not depend on undefined ordering.
Alex Light [Fri, 4 Dec 2015 22:04:52 +0000 (14:04 -0800)]
Make test 100 not depend on undefined ordering.

Test 100 tested the officially unspecified ordering of the return
values of various reflection methods. This makes the test only check
the values contained in the array but not the order.

Change-Id: I775646321831f28f722d1db97335231df03ff923

8 years agoMerge "Store class tables in the image"
Mathieu Chartier [Fri, 4 Dec 2015 21:53:40 +0000 (21:53 +0000)]
Merge "Store class tables in the image"

8 years agoMerge "Add ElfWriter::GetStream()."
Vladimir Marko [Fri, 4 Dec 2015 17:53:27 +0000 (17:53 +0000)]
Merge "Add ElfWriter::GetStream()."

8 years agoMerge "Step-wise improvement of range analysis with outer loop induction."
Aart Bik [Fri, 4 Dec 2015 16:40:50 +0000 (16:40 +0000)]
Merge "Step-wise improvement of range analysis with outer loop induction."

8 years agoMerge "MIPS32: java.lang.*.reverse"
Andreas Gampe [Fri, 4 Dec 2015 16:28:11 +0000 (16:28 +0000)]
Merge "MIPS32: java.lang.*.reverse"

8 years agoAdd ElfWriter::GetStream().
Vladimir Marko [Thu, 3 Dec 2015 18:29:23 +0000 (18:29 +0000)]
Add ElfWriter::GetStream().

This will be used for writing the OatHeader which is
currently oddly written through the .text stream.

Also move the error delaying output stream out of the
ElfBuilder<> to its own file and move all output stream
files to compiler/linker/.

Change-Id: I00db4e33ed80ac4757ec459946c7b5ae014a3a2e

8 years agoMerge "Inline monomorphic calls."
Nicolas Geoffray [Fri, 4 Dec 2015 12:14:38 +0000 (12:14 +0000)]
Merge "Inline monomorphic calls."

8 years agoInline monomorphic calls.
Nicolas Geoffray [Thu, 17 Sep 2015 14:22:56 +0000 (15:22 +0100)]
Inline monomorphic calls.

Change-Id: If38171c2dc7d4a4378df5d050afc4fff4499c98f

8 years agoFix art::x86::IntrinsicLocationsBuilderX86::VisitUnsafeGetLong.
Roland Levillain [Thu, 3 Dec 2015 19:26:40 +0000 (19:26 +0000)]
Fix art::x86::IntrinsicLocationsBuilderX86::VisitUnsafeGetLong.

Change-Id: I7514a882ae73db53178f9ec00191619b871b77a6

8 years agoStep-wise improvement of range analysis with outer loop induction.
Aart Bik [Thu, 3 Dec 2015 19:23:35 +0000 (11:23 -0800)]
Step-wise improvement of range analysis with outer loop induction.

Rationale: Using a step-wise approach (rather than expanding all ranges
           at once) increases the opportunities for statically removing
           bound checks, as demonstrated by the new checker tests.

Change-Id: Icbfd9406523a069e1fb7508546ea94f896e5a255

8 years agoStore class tables in the image
Mathieu Chartier [Wed, 2 Dec 2015 23:44:07 +0000 (15:44 -0800)]
Store class tables in the image

Reduces how long it takes to load an application image.

N5 boot.art size
Before: 8007680
After: 8122368

Also reduces boot time by how long AddImageClassesToClassTable
used to take (~20ms).

Changed class hashes to be uint32_t to fix cross compilation. We need
serialized hash tables to be valid with different pointer sizes.

Bug: 22858531

Change-Id: I463fc83f499ff75f509e80c253a55b9116ee5b89

8 years agoMerge "No need merging bulk free list again when revoking thread local runs"
Hiroshi Yamauchi [Thu, 3 Dec 2015 23:43:27 +0000 (23:43 +0000)]
Merge "No need merging bulk free list again when revoking thread local runs"

8 years agoMerge "ART: Add test for DetachCurrentThread monitor behavior"
Andreas Gampe [Thu, 3 Dec 2015 23:12:26 +0000 (23:12 +0000)]
Merge "ART: Add test for DetachCurrentThread monitor behavior"

8 years agoMerge "imgdiag: Fix rarely flaky imgdiag_test."
Igor Murashkin [Thu, 3 Dec 2015 19:24:51 +0000 (19:24 +0000)]
Merge "imgdiag: Fix rarely flaky imgdiag_test."

8 years agoimgdiag: 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

8 years agoART: Add test for DetachCurrentThread monitor behavior
Andreas Gampe [Thu, 3 Dec 2015 18:56:18 +0000 (10:56 -0800)]
ART: Add test for DetachCurrentThread monitor behavior

DetachCurrentThread is supposed to release any locks acquired through
JNI. The functionality has been there, add a test.

Bug: 20453586
Change-Id: I537f38e3e4003fe0846d037dbb235f2ea6ff8716

8 years agoMerge "Revert "Enable profiled guided compilation in dex2oat""
Nicolas Geoffray [Wed, 2 Dec 2015 23:01:21 +0000 (23:01 +0000)]
Merge "Revert "Enable profiled guided compilation in dex2oat""

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

8 years agoMerge "Revert "Fix test path in libarttest.mk""
Nicolas Geoffray [Wed, 2 Dec 2015 23:00:37 +0000 (23:00 +0000)]
Merge "Revert "Fix test path in libarttest.mk""

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

8 years agoMerge "Revert "Fix the order in which profiled methods are dumped.""
Nicolas Geoffray [Wed, 2 Dec 2015 22:58:53 +0000 (22:58 +0000)]
Merge "Revert "Fix the order in which profiled methods are dumped.""

8 years agoMerge "Revert "Disable 554-jit-profile-file for unsupported test modes""
Nicolas Geoffray [Wed, 2 Dec 2015 22:58:39 +0000 (22:58 +0000)]
Merge "Revert "Disable 554-jit-profile-file for unsupported test modes""

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

8 years agoRevert "Fix the order in which profiled methods are dumped."
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

8 years agoMerge "ART: Fix Mac build"
Andreas Gampe [Wed, 2 Dec 2015 19:55:20 +0000 (19:55 +0000)]
Merge "ART: Fix Mac build"

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

8 years agoMerge "ART: Fix Makefile"
Andreas Gampe [Wed, 2 Dec 2015 19:51:29 +0000 (19:51 +0000)]
Merge "ART: Fix Makefile"

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

8 years agoMerge "Disable 554-jit-profile-file for unsupported test modes"
Calin Juravle [Wed, 2 Dec 2015 19:21:20 +0000 (19:21 +0000)]
Merge "Disable 554-jit-profile-file for unsupported test modes"

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

8 years agoMerge "ART: Support dlopen for a PIC boot image"
Andreas Gampe [Wed, 2 Dec 2015 19:02:29 +0000 (19:02 +0000)]
Merge "ART: Support dlopen for a PIC boot image"

8 years agoMerge "ART: Refactor oat_file.h/cc for better maintainability"
Andreas Gampe [Wed, 2 Dec 2015 19:01:46 +0000 (19:01 +0000)]
Merge "ART: Refactor oat_file.h/cc for better maintainability"

8 years agoART: Support dlopen for a PIC boot image
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

8 years agoART: Refactor oat_file.h/cc for better maintainability
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

8 years agoMerge "Fix the order in which profiled methods are dumped."
Calin Juravle [Wed, 2 Dec 2015 18:22:30 +0000 (18:22 +0000)]
Merge "Fix the order in which profiled methods are dumped."

8 years agoFix 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

8 years agoMerge "Fix test path in libarttest.mk"
Calin Juravle [Wed, 2 Dec 2015 17:03:39 +0000 (17:03 +0000)]
Merge "Fix test path in libarttest.mk"

8 years agoFix 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

8 years agoMerge "Enable profiled guided compilation in dex2oat"
Calin Juravle [Wed, 2 Dec 2015 16:18:40 +0000 (16:18 +0000)]
Merge "Enable profiled guided compilation in dex2oat"

8 years agoEnable 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

8 years agoMerge "Revert "Revert "Don't use the compiler driver for method resolution."""
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."""

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

8 years agoMerge "Clean up optimizing compiler stats"
Calin Juravle [Wed, 2 Dec 2015 12:10:26 +0000 (12:10 +0000)]
Merge "Clean up optimizing compiler stats"

8 years agoMerge "Revert "Revert "ART: Do not eagerly type LoopPhi [null, ...]"""
David Brazdil [Wed, 2 Dec 2015 12:04:18 +0000 (12:04 +0000)]
Merge "Revert "Revert "ART: Do not eagerly type LoopPhi [null, ...]"""

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

8 years agoMerge "Optimizing: Add checker tests for sharpening."
Vladimir Marko [Wed, 2 Dec 2015 11:37:04 +0000 (11:37 +0000)]
Merge "Optimizing: Add checker tests for sharpening."

8 years agoOptimizing: 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

8 years agoMerge "Revert "ART: Do not eagerly type LoopPhi [null, ...]""
David Brazdil [Wed, 2 Dec 2015 09:04:08 +0000 (09:04 +0000)]
Merge "Revert "ART: Do not eagerly type LoopPhi [null, ...]""

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

8 years agoMerge "ART: set growth limit to heap size when it is larger."
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."

8 years agoMerge "Dynamic BCE (based on induction range analysis)"
Aart Bik [Tue, 1 Dec 2015 22:44:35 +0000 (22:44 +0000)]
Merge "Dynamic BCE (based on induction range analysis)"

8 years agoDynamic 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

8 years agoMerge "Support null error_msg for select MemMap functions"
Mathieu Chartier [Tue, 1 Dec 2015 18:14:53 +0000 (18:14 +0000)]
Merge "Support null error_msg for select MemMap functions"

8 years agoMerge "Revert "Don't use the compiler driver for method resolution.""
Nicolas Geoffray [Tue, 1 Dec 2015 16:28:28 +0000 (16:28 +0000)]
Merge "Revert "Don't use the compiler driver for method resolution.""

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

8 years agoMerge "ART: Do not eagerly type LoopPhi [null, ...]"
David Brazdil [Tue, 1 Dec 2015 15:17:21 +0000 (15:17 +0000)]
Merge "ART: Do not eagerly type LoopPhi [null, ...]"

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

8 years agoMerge "Remove unnecessary workaround to vogar escaping issue"
Paul Duffin [Tue, 1 Dec 2015 14:43:54 +0000 (14:43 +0000)]
Merge "Remove unnecessary workaround to vogar escaping issue"

8 years agoMerge "Don't use the compiler driver for method resolution."
Nicolas Geoffray [Tue, 1 Dec 2015 14:24:03 +0000 (14:24 +0000)]
Merge "Don't use the compiler driver for method resolution."

8 years agoDon'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

8 years agoMerge "Move PC-relative addressing bases to a better position."
Vladimir Marko [Tue, 1 Dec 2015 14:15:52 +0000 (14:15 +0000)]
Merge "Move PC-relative addressing bases to a better position."

8 years agoRemove unnecessary workaround to vogar escaping issue
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

8 years agoClean up optimizing compiler stats
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

8 years agoMerge "Optimizing/ARM: Implement kDexCachePcRelative dispatch."
Vladimir Marko [Tue, 1 Dec 2015 12:57:09 +0000 (12:57 +0000)]
Merge "Optimizing/ARM: Implement kDexCachePcRelative dispatch."

8 years agoMove PC-relative addressing bases to a better position.
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

8 years agoOptimizing/ARM: Implement kDexCachePcRelative dispatch.
Vladimir Marko [Tue, 24 Nov 2015 13:45:23 +0000 (13:45 +0000)]
Optimizing/ARM: Implement kDexCachePcRelative dispatch.

Change-Id: I0fe2da50a30a3f62bec8ea01688dd1fec84b1831

8 years agoMerge "Refactor oat file writing to give Dex2Oat more control."
Vladimir Marko [Tue, 1 Dec 2015 10:16:19 +0000 (10:16 +0000)]
Merge "Refactor oat file writing to give Dex2Oat more control."

8 years agoMIPS32: Bit rotation intrinsics
Chris Larsen [Wed, 18 Nov 2015 20:30:20 +0000 (12:30 -0800)]
MIPS32: Bit rotation intrinsics

- int java.lang.Integer.rotateLeft(int i, int distance)
- int java.lang.Integer.rotateRight(int i, int distance)
- long java.lang.Long.rotateLeft(long i, int distance)
- long java.lang.Long.rotateRight(long i, int distance)

Change-Id: I7620ee12562c0dd55476a1d54e225c5e624cfb5b

8 years agoMIPS32: int java.lang.*.numberOfTrailingZeros
Chris Larsen [Wed, 18 Nov 2015 20:27:52 +0000 (12:27 -0800)]
MIPS32: int java.lang.*.numberOfTrailingZeros

- int java.lang.Integer.numberOfTrailingZeros(int)
- int java.lang.Long.numberOfTrailingZeros(long)

Change-Id: I3392cfad40b2a9f076912f8041cd0a60b6b680ea

8 years agoMIPS32: int java.lang.*.numberOfLeadingZeros
Chris Larsen [Wed, 18 Nov 2015 20:27:15 +0000 (12:27 -0800)]
MIPS32: int java.lang.*.numberOfLeadingZeros

- int java.lang.Integer.numberOfLeadingZeros(int)
- int java.lang.Long.numberOfLeadingZeros(long)

Change-Id: Icaf746cb807863f944ff4ebb5da6e6b2846eac58

8 years agoMerge "Revert "Change LoadNativeLibrary to use GetOrCreateAllocator""
Mathieu Chartier [Tue, 1 Dec 2015 01:20:12 +0000 (01:20 +0000)]
Merge "Revert "Change LoadNativeLibrary to use GetOrCreateAllocator""

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

8 years agoMerge "Make debugger support default methods."
Alex Light [Mon, 30 Nov 2015 23:37:10 +0000 (23:37 +0000)]
Merge "Make debugger support default methods."

8 years agoMIPS32: java.lang.*.reverse
Chris Larsen [Wed, 18 Nov 2015 20:26:08 +0000 (12:26 -0800)]
MIPS32: java.lang.*.reverse

- int java.lang.Integer.reverse(int)
- long java.lang.Long.reverse(long)

Change-Id: I18d0f784b9e4bffdc1bda3604f4ed7d3c57b8d68

8 years agoMerge "Change LoadNativeLibrary to use GetOrCreateAllocator"
Mathieu Chartier [Mon, 30 Nov 2015 23:00:33 +0000 (23:00 +0000)]
Merge "Change LoadNativeLibrary to use GetOrCreateAllocator"

8 years agoSupport null error_msg for select MemMap functions
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

8 years agoMake debugger support default methods.
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

8 years agoChange LoadNativeLibrary to use GetOrCreateAllocator
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

8 years agoMerge "Do not build art with clang for mips64"
Chih-hung Hsieh [Mon, 30 Nov 2015 19:46:10 +0000 (19:46 +0000)]
Merge "Do not build art with clang for mips64"

8 years agoDo 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

8 years agoMerge "Test case for getting annotations of renamed enums."
Jeff Hao [Mon, 30 Nov 2015 18:48:59 +0000 (18:48 +0000)]
Merge "Test case for getting annotations of renamed enums."

8 years agoTest 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

8 years agoRefactor oat file writing to give Dex2Oat more control.
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

8 years agoMerge "Accept synthetic phi nodes and general names for blocks."
Aart Bik [Mon, 30 Nov 2015 17:28:16 +0000 (17:28 +0000)]
Merge "Accept synthetic phi nodes and general names for blocks."

8 years agoMerge "Temporarily omit MIPS floating point registers in DWARF."
David Srbecky [Fri, 27 Nov 2015 14:08:26 +0000 (14:08 +0000)]
Merge "Temporarily omit MIPS floating point registers in DWARF."

8 years agoTemporarily 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

8 years agoMerge "MIPS64: Fix stub_test implementation"
Vladimir Marko [Fri, 27 Nov 2015 11:23:00 +0000 (11:23 +0000)]
Merge "MIPS64: Fix stub_test implementation"

8 years agoMIPS64: 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

8 years agoMerge "Add stack locations to DWARF parameters."
David Srbecky [Fri, 27 Nov 2015 01:59:40 +0000 (01:59 +0000)]
Merge "Add stack locations to DWARF parameters."