OSDN Git Service

android-x86/art.git
8 years agoMerge "Extend De Morgan factorisation to `HBooleanNot`."
David Brazdil [Fri, 5 Feb 2016 16:07:44 +0000 (16:07 +0000)]
Merge "Extend De Morgan factorisation to `HBooleanNot`."

8 years agoMerge "Revert "Implement on-stack replacement for arm/arm64/x86/x86_64.""
David Brazdil [Fri, 5 Feb 2016 15:47:16 +0000 (15:47 +0000)]
Merge "Revert "Implement on-stack replacement for arm/arm64/x86/x86_64.""

8 years agoRevert "Implement on-stack replacement for arm/arm64/x86/x86_64."
David Brazdil [Fri, 5 Feb 2016 15:46:42 +0000 (15:46 +0000)]
Revert "Implement on-stack replacement for arm/arm64/x86/x86_64."

DCHECK whether loop headers are covered fails.

This reverts commit 891bc286963892ed96134ca1adb7822737af9710.

Change-Id: I0f9a90630b014b16d20ba1dfba31ce63e6648021

8 years agoMerge "Implement on-stack replacement for arm/arm64/x86/x86_64."
Nicolas Geoffray [Fri, 5 Feb 2016 14:39:18 +0000 (14:39 +0000)]
Merge "Implement on-stack replacement for arm/arm64/x86/x86_64."

8 years agoMerge "Support CMOV for x86_64 Select"
David Brazdil [Fri, 5 Feb 2016 14:26:53 +0000 (14:26 +0000)]
Merge "Support CMOV for x86_64 Select"

8 years agoExtend De Morgan factorisation to `HBooleanNot`.
Alexandre Rames [Fri, 5 Feb 2016 14:00:28 +0000 (14:00 +0000)]
Extend De Morgan factorisation to `HBooleanNot`.

Change-Id: I81aa92277fa136d675e7ef01be8e4acdbd3d3b7c

8 years agoMerge "Do not emit DWARF debug info if there are no methods."
David Srbecky [Fri, 5 Feb 2016 13:47:49 +0000 (13:47 +0000)]
Merge "Do not emit DWARF debug info if there are no methods."

8 years agoMerge "Add some more tests to those breaking since move to OpenJDK"
Paul Duffin [Fri, 5 Feb 2016 13:39:20 +0000 (13:39 +0000)]
Merge "Add some more tests to those breaking since move to OpenJDK"

8 years agoMerge "Revert "Disable test for now.""
Nicolas Geoffray [Fri, 5 Feb 2016 13:19:37 +0000 (13:19 +0000)]
Merge "Revert "Disable test for now.""

8 years agoRevert "Disable test for now."
Nicolas Geoffray [Fri, 5 Feb 2016 13:19:23 +0000 (13:19 +0000)]
Revert "Disable test for now."

This reverts commit 0a57b45f83d6aa8876e6e91d0e5b3f62a1690d3f.

Change-Id: I8348fdaa62cc86e3b03466844715397f6601b7c8

8 years agoMerge "Revert "Revert "X86: Use the constant area for more operations."""
David Brazdil [Fri, 5 Feb 2016 13:12:24 +0000 (13:12 +0000)]
Merge "Revert "Revert "X86: Use the constant area for more operations."""

8 years agoDo not emit DWARF debug info if there are no methods.
David Srbecky [Fri, 5 Feb 2016 11:42:23 +0000 (11:42 +0000)]
Do not emit DWARF debug info if there are no methods.

Change-Id: I43406e54b454dbac45980d5c5edd90cd5593b9fd

8 years agoAdd some more tests to those breaking since move to OpenJDK
Paul Duffin [Fri, 5 Feb 2016 11:46:26 +0000 (11:46 +0000)]
Add some more tests to those breaking since move to OpenJDK

Adds the names of some new failing tests that were created by
splitting out parts of the SimpleDateFormatTest method
test_parseLjava_lang_StringLjava_text_ParsePosition into their
own methods. That was done to highlight those failures that were
previously hidden by an earlier failure in the method.

Bug: 25998255
Change-Id: If3bde4fa4c8ae4b39fd89e18e8fd6a9a2ab739ba

8 years agoImplement on-stack replacement for arm/arm64/x86/x86_64.
Nicolas Geoffray [Fri, 29 Jan 2016 12:40:13 +0000 (12:40 +0000)]
Implement on-stack replacement for arm/arm64/x86/x86_64.

High-level overview:
- osr_method_threshold is used to know when to compile a method
  in osr mode (-> treat all loops as irreducible).
- branch instructions in the compiler query whether they can
  jump to an osr method.
- An osr entry point is found through the stack maps: if a stack
  map is duplicated in the CodeInfo, it is an osr entry point.

Change-Id: Ifb39338cd281e2c7eccce67f4e18d46428be71e4

8 years agoMerge changes I514f1db3,I7dc1c7c0
David Srbecky [Fri, 5 Feb 2016 11:33:47 +0000 (11:33 +0000)]
Merge changes I514f1db3,I7dc1c7c0

* changes:
  Generate mini-debug-info on separate thread.
  Change the method which generates DWARF mini-debug-info.

8 years agoGenerate mini-debug-info on separate thread.
David Srbecky [Fri, 22 Jan 2016 19:19:25 +0000 (19:19 +0000)]
Generate mini-debug-info on separate thread.

The generation and compression of mini-debug-info is a lot of work.
However, we can do it on background thread when the main thread is
busy with .rodata and .text related I/O.

Change-Id: I514f1db3cb50aa250639f3ef697faa9bc9976d12

8 years agoChange the method which generates DWARF mini-debug-info.
David Srbecky [Fri, 5 Feb 2016 09:40:10 +0000 (09:40 +0000)]
Change the method which generates DWARF mini-debug-info.

This splits some code from CL198651. It moves the WriteSection
call out one level and does not otherwise change behaviour.

Change-Id: I7dc1c7c08b577b50bf6fa366a9b0ca757048b81e

8 years agoMerge "ART: Avoid uninitialized padding in LinkerPatch."
Vladimir Marko [Fri, 5 Feb 2016 09:57:59 +0000 (09:57 +0000)]
Merge "ART: Avoid uninitialized padding in LinkerPatch."

8 years agoMerge "Revert "ART: Enable Jit Profiling in Mterp for arm/arm64""
Nicolas Geoffray [Fri, 5 Feb 2016 09:24:32 +0000 (09:24 +0000)]
Merge "Revert "ART: Enable Jit Profiling in Mterp for arm/arm64""

8 years agoRevert "ART: Enable Jit Profiling in Mterp for arm/arm64"
Nicolas Geoffray [Fri, 5 Feb 2016 09:24:02 +0000 (09:24 +0000)]
Revert "ART: Enable Jit Profiling in Mterp for arm/arm64"

Not super happy to revert this, but unfortunately, too many problems when testing:

arm: tests timeout when running run-tests with the interpreter.

arm64 failures:
test-art-target-run-test-ndebug-prebuild-jit-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-003-omnibus-opcodes64
test-art-target-run-test-ndebug-prebuild-jit-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-005-annotations64
test-art-target-run-test-ndebug-prebuild-jit-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-064-field-access64
test-art-target-run-test-ndebug-prebuild-jit-relocate-ntrace-cms-checkjni-image-npictest-ndebuggable-406-fields64

  org.apache.harmony.jpda.tests.jdwp.Events.EventWithExceptionTest#testBreakpoint_BeforeException
org.apache.harmony.jpda.tests.jdwp.Events.EventWithExceptionTest#testFieldAccess
org.apache.harmony.jpda.tests.jdwp.Events.EventWithExceptionTest#testFieldModification
org.apache.harmony.jpda.tests.jdwp.Events.EventWithExceptionTest#testMethodExit
org.apache.harmony.jpda.tests.jdwp.Events.EventWithExceptionTest#testMethodExitWithReturnValue
org.apache.harmony.jpda.tests.jdwp.Events.FieldAccessTest#testFieldAccessEvent
org.apache.harmony.jpda.tests.jdwp.Events.FieldModification002Test#testFieldModifyEvent
org.apache.harmony.jpda.tests.jdwp.Events.FieldModificationTest#testFieldModifyEvent
org.apache.harmony.jpda.tests.jdwp.Events.MethodExitWithReturnValueTest#testMethodExitWithReturnValueException

This reverts commit a0a16105423459287497a98129dcba2828ccd7f0.

Change-Id: I8ff0512265ed0a422be67e7410998ad02639509c

8 years agoMerge "Disable test for now."
Nicolas Geoffray [Fri, 5 Feb 2016 08:50:23 +0000 (08:50 +0000)]
Merge "Disable test for now."

8 years agoDisable test for now.
Nicolas Geoffray [Fri, 5 Feb 2016 08:46:27 +0000 (08:46 +0000)]
Disable test for now.

Change-Id: I03af3ee1627d6eade46d8bd74ac9eb60245d66fc

8 years agoMerge "Use GC critical section for adding and removing app images"
Mathieu Chartier [Fri, 5 Feb 2016 00:25:39 +0000 (00:25 +0000)]
Merge "Use GC critical section for adding and removing app images"

8 years agoUse GC critical section for adding and removing app images
Mathieu Chartier [Thu, 4 Feb 2016 21:31:46 +0000 (13:31 -0800)]
Use GC critical section for adding and removing app images

A SuspendAll was not sufficient since there are points during the GC
when the mutator lock can be temporarily released. This was causing
at least some assert failures in CC such as attempting to clear
black read barrier pointers on app image objects with white read
barrier pointers.

Bug: 26979834
Bug: 26970811
Bug: 26786304
Bug: 22858531

Change-Id: I375fc05e787e629c40de6f345802447c02601ff0

8 years agoMerge "runtime: Cleanup comments for kAccSkipAccessChecks"
Igor Murashkin [Thu, 4 Feb 2016 23:30:13 +0000 (23:30 +0000)]
Merge "runtime: Cleanup comments for kAccSkipAccessChecks"

8 years agoMerge "ART: Enable Jit Profiling in Mterp for arm/arm64"
Bill Buzbee [Thu, 4 Feb 2016 22:12:43 +0000 (22:12 +0000)]
Merge "ART: Enable Jit Profiling in Mterp for arm/arm64"

8 years agoART: Avoid uninitialized padding in LinkerPatch.
Vladimir Marko [Thu, 4 Feb 2016 20:01:32 +0000 (20:01 +0000)]
ART: Avoid uninitialized padding in LinkerPatch.

Bug: 26956807
Change-Id: I0cb54a4443109de9bc95728d96bd1f80810e68a3

8 years agoMerge "madvise away app image dex cache arrays"
Mathieu Chartier [Thu, 4 Feb 2016 19:56:56 +0000 (19:56 +0000)]
Merge "madvise away app image dex cache arrays"

8 years agoMerge "Use correct requested alloc space begin for CC"
Mathieu Chartier [Thu, 4 Feb 2016 19:18:20 +0000 (19:18 +0000)]
Merge "Use correct requested alloc space begin for CC"

8 years agomadvise away app image dex cache arrays
Mathieu Chartier [Thu, 4 Feb 2016 00:40:20 +0000 (16:40 -0800)]
madvise away app image dex cache arrays

This saves ram and PSS by reducing the number of mapped pages. Also
PROT_NONE the dex cache arrays section to make accesses fault.

virtual                     shared   shared  private  private
size      RSS      PSS    clean    dirty    clean    dirty     swap
-------- -------- -------- -------- -------- -------- -------- --------
Before:
/data/app/com.facebook.katana-2/oat/arm/base.art
52484    52144    43522    17244        0        0    34900        0
/data/app/com.google.android.apps.maps-2/oat/arm/base.art
 6876     6816     6816        0        0     2008     4808        0

After:
/data/app/com.facebook.katana-2/oat/arm/base.art
52484    49204    42032    14344        0        0    34860        0
/data/app/com.google.android.apps.maps-2/oat/arm/base.art
 6876     6388     6388        0        0     1584     4804        0

Bug: 22858531

Change-Id: I87888a7c1518a92736dbd29eed338e7472ae3587

8 years agoMerge "Don't use native bridge for non zygote-spawn processes"
Calin Juravle [Thu, 4 Feb 2016 19:14:40 +0000 (19:14 +0000)]
Merge "Don't use native bridge for non zygote-spawn processes"

8 years agoDon't use native bridge for non zygote-spawn processes
Calin Juravle [Thu, 4 Feb 2016 19:07:51 +0000 (19:07 +0000)]
Don't use native bridge for non zygote-spawn processes

... unless we force it for testing purposes.

Bug: 26954924
Change-Id: Ib4660a35175abb479d0399e18b6194eb04dbc248

8 years agoruntime: Cleanup comments for kAccSkipAccessChecks
Igor Murashkin [Thu, 4 Feb 2016 19:01:21 +0000 (11:01 -0800)]
runtime: Cleanup comments for kAccSkipAccessChecks

Bug: 22414682
Change-Id: I5a19cba0fb1d6b55639c173582d547f85bc26779

8 years agoRevert "Revert "X86: Use the constant area for more operations.""
Mark P Mendell [Mon, 25 Jan 2016 14:47:50 +0000 (14:47 +0000)]
Revert "Revert "X86: Use the constant area for more operations.""

This reverts commit cf8d1bb97e193e02b430d707d3b669565fababb4.

Handle the case of an intrinsic where CurrentMethod is still an input.
This will be the case when there are unresolved classes in the
hierarchy.

Add a test case to confirm that we don't crash when handling Math.abs,
which wants to add a pointer to the constant area for the bitmask to be
used to remove the sign bit.

Enhance 565-checker-condition-liveness to check for the case of deeply
nested EmitAtUseSite chains.

Change-Id: I022e8b96a32f5bf464331d0c318c56b9d0ac3c9a

8 years agoMerge "Ignore ZipFileTest#testZipFileWithLotsOfEntries failures with CC on N5."
Roland Levillain [Thu, 4 Feb 2016 17:59:08 +0000 (17:59 +0000)]
Merge "Ignore ZipFileTest#testZipFileWithLotsOfEntries failures with CC on N5."

8 years agoMerge "Ignore DeflaterOutputStreamTest#testSyncFlushEnabled failures with CC."
Roland Levillain [Thu, 4 Feb 2016 17:57:48 +0000 (17:57 +0000)]
Merge "Ignore DeflaterOutputStreamTest#testSyncFlushEnabled failures with CC."

8 years agoIgnore ZipFileTest#testZipFileWithLotsOfEntries failures with CC on N5.
Roland Levillain [Thu, 4 Feb 2016 17:51:13 +0000 (17:51 +0000)]
Ignore ZipFileTest#testZipFileWithLotsOfEntries failures with CC on N5.

This test sometimes fails with a
java.util.concurrent.TimeoutException on ART Builbot's
hammerhead concurrent collector configuration:
* libcore.java.util.zip.ZipFileTest#testZipFileWithLotsOfEntries

Disable it while we investigate.

Bug: 26711853
Change-Id: I22d2c1f7ae6fc447045dfa0f7075b10e5b2094ae

8 years agoUse correct requested alloc space begin for CC
Mathieu Chartier [Thu, 4 Feb 2016 17:50:22 +0000 (09:50 -0800)]
Use correct requested alloc space begin for CC

Now we restore the original value instead of setting to null.

Bug: 26970047
Change-Id: I94d546c3a69ddf11805990a1003707bf55013328

8 years agoIgnore DeflaterOutputStreamTest#testSyncFlushEnabled failures with CC.
Roland Levillain [Thu, 4 Feb 2016 17:29:22 +0000 (17:29 +0000)]
Ignore DeflaterOutputStreamTest#testSyncFlushEnabled failures with CC.

This test sometimes fails with a
java.util.concurrent.TimeoutException on ART Builbot's
x86 concurrent collector configuration:
* libcore.java.util.zip.DeflaterOutputStreamTest#testSyncFlushEnabled

Disable it while we investigate.

Bug: 26507762
Change-Id: I4f026c20a555f985a17bf785606cae53f3f804d3

8 years agoMerge "Fixed bug on premature DCHECK. With fail-before/pass-after test"
Aart Bik [Thu, 4 Feb 2016 16:59:17 +0000 (16:59 +0000)]
Merge "Fixed bug on premature DCHECK. With fail-before/pass-after test"

8 years agoSupport CMOV for x86_64 Select
Mark Mendell [Mon, 1 Feb 2016 15:08:35 +0000 (10:08 -0500)]
Support CMOV for x86_64 Select

If possible, generate CMOV to implement HSelect.  Tricky cases are
an FP condition (no single CC generated), FP inputs (no FP CMOV)
and when the condition is a boolean or not emitted at the use site.
In these cases, keep using the existing HSelect code.

Added Load32BitValue for int and FP and used that to remove code
duplication. Added minimal checker test for int/long CMOV generation.

Change-Id: Id71e515f0afa5a30f53c5de3a5244de1ea429aae
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoMerge "Re-enable some MIPS/MIPS64 run-tests"
Roland Levillain [Thu, 4 Feb 2016 16:44:57 +0000 (16:44 +0000)]
Merge "Re-enable some MIPS/MIPS64 run-tests"

8 years agoART: Enable Jit Profiling in Mterp for arm/arm64
buzbee [Wed, 3 Feb 2016 23:23:56 +0000 (15:23 -0800)]
ART: Enable Jit Profiling in Mterp for arm/arm64

Adds the hooks for branch profiling to arm and arm64.  The
other Jit profiling modes are handled in common code.

Stubbed out support for on-stack replacement.

Change-Id: Ic298a81139108c3d7f1325b59d97e14a9de08de6

8 years agoMerge "Test 565-checker-doublenegbitwise applies to all architectures."
Roland Levillain [Thu, 4 Feb 2016 14:36:46 +0000 (14:36 +0000)]
Merge "Test 565-checker-doublenegbitwise applies to all architectures."

8 years agoRe-enable some MIPS/MIPS64 run-tests
Goran Jakovljevic [Thu, 4 Feb 2016 14:18:41 +0000 (15:18 +0100)]
Re-enable some MIPS/MIPS64 run-tests

These tests are passing now on MIPS/MIPS64:
- 441-checker-inliner
- 536-checker-intrinsic-optimization
- 557-checker-instruction-simplifier-ror

Change-Id: I57b82f8ec1e774e8e0a16ba289e50aa4a764b96b

8 years agoMerge "Reduce the size of native debug info generated by JIT."
David Srbecky [Thu, 4 Feb 2016 13:17:41 +0000 (13:17 +0000)]
Merge "Reduce the size of native debug info generated by JIT."

8 years agoReduce the size of native debug info generated by JIT.
David Srbecky [Thu, 28 Jan 2016 20:01:28 +0000 (20:01 +0000)]
Reduce the size of native debug info generated by JIT.

Remove some ELF file overheads:
 - Do not produce program headers.
 - Do not page align strtab.
 - Do not write oat_patches sections.

This more than halves the size of JIT native debug info.
Since we generate many small entries, the overheads added up.

Change-Id: I27d95548c61e2e38c3683d6f5eb870a2db6e812d

8 years agoTest 565-checker-doublenegbitwise applies to all architectures.
Alexandre Rames [Thu, 4 Feb 2016 13:16:08 +0000 (13:16 +0000)]
Test 565-checker-doublenegbitwise applies to all architectures.

Change-Id: Icd8c54b5b8e90f839c4ef1646074f70be1cfe094

8 years agoMerge "runtime: Don't skip verification for -Xverify:soft-fail"
Igor Murashkin [Thu, 4 Feb 2016 00:34:43 +0000 (00:34 +0000)]
Merge "runtime: Don't skip verification for -Xverify:soft-fail"

8 years agoMerge "Strip image-format arg in dex2oat"
Mathieu Chartier [Thu, 4 Feb 2016 00:22:21 +0000 (00:22 +0000)]
Merge "Strip image-format arg in dex2oat"

8 years agoStrip image-format arg in dex2oat
Mathieu Chartier [Wed, 3 Feb 2016 23:50:29 +0000 (15:50 -0800)]
Strip image-format arg in dex2oat

Avoids printing it out to prevent spam.

Bug: 22858531

Change-Id: I9d0b35b8fa317bc39ab27946baa88812a32381e2

8 years agoMerge "Fix class_linker_test to take into account default methods."
Alex Light [Wed, 3 Feb 2016 21:51:04 +0000 (21:51 +0000)]
Merge "Fix class_linker_test to take into account default methods."

8 years agoFix class_linker_test to take into account default methods.
Alex Light [Wed, 3 Feb 2016 21:45:41 +0000 (13:45 -0800)]
Fix class_linker_test to take into account default methods.

Bug: 26963208
Change-Id: Ie22ce4e7fae3b259b9a58356dbd9662fda6d49e3

8 years agoruntime: Don't skip verification for -Xverify:soft-fail
Igor Murashkin [Wed, 3 Feb 2016 00:56:50 +0000 (16:56 -0800)]
runtime: Don't skip verification for -Xverify:soft-fail

When forcing the interpreter into access checks mode,
make sure that the regular verification is still run,
giving the verifier an opportunity to throw a VerifyError.

If verification would've succeeded (without -Xverify:soft-fail flag),
override this and soft-fail, to force the interpreter-with-access-checks to be run
instead of the normal faster interpreter.

This fixes the following run-tests under the interpeter-access-checks:
* 135
* 412
* 471
* 506
* 800

Bug: 22414682
Change-Id: I5cb86a8bba71c7af9361a63c0802786c852b857b

8 years agoMerge "Avoid read barrier for UpdateEntrypoints"
Mathieu Chartier [Wed, 3 Feb 2016 21:22:49 +0000 (21:22 +0000)]
Merge "Avoid read barrier for UpdateEntrypoints"

8 years agoFixed bug on premature DCHECK.
Aart Bik [Wed, 3 Feb 2016 20:56:02 +0000 (12:56 -0800)]
Fixed bug on premature DCHECK.
With fail-before/pass-after test

bug=26947011

Rationale:
During BCE, the phi structure is under construction,
to be fixed by InsertPhiNodes() and carefully checked
with the SSA checker. So utilities should not overly
DCHECK on SSA consistency during the modifications.

Change-Id: Ia9df9ee5aac0c1dd2c3e3a447c730246d5e48bbb

8 years agoMerge changes I44ee74d8,I78b17187
Igor Murashkin [Wed, 3 Feb 2016 20:15:05 +0000 (20:15 +0000)]
Merge changes I44ee74d8,I78b17187

* changes:
  runtime: Update Proxy to assume 1 less direct method
  runtime: Fix field resolution with access checks (runtest 073)

8 years agoMerge changes from topic 'reflection_1_8'
Igor Murashkin [Wed, 3 Feb 2016 20:13:59 +0000 (20:13 +0000)]
Merge changes from topic 'reflection_1_8'

* changes:
  Revert "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""
  interpreter: Fix proxy method invocation with access checks enabled.

8 years agoAvoid read barrier for UpdateEntrypoints
Mathieu Chartier [Wed, 3 Feb 2016 19:48:27 +0000 (11:48 -0800)]
Avoid read barrier for UpdateEntrypoints

Somehow not caught by local testing.

Bug: 26786304
Change-Id: Ib9b53c0252bc053013fddd63c8146f4057a38453

8 years agoMerge "Minor improvement on static BCE analysis."
Aart Bik [Wed, 3 Feb 2016 17:29:11 +0000 (17:29 +0000)]
Merge "Minor improvement on static BCE analysis."

8 years agoMinor improvement on static BCE analysis.
Aart Bik [Tue, 2 Feb 2016 21:26:16 +0000 (13:26 -0800)]
Minor improvement on static BCE analysis.

Rationale:
Avoid testing initial range if nothing is known.

Change-Id: I22646a5fd6e4481245d1a2f57891d2805550489f

8 years agoMerge "Implement first kind of polymorphic inlining on MIPS."
Roland Levillain [Wed, 3 Feb 2016 12:28:41 +0000 (12:28 +0000)]
Merge "Implement first kind of polymorphic inlining on MIPS."

8 years agoImplement first kind of polymorphic inlining on MIPS.
Roland Levillain [Wed, 3 Feb 2016 12:27:20 +0000 (12:27 +0000)]
Implement first kind of polymorphic inlining on MIPS.

Change-Id: Ie430d6c5821273143a1872b376e8e24683d00ab0

8 years agoMerge "Revert "Revert "Optimizing: double-negated bitwise operations simplifications"""
Roland Levillain [Wed, 3 Feb 2016 12:14:14 +0000 (12:14 +0000)]
Merge "Revert "Revert "Optimizing: double-negated bitwise operations simplifications"""

8 years agoRevert "Revert "Optimizing: double-negated bitwise operations simplifications""
Alexandre Rames [Wed, 3 Feb 2016 10:54:07 +0000 (10:54 +0000)]
Revert "Revert "Optimizing: double-negated bitwise operations simplifications""

This reverts commit 737c0a99dfbba306ec1f50e2adf66b5d97805af6 with fixes.

In the original patch, the new instruction could be inserted before
one of its inputs. A regression test is also added.

Change-Id: Ie49a17ac90ff048355d9cc944b468cd1b1914424

8 years agoMerge "ART: Fix rounding up in DexCacheArraysLayout constructor."
Vladimir Marko [Wed, 3 Feb 2016 10:51:15 +0000 (10:51 +0000)]
Merge "ART: Fix rounding up in DexCacheArraysLayout constructor."

8 years agoMerge "Assume fp operations can also take a constant on x86."
Nicolas Geoffray [Wed, 3 Feb 2016 10:44:56 +0000 (10:44 +0000)]
Merge "Assume fp operations can also take a constant on x86."

8 years agoMerge "Write DWARF strings inline and remove .debug_str section."
David Srbecky [Wed, 3 Feb 2016 10:43:03 +0000 (10:43 +0000)]
Merge "Write DWARF strings inline and remove .debug_str section."

8 years agoWrite DWARF strings inline and remove .debug_str section.
David Srbecky [Mon, 1 Feb 2016 15:37:32 +0000 (15:37 +0000)]
Write DWARF strings inline and remove .debug_str section.

This means we no longer de-duplicate strings. Contra-intuitively this
saves space since removal of the indirection (4 bytes per string)
outweights the saving that we had from removal of duplicated strings.

The removal of buffering and deduplication also speeds up the processing.

Change-Id: Iee559094ed6180363e1665fbc79493e624b63435

8 years agoMerge "Share DWARF .debug_abbrev sections."
David Srbecky [Wed, 3 Feb 2016 10:39:42 +0000 (10:39 +0000)]
Merge "Share DWARF .debug_abbrev sections."

8 years agoShare DWARF .debug_abbrev sections.
David Srbecky [Fri, 29 Jan 2016 18:59:56 +0000 (18:59 +0000)]
Share DWARF .debug_abbrev sections.

Restructure the code so that all compilation units share the same
.debug_abbrev sections.  This deduplicates many of the abbrevs.

Change-Id: I7da07a8c850871786df52674183c16d574684729

8 years agoAssume fp operations can also take a constant on x86.
Nicolas Geoffray [Wed, 3 Feb 2016 10:13:41 +0000 (10:13 +0000)]
Assume fp operations can also take a constant on x86.

Because irreducible loops disable the constant pool optimization
on x86, we need to handle cases where a fp operation gets one.

Change-Id: I43387f31aa2589d02112953baa62fd0994d0a6d7

8 years agoMerge "ART: Enable multi-level instruction inlining"
David Brazdil [Wed, 3 Feb 2016 10:00:20 +0000 (10:00 +0000)]
Merge "ART: Enable multi-level instruction inlining"

8 years agoART: Enable multi-level instruction inlining
David Brazdil [Tue, 2 Feb 2016 16:50:46 +0000 (16:50 +0000)]
ART: Enable multi-level instruction inlining

Change-Id: I4b4c927d7b1598dc197793c25185fb079dec7fe1

8 years agoMerge "Handle HSelect in LSE."
Mingyao Yang [Wed, 3 Feb 2016 07:21:05 +0000 (07:21 +0000)]
Merge "Handle HSelect in LSE."

8 years agoHandle HSelect in LSE.
Mingyao Yang [Wed, 3 Feb 2016 04:10:32 +0000 (20:10 -0800)]
Handle HSelect in LSE.

HSelect essentially creates an alias which breaks the singleton
assumption. Need to handle the case in singleton detection.

Bug: 26922558
Change-Id: I259deefe16e1e16c08179a10369cfe5ae23ae155

8 years agoMerge "Prevent crashes if boot images fail to load"
Mathieu Chartier [Wed, 3 Feb 2016 03:02:54 +0000 (03:02 +0000)]
Merge "Prevent crashes if boot images fail to load"

8 years agoPrevent crashes if boot images fail to load
Mathieu Chartier [Wed, 3 Feb 2016 01:24:39 +0000 (17:24 -0800)]
Prevent crashes if boot images fail to load

We now reset the requested_alloc_space_begin so that there are no gaps
between any boot images and the non moving space.

Also clear boot_image_spaces so that ClassLinker::InitFromBootImage is
not called.

Finally, delete image spaces so that the maps and oat files are
unmapped.

Bug: 26913820

(cherry picked from commit 1e5ff87e774fdbd46efb1d2f61b1b2ab80145a19)

Change-Id: Ia31937f29ef217eac083165dfff37cd068fbd32b

8 years agoMerge "Fix updating string dex cache array for no class table case"
Mathieu Chartier [Wed, 3 Feb 2016 00:18:12 +0000 (00:18 +0000)]
Merge "Fix updating string dex cache array for no class table case"

8 years agoFix updating string dex cache array for no class table case
Mathieu Chartier [Tue, 2 Feb 2016 18:09:58 +0000 (10:09 -0800)]
Fix updating string dex cache array for no class table case

The issue was that array classes do not have a dex cache. Also removed
some unnecessary mutables.

Bug: 22858531
Change-Id: I2bc45f019e064b6e562c8f158cc2ac8c0e513afd

8 years agoMerge "Fix remaining read barrier issues in image relocation"
Mathieu Chartier [Wed, 3 Feb 2016 00:08:44 +0000 (00:08 +0000)]
Merge "Fix remaining read barrier issues in image relocation"

8 years agoFix remaining read barrier issues in image relocation
Mathieu Chartier [Tue, 2 Feb 2016 04:15:11 +0000 (20:15 -0800)]
Fix remaining read barrier issues in image relocation

Added a way to disallow read barriers, this makes it easy to find
the issues.

Bug: 26786304
Change-Id: I7ebb50832686d03e096a979aae9741239371683f

8 years agoMerge "Rosalloc fast path in assembly for MIPS64"
Hans Boehm [Tue, 2 Feb 2016 23:11:14 +0000 (23:11 +0000)]
Merge "Rosalloc fast path in assembly for MIPS64"

8 years agoMerge "Fix DCHECK compilation error."
Richard Uhler [Tue, 2 Feb 2016 23:08:12 +0000 (23:08 +0000)]
Merge "Fix DCHECK compilation error."

8 years agoMerge "Use SS/GSS collectors in dex2oat if they are the default."
Hiroshi Yamauchi [Tue, 2 Feb 2016 21:55:04 +0000 (21:55 +0000)]
Merge "Use SS/GSS collectors in dex2oat if they are the default."

8 years agoUse SS/GSS collectors in dex2oat if they are the default.
Hiroshi Yamauchi [Fri, 29 Jan 2016 23:38:58 +0000 (15:38 -0800)]
Use SS/GSS collectors in dex2oat if they are the default.

With CL 198466, we stopped exercising the SS/GSS collectors in dex2oat,
which could bit-rot. We now turn on the force deterministic compilation
only if the default GC is CMS or MS and allow the SS/GSS collectors to
be exercised in dex2oat if they are the default.

Bug: 26687569
Change-Id: I049f8d0a9b4ebf3f31d0953cf71dd0e4ba6aa651

8 years agoFix DCHECK compilation error.
Richard Uhler [Tue, 2 Feb 2016 21:36:55 +0000 (13:36 -0800)]
Fix DCHECK compilation error.

Change-Id: I4df32cd13ad1b355302bddce1cb0fc6ff2486abe

8 years agoruntime: Update Proxy to assume 1 less direct method
Igor Murashkin [Tue, 2 Feb 2016 18:46:42 +0000 (10:46 -0800)]
runtime: Update Proxy to assume 1 less direct method

Part of a libcore-side cleanup to remove dead code.

Requires a corresponding libcore change to run.

Bug: 26846861
Change-Id: I44ee74d8a4cbd7889d655c15c76dad8121c3297e

8 years agoMerge "ART: Fix bad manual rename of local variable."
Vladimir Marko [Tue, 2 Feb 2016 20:40:07 +0000 (20:40 +0000)]
Merge "ART: Fix bad manual rename of local variable."

8 years agoART: Fix rounding up in DexCacheArraysLayout constructor.
Vladimir Marko [Tue, 2 Feb 2016 20:27:08 +0000 (20:27 +0000)]
ART: Fix rounding up in DexCacheArraysLayout constructor.

This changes the way we round up to be conceptually correct
but does not really affect the results thanks to current
layout that interleaves GcRoot<> and pointer arrays. If two
odd-length GcRoot<> arrays were followed by a pointer array,
the pointer array would have been previously unaligned on
a 64-bit target.

Change-Id: I6b1cd2ed789f4f91206982caf3c765253fb65824

8 years agoMerge "Always use pendingNext to test enqueability of references."
Richard Uhler [Tue, 2 Feb 2016 20:22:47 +0000 (20:22 +0000)]
Merge "Always use pendingNext to test enqueability of references."

8 years agoART: Fix bad manual rename of local variable.
Vladimir Marko [Tue, 2 Feb 2016 20:12:32 +0000 (20:12 +0000)]
ART: Fix bad manual rename of local variable.

Follow up to
    https://android-review.googlesource.com/198621 .

Bug: 26929002
Change-Id: I11c5000d7b7bfaa866d45603c8c21d4ab8599a0e

8 years agoRevert "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""
Igor Murashkin [Mon, 1 Feb 2016 19:43:26 +0000 (11:43 -0800)]
Revert "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""

This reverts commit 28a2a186537db9fc5a8492e36d9603b48854c04f.

Runtest failure has been fixed in I28c3707e38c1f69ea9d3660f68136f688122ac4e

Change-Id: I1749dc89b790d44b5e40bc8b20aa62885bda792b

8 years agoruntime: Fix field resolution with access checks (runtest 073)
Igor Murashkin [Tue, 2 Feb 2016 01:40:19 +0000 (17:40 -0800)]
runtime: Fix field resolution with access checks (runtest 073)

Fixes field resolution not to take static/instance into account until
after the field is completely resolved. Only the [i|s][put|get]
instructions themselves have enough context on whether the field must be
static or not (and throw an ICCE on a mismatch).

This makes us more JLS 13.4.8 compatible and also fixes a run-test
failure for interpreter-access-checks configuration.

Bug: 22414682
Change-Id: I78b17187e59f8f78569fcd8ffdf1cf1603a2d4b2

8 years agointerpreter: Fix proxy method invocation with access checks enabled.
Igor Murashkin [Mon, 1 Feb 2016 22:21:25 +0000 (14:21 -0800)]
interpreter: Fix proxy method invocation with access checks enabled.

Interpret with access checks uses type information stored by a dex file,
so we need to get the original interface method (which is guaranteed
to be dex file backed) in that case.

Does not change method invoke target, just the method used for checks.

The existing 044-proxy test already covers this, so no regression test
necessary. Remove fixed tests from the blacklist.

Bug: 26846861
Bug: 22414682
Change-Id: I28c3707e38c1f69ea9d3660f68136f688122ac4e

8 years agoMerge "ART: Clean up strings fixup for app images."
Vladimir Marko [Tue, 2 Feb 2016 18:55:09 +0000 (18:55 +0000)]
Merge "ART: Clean up strings fixup for app images."

8 years agoMerge "MIPS32: Fix codegen register dumps."
Vladimir Marko [Tue, 2 Feb 2016 18:51:45 +0000 (18:51 +0000)]
Merge "MIPS32: Fix codegen register dumps."

8 years agoMIPS32: Fix codegen register dumps.
Vladimir Marko [Tue, 2 Feb 2016 18:14:52 +0000 (18:14 +0000)]
MIPS32: Fix codegen register dumps.

Dump raw registers instead of managed registers to be
in line with other architectures. This fixes a checker
failure in 510-checker-try-catch where we have previously
emitted a space that stopped the regexp search. However,
there still remains a runtime failure of the 510 test:
  Exception in thread "main" java.lang.Error:
    Method: "testCatchPhi_double",
    path: ExceptionalFlow1, expected: 3, actual: 0

Change-Id: Ib9ad2c60baf2e322ce1eb58b9dc39feb5ab6f148

8 years agoMerge "Revert "Revert "ART: Mterp for arm64"""
Bill Buzbee [Tue, 2 Feb 2016 18:00:33 +0000 (18:00 +0000)]
Merge "Revert "Revert "ART: Mterp for arm64"""

8 years agoRevert "Revert "ART: Mterp for arm64""
Bill Buzbee [Tue, 2 Feb 2016 13:45:36 +0000 (13:45 +0000)]
Revert "Revert "ART: Mterp for arm64""

Looks like some of our assemblers disagree on valid arm64 assembly syntax
Force use of clang for art runtime.  In a subsequent CL, will use form
that both gcc and clang accept.

This reverts commit 43f3fb960bce978df699c8a68a972be2a0d0d221.

Change-Id: Ice83072171ab502c43d492e2238b446c4814ea67