OSDN Git Service

android-x86/art.git
9 years agoMerge "ART: Fix unused variables and functions"
Andreas Gampe [Mon, 24 Nov 2014 23:57:17 +0000 (23:57 +0000)]
Merge "ART: Fix unused variables and functions"

9 years agoMerge "Revert "ART: Remove wrong DCHECK""
Andreas Gampe [Mon, 24 Nov 2014 22:29:46 +0000 (22:29 +0000)]
Merge "Revert "ART: Remove wrong DCHECK""

9 years agoRevert "ART: Remove wrong DCHECK"
Andreas Gampe [Mon, 24 Nov 2014 22:23:53 +0000 (14:23 -0800)]
Revert "ART: Remove wrong DCHECK"

This reverts commit 5be30072c5a750617dc3f9380776d074f26d9f32.

The underlying computation was fixed in AOSP before.

Bug: 17772057
Bug: 17763227
Bug: 17762845

9 years agoART: Fix unused variables and functions
Andreas Gampe [Mon, 24 Nov 2014 21:42:22 +0000 (13:42 -0800)]
ART: Fix unused variables and functions

Change-Id: Icbab884d2dfd71656347368b424cb35cbf524051

9 years agoMerge "Delete ArtMethod gc_map_ field"
Mathieu Chartier [Mon, 24 Nov 2014 19:57:50 +0000 (19:57 +0000)]
Merge "Delete ArtMethod gc_map_ field"

9 years agoMerge "Further cleanup using dex_instruction_utils.h."
Vladimir Marko [Mon, 24 Nov 2014 19:09:57 +0000 (19:09 +0000)]
Merge "Further cleanup using dex_instruction_utils.h."

9 years agoMerge "Fix the list of arm64 broken optimizing tests."
Calin Juravle [Mon, 24 Nov 2014 18:46:10 +0000 (18:46 +0000)]
Merge "Fix the list of arm64 broken optimizing tests."

9 years agoDelete ArtMethod gc_map_ field
Mathieu Chartier [Sat, 22 Nov 2014 00:51:29 +0000 (16:51 -0800)]
Delete ArtMethod gc_map_ field

Moved the gc_map field from OatMethod to OatQuickMethodHeader.
Deleted the ArtMethod gc_map_ field.

Bug: 17643507

Change-Id: Ifa0470c3e4c2f8a319744464d94c6838b76b3d48

(cherry picked from commit 807140048f82a2b87ee5bcf337f23b6a3d1d5269)

9 years agoFix the list of arm64 broken optimizing tests.
Calin Juravle [Mon, 24 Nov 2014 18:38:13 +0000 (18:38 +0000)]
Fix the list of arm64 broken optimizing tests.

Change-Id: I498c1dc0a32686f2b335a2b43ed31ac537f29029

9 years agoMerge "Revert "Revert "Fix the computation of linear ordering."""
Nicolas Geoffray [Mon, 24 Nov 2014 18:21:41 +0000 (18:21 +0000)]
Merge "Revert "Revert "Fix the computation of linear ordering."""

9 years agoRevert "Revert "Fix the computation of linear ordering.""
Nicolas Geoffray [Mon, 24 Nov 2014 17:47:10 +0000 (17:47 +0000)]
Revert "Revert "Fix the computation of linear ordering.""

PS2 fixes the obvious typos/wrong refactoring.

This reverts commit e50fa5887b1342b845826197d81950e26753fc9c.

Change-Id: I22f81d63a12cf01aafd61535abc2399d936d49c2

9 years agoMerge "Revert "Fix the computation of linear ordering.""
Nicolas Geoffray [Mon, 24 Nov 2014 17:44:27 +0000 (17:44 +0000)]
Merge "Revert "Fix the computation of linear ordering.""

9 years agoRevert "Fix the computation of linear ordering."
Nicolas Geoffray [Mon, 24 Nov 2014 17:44:15 +0000 (17:44 +0000)]
Revert "Fix the computation of linear ordering."

Build is broken.

This reverts commit 3054a90063d379ab8c9e5a42a7daf0d644b48b07.

Change-Id: I259bc2bd6a58e30391b8176f3db5fdb5c07e4d6d

9 years agoMerge "Fix the computation of linear ordering."
Nicolas Geoffray [Mon, 24 Nov 2014 17:29:36 +0000 (17:29 +0000)]
Merge "Fix the computation of linear ordering."

9 years agoFurther cleanup using dex_instruction_utils.h.
Vladimir Marko [Mon, 24 Nov 2014 16:33:51 +0000 (16:33 +0000)]
Further cleanup using dex_instruction_utils.h.

Change-Id: I85aa9e7d744b37ee3d2531c50470cd3fa87dc864

9 years agoMerge "Fixed missing "//"."
Calin Juravle [Mon, 24 Nov 2014 16:37:16 +0000 (16:37 +0000)]
Merge "Fixed missing "//"."

9 years agoFixed missing "//".
Calin Juravle [Mon, 24 Nov 2014 16:36:44 +0000 (16:36 +0000)]
Fixed missing "//".

Change-Id: Ife5338d469e9db0b0ea37746dee11a40a52615f1

9 years agoMerge "[optimizing compiler] Add shifts"
Calin Juravle [Mon, 24 Nov 2014 16:19:42 +0000 (16:19 +0000)]
Merge "[optimizing compiler] Add shifts"

9 years ago[optimizing compiler] Add shifts
Calin Juravle [Tue, 18 Nov 2014 23:06:35 +0000 (23:06 +0000)]
[optimizing compiler] Add shifts

Added SHL, SHR, USHR for arm, x86, x86_64.

Change-Id: I971f594e270179457e6958acf1401ff7630df07e

9 years agoMerge "Eliminate suspend checks on back-edges to return insn."
Vladimir Marko [Mon, 24 Nov 2014 15:48:59 +0000 (15:48 +0000)]
Merge "Eliminate suspend checks on back-edges to return insn."

9 years agoEliminate suspend checks on back-edges to return insn.
Vladimir Marko [Mon, 24 Nov 2014 14:09:46 +0000 (14:09 +0000)]
Eliminate suspend checks on back-edges to return insn.

This optimization seems to have been broken for a long time.

Change-Id: I62ec85c71bb5253917ad9465a952911e917f6b52

9 years agoMerge "ART: Add div-zero check elimination to LVN/GVN"
Vladimir Marko [Mon, 24 Nov 2014 13:42:34 +0000 (13:42 +0000)]
Merge "ART: Add div-zero check elimination to LVN/GVN"

9 years agoMerge "ART: Fix NullCheckElimination, BBCombine, and SplitBlock"
Vladimir Marko [Mon, 24 Nov 2014 12:39:45 +0000 (12:39 +0000)]
Merge "ART: Fix NullCheckElimination, BBCombine, and SplitBlock"

9 years agoMerge "Rewrite GVN's field id and field type handling."
Vladimir Marko [Mon, 24 Nov 2014 11:05:33 +0000 (11:05 +0000)]
Merge "Rewrite GVN's field id and field type handling."

9 years agoMerge "ART: ELF symbol table lookup is fixed"
Andreas Gampe [Mon, 24 Nov 2014 08:10:29 +0000 (08:10 +0000)]
Merge "ART: ELF symbol table lookup is fixed"

9 years agoART: ELF symbol table lookup is fixed
Yevgeny Rouban [Mon, 24 Nov 2014 07:40:56 +0000 (13:40 +0600)]
ART: ELF symbol table lookup is fixed

ELF loader could not find some symbols in the OAT's symbol table
(e.g. oatdata, oatexec).

There was a bug in the symbol hash table lookup: if a valid index of
a chain got greater or equal than the number of hash buckets then
the chain was cut off.

The fix is to compare the chain index with the chains array length
rather than with the number of buckets.

Change-Id: I20940957c3045913fd426031a51314d4f87ac1bd
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
9 years agoMerge "Increase run-test output on error."
Ian Rogers [Mon, 24 Nov 2014 04:10:10 +0000 (04:10 +0000)]
Merge "Increase run-test output on error."

9 years agoIncrease run-test output on error.
Ian Rogers [Mon, 24 Nov 2014 04:07:39 +0000 (20:07 -0800)]
Increase run-test output on error.

On the host with many cores its possible for the message of an abort to be lost
due to the amount of debug output.
Bug: 18469797

Change-Id: Ibf210fc113166b8cc06ee9aed206780c981d236c

9 years agoMerge "Avoid some recursive aborting."
Ian Rogers [Sat, 22 Nov 2014 06:58:49 +0000 (06:58 +0000)]
Merge "Avoid some recursive aborting."

9 years agoAvoid some recursive aborting.
Ian Rogers [Sat, 22 Nov 2014 06:52:16 +0000 (22:52 -0800)]
Avoid some recursive aborting.

Bug: 18469797
Change-Id: Ic1889a605a041bdec679ff54f8dce3842d85f2e1

9 years agoMerge "ART: Wrap AllocThreadUnsafe in Valgrind wrapper"
Andreas Gampe [Sat, 22 Nov 2014 04:35:42 +0000 (04:35 +0000)]
Merge "ART: Wrap AllocThreadUnsafe in Valgrind wrapper"

9 years agoART: Wrap AllocThreadUnsafe in Valgrind wrapper
Andreas Gampe [Sat, 22 Nov 2014 03:45:53 +0000 (19:45 -0800)]
ART: Wrap AllocThreadUnsafe in Valgrind wrapper

This needs to be wrapped as it is being used during compaction.

Bug: 18481268
Change-Id: I85ecccc7de8be8eb70a5cb0420817583be9b7999

9 years agoMerge "Fix UnimplementedEntryPoint initialziation."
Ian Rogers [Sat, 22 Nov 2014 02:23:05 +0000 (02:23 +0000)]
Merge "Fix UnimplementedEntryPoint initialziation."

9 years agoART: Fix NullCheckElimination, BBCombine, and SplitBlock
Razvan A Lupusoru [Thu, 30 Oct 2014 01:42:27 +0000 (18:42 -0700)]
ART: Fix NullCheckElimination, BBCombine, and SplitBlock

NullCheckElimination had one issue and one assumption that could be
broken:
-It ignored that compiler temps may hold references.
-Assumed there are no phi nodes even though algorithm can be run even
after phi nodes are inserted.

BBCombine also had issue in that it did not properly maintain the
instruction links. The logic has been updated to use utility methods.

SplitBlock has an issue with being called after extended instructions
are inserted. Namely, in the case in question, it was called after
SpecialMethodInliner was through and although it was doing semantically
correct thing, it was hitting dcheck due to the kMirOpNullCheck.

Change-Id: Id5863ddb0762064e74bf1d9173b8db5cb47cf3b9
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoMerge "Fixed ArtMethod::GetQuickFrameInfo() for proxy methods"
Ian Rogers [Sat, 22 Nov 2014 02:13:20 +0000 (02:13 +0000)]
Merge "Fixed ArtMethod::GetQuickFrameInfo() for proxy methods"

9 years agoMerge "Add JNI trampoline for mips32."
Ian Rogers [Sat, 22 Nov 2014 01:32:30 +0000 (01:32 +0000)]
Merge "Add JNI trampoline for mips32."

9 years agoART: Add div-zero check elimination to LVN/GVN
Razvan A Lupusoru [Fri, 14 Nov 2014 22:36:55 +0000 (14:36 -0800)]
ART: Add div-zero check elimination to LVN/GVN

GVN has been updated to also consider div/rem zero check elimination.
This means that whenever a divisor is used in two sequential divisions,
the second division will surely not throw exception.

The algorithm has been updated to work on global level by considering
splits and merges. Obviously, if "div_zero" checked on one path but
not the other, at merge point consider that division has not been
eliminated.

One big deficiency of this algorithm is that it does not consider
literals in the divisor. Namely, in cases where the operand is a literal
or a constant (literal created by another bytecode), it does not mark as
divide by zero checked. However, in reality this is not an issue
because none of the backends generate the divide by zero check when
the constant value is known.

Issue: CAR-868
Category: device enablement
Domain: AOSP.ART-ME
Origin: internal
Upstream-Candidate: yes
Change-Id: I617569055c73a45e13e2a83392b99b48f4e33362
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoMerge "Fix possible array access issue"
Ian Rogers [Sat, 22 Nov 2014 00:57:04 +0000 (00:57 +0000)]
Merge "Fix possible array access issue"

9 years agoFix possible array access issue
Vladimir [Mon, 13 Oct 2014 06:41:38 +0000 (13:41 +0700)]
Fix possible array access issue

The issue with possible array access in the DisassembleExtendedInstr
method should be fixed. The input opcode should be extended one.
Additional check for it was added.
Also additional CHECK for memory allocation should be added.

Change-Id: If114572a5bc99587d5effd588e7bd955c16d8318
Signed-off-by: Vladimir <vladimir.a.ivanov@intel.com>
9 years agoMerge "ART: Fix crash with unreachable void check-cast"
Ian Rogers [Sat, 22 Nov 2014 00:45:10 +0000 (00:45 +0000)]
Merge "ART: Fix crash with unreachable void check-cast"

9 years agoMerge "LSRA: Fix X86 shuffle flags"
Ian Rogers [Sat, 22 Nov 2014 00:23:11 +0000 (00:23 +0000)]
Merge "LSRA: Fix X86 shuffle flags"

9 years agoMerge "test: Fix assember_arm_test to compile on gcc"
Igor Murashkin [Sat, 22 Nov 2014 00:19:58 +0000 (00:19 +0000)]
Merge "test: Fix assember_arm_test to compile on gcc"

9 years agotest: Fix assember_arm_test to compile on gcc
Igor Murashkin [Sat, 22 Nov 2014 00:16:53 +0000 (16:16 -0800)]
test: Fix assember_arm_test to compile on gcc

Bug: 18484809
Change-Id: I2677de5fdb418091bc753271ad38972f375c96d8

9 years agoMerge "ART: X86 vectorized reduce may use incorrect extract index"
Ian Rogers [Sat, 22 Nov 2014 00:15:29 +0000 (00:15 +0000)]
Merge "ART: X86 vectorized reduce may use incorrect extract index"

9 years agoART: X86 vectorized reduce may use incorrect extract index
Razvan A Lupusoru [Wed, 29 Oct 2014 02:29:52 +0000 (19:29 -0700)]
ART: X86 vectorized reduce may use incorrect extract index

In the case of reduction to memory VR, the extract index is ignored.
However, it should not be ignored because it is needed for pextr instruction.

Change-Id: I46a0c76218a0553e677225e403786522c079d27d
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoMerge "Clean up MIRGraph pass temporaries."
Vladimir Marko [Fri, 21 Nov 2014 19:05:46 +0000 (19:05 +0000)]
Merge "Clean up MIRGraph pass temporaries."

9 years agoRewrite GVN's field id and field type handling.
Vladimir Marko [Fri, 31 Oct 2014 16:37:32 +0000 (16:37 +0000)]
Rewrite GVN's field id and field type handling.

Create a helper unit for dex insn classification and cache
dex field type (as encoded in the insn) in the MirFieldInfo.
Use this for cleanup and a few additional DCHECKs.

Change the GVN's field id to match the field lowering info
index (MIR::meta::{i,s}field_lowering_info), except where
multiple indexes refer to the same field and we use the
lowest of the applicable indexes. Use the MirMethodInfo from
MIRGraph to retrieve field type for GVN using this index.
This slightly reduces GVN compilation time and prepares for
further compilation time improvements.

Change-Id: I1b1247cdb8e8b6897254e2180f3230f10159bed5

9 years agoMerge "Fix oatdump to use OatHeader pointer size"
Mathieu Chartier [Fri, 21 Nov 2014 18:15:38 +0000 (18:15 +0000)]
Merge "Fix oatdump to use OatHeader pointer size"

9 years agoFix oatdump to use OatHeader pointer size
Mathieu Chartier [Fri, 21 Nov 2014 01:08:58 +0000 (17:08 -0800)]
Fix oatdump to use OatHeader pointer size

Bug: 18473190
Change-Id: If505b4f62105899f4f1257d3bccda3e6eb0dcd7c

(cherry picked from commit c934e483ceabbd589422beea1fa35f5182ecfa99)

9 years agoClean up MIRGraph pass temporaries.
Vladimir Marko [Fri, 21 Nov 2014 13:41:32 +0000 (13:41 +0000)]
Clean up MIRGraph pass temporaries.

Create a union of pass-specific structs with temporaries
instead of shared temporaries with common names.

Change-Id: Id80d3b12c48139af1580b0839c21e07e7afd0ed5

9 years agoFix the computation of linear ordering.
Nicolas Geoffray [Fri, 21 Nov 2014 13:33:51 +0000 (13:33 +0000)]
Fix the computation of linear ordering.

The register allocator makes assumptions on the order, and
we ended up not computing the right one. The algorithm worked
fine when the loop header is the block branching to the exit,
but in the presence of breaks or do/while, it was incorrect.

Change-Id: Iad0a89872cd3f7b7a8b2bdf560f0d03493f93ba5

9 years agoMerge "Add card mark to filled-new-array."
Vladimir Marko [Fri, 21 Nov 2014 10:12:32 +0000 (10:12 +0000)]
Merge "Add card mark to filled-new-array."

9 years agoMerge "ART: Fix uninitialized value in arm32 assembler test"
Andreas Gampe [Fri, 21 Nov 2014 04:24:16 +0000 (04:24 +0000)]
Merge "ART: Fix uninitialized value in arm32 assembler test"

9 years agoART: Fix uninitialized value in arm32 assembler test
Andreas Gampe [Fri, 21 Nov 2014 04:22:31 +0000 (20:22 -0800)]
ART: Fix uninitialized value in arm32 assembler test

The first_ field was meant to be initialized for each generation
invocation.

Change-Id: If4d36d84afe24d8ddc6bb9d25b85c764285e166a

9 years agoMerge "ART: Fix arm32 assembler test."
Andreas Gampe [Fri, 21 Nov 2014 01:06:41 +0000 (01:06 +0000)]
Merge "ART: Fix arm32 assembler test."

9 years agoART: Fix arm32 assembler test.
Andreas Gampe [Fri, 21 Nov 2014 01:01:10 +0000 (17:01 -0800)]
ART: Fix arm32 assembler test.

Drop the requested architecture from armv7ve to armv7-a, but tune
for cortex-a15. That allows sdiv and udiv, but has the advantage
that it works on gcc 4.8.

Change-Id: I92cca55ce01334119d8a402103ec295c66d34ca6

9 years agoMerge "Restrict FDO to only apply to target build."
Christopher Ferris [Fri, 21 Nov 2014 00:07:42 +0000 (00:07 +0000)]
Merge "Restrict FDO to only apply to target build."

9 years agoRestrict FDO to only apply to target build.
Dehao Chen [Thu, 13 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Restrict FDO to only apply to target build.

Change-Id: I0ef4199b34c123a17eaf2c2f18bc8a1496e03cf8

9 years agoMerge "dex2oat: Pack likely-dirty objects together when generating the boot image"
Igor Murashkin [Thu, 20 Nov 2014 22:53:58 +0000 (22:53 +0000)]
Merge "dex2oat: Pack likely-dirty objects together when generating the boot image"

9 years agodex2oat: Pack likely-dirty objects together when generating the boot image
Igor Murashkin [Fri, 14 Nov 2014 23:01:59 +0000 (15:01 -0800)]
dex2oat: Pack likely-dirty objects together when generating the boot image

This introduces a new algorithm into image writer which "bins" objects
by how likely they are to be dirtied at runtime. Objects in the same bin
are placed contiguously in memory (i.e. into the same page). We try to
tune the bin selection based on how clean or how dirty the object will
likely be at runtime.

As-is, this saves about 150KB per-process (private-dirty pages) and 700KB in
zygote (shared-dirty).

There is still about 800KB of objects that are clean but located in
dirty pages, so with more analysis we can tune the bin selection and get
even more memory savings.

(cherry picked from commit 3f735bd4f9d09a0f9b2b01321e4c6917879dcae6)

Bug: 17611661
Change-Id: Ia1455e4c56ffd0a36ae2a723d35b7e06502980f7

9 years agoMerge "Tune rosalloc buffer sizes."
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:35:20 +0000 (22:35 +0000)]
Merge "Tune rosalloc buffer sizes."

9 years agoMerge "ART: Assembler_arm_test"
Andreas Gampe [Thu, 20 Nov 2014 22:33:45 +0000 (22:33 +0000)]
Merge "ART: Assembler_arm_test"

9 years agoART: Assembler_arm_test
Andreas Gampe [Tue, 18 Nov 2014 21:46:46 +0000 (13:46 -0800)]
ART: Assembler_arm_test

Add some generic test infrastructure, and update the arm32 test.
Supports many of the GPR instructions.

Change-Id: I8a270ec377f3266d6ab486e636abb50c56b87823

9 years agoTune rosalloc buffer sizes.
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:16:06 +0000 (14:16 -0800)]
Tune rosalloc buffer sizes.

We now use one-page buffers for size brackets 4-7, instead of two-page
buffers, and the first 8 size brackets for thread-local allocations,
instead of 11.

No slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and
BinaryTrees.

(cherrypick commit c4cd95fa37b7138a0fa26d07c235aa409542aecd)

Bug: 18377775
Change-Id: I311f3adf9cab660d258833b17df7e6d905f73c72

9 years agoMerge "ART: Split image and non-image case in dex2oat"
Andreas Gampe [Thu, 20 Nov 2014 21:35:36 +0000 (21:35 +0000)]
Merge "ART: Split image and non-image case in dex2oat"

9 years agoMerge "Re-enable DumpNativeStack."
Ian Rogers [Thu, 20 Nov 2014 18:41:38 +0000 (18:41 +0000)]
Merge "Re-enable DumpNativeStack."

9 years agoRe-enable DumpNativeStack.
Ian Rogers [Thu, 20 Nov 2014 18:29:00 +0000 (10:29 -0800)]
Re-enable DumpNativeStack.

Bug: 15446488
Change-Id: Icdd0b90c8abe2a361a488fc1742c6896605ddc41

9 years agoMerge "Revert "Revert "Revert "Unfortunately, the test still hits too many run failur...
Ian Rogers [Thu, 20 Nov 2014 18:22:08 +0000 (18:22 +0000)]
Merge "Revert "Revert "Revert "Unfortunately, the test still hits too many run failures.""""

9 years agoRevert "Revert "Revert "Unfortunately, the test still hits too many run failures."""
Ian Rogers [Thu, 20 Nov 2014 18:21:52 +0000 (18:21 +0000)]
Revert "Revert "Revert "Unfortunately, the test still hits too many run failures."""

This reverts commit 3cfb0d3421f9e5de782d20d61b011187c7edba1c.

Change-Id: Ifc4c48c45115d5593b0d064574019017c37c1fe7

9 years agoART: Split image and non-image case in dex2oat
Andreas Gampe [Wed, 19 Nov 2014 20:57:42 +0000 (12:57 -0800)]
ART: Split image and non-image case in dex2oat

Explicitly split out the cases (even if there is redundancy). Have
explicit flush and close operations.

Change-Id: I5ffa4c84b4f4a1f42244d4cb7af2b5cf36739c87

9 years agoAdd card mark to filled-new-array.
Vladimir Marko [Wed, 19 Nov 2014 18:52:35 +0000 (18:52 +0000)]
Add card mark to filled-new-array.

Bug: 18032332
Change-Id: I35576b27f9115e4d0b02a11afc5e483b9e93a04a

9 years agoMerge "Prune image cache if the boot marker is still in place."
Narayan Kamath [Thu, 20 Nov 2014 10:47:22 +0000 (10:47 +0000)]
Merge "Prune image cache if the boot marker is still in place."

9 years agoMerge "JDWP: only deoptimize when it is required"
Sebastien Hertz [Thu, 20 Nov 2014 10:20:15 +0000 (10:20 +0000)]
Merge "JDWP: only deoptimize when it is required"

9 years agoMerge "Update arm64/optimizing expectations."
Nicolas Geoffray [Thu, 20 Nov 2014 09:35:39 +0000 (09:35 +0000)]
Merge "Update arm64/optimizing expectations."

9 years agoUpdate arm64/optimizing expectations.
Nicolas Geoffray [Thu, 20 Nov 2014 09:34:51 +0000 (09:34 +0000)]
Update arm64/optimizing expectations.

Change-Id: Ibd8292aa3ec2fb14ad8a4dadbccba23154e1b2d7

9 years agoMerge "Avoid JNI call with pending OOME."
Ian Rogers [Thu, 20 Nov 2014 04:51:49 +0000 (04:51 +0000)]
Merge "Avoid JNI call with pending OOME."

9 years agoAvoid JNI call with pending OOME.
Ian Rogers [Wed, 19 Nov 2014 22:05:21 +0000 (14:05 -0800)]
Avoid JNI call with pending OOME.

If EnsureResolved fails with an exception then FindClassInPathClassLoader may
fall-through to a call to NewStringUTF with a pending exception.
Bug: 15446488

Change-Id: I007f7bee7c50aa588d0b1c776da67a38314dc897

9 years agoMerge "Fix zygote space and non moving space map names"
Mathieu Chartier [Wed, 19 Nov 2014 21:52:30 +0000 (21:52 +0000)]
Merge "Fix zygote space and non moving space map names"

9 years agoFix zygote space and non moving space map names
Mathieu Chartier [Wed, 19 Nov 2014 18:51:42 +0000 (10:51 -0800)]
Fix zygote space and non moving space map names

Space names:
"non moving space" -> "zygote space"
"alloc space" -> "non moving space"

Bug: 18447855
Change-Id: Ia937b6d046ccf7f66bf1f6bbb9f17a5e0d00c016
(cherry picked from commit c5d085c955244be1743c33227384e5b62076b8bd)

9 years agoMerge "Fix transitive equality error in set."
Mathieu Chartier [Wed, 19 Nov 2014 21:40:58 +0000 (21:40 +0000)]
Merge "Fix transitive equality error in set."

9 years agoFix transitive equality error in set.
Mathieu Chartier [Tue, 18 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Fix transitive equality error in set.

SubstringComparator used to be broken since it didn't have transitive
equality (ex. ab a ac). Now we use normal string comparison with
set.lower_bound saves an additional 12 bytes.

Also up frame size to 2700 to fix build.

Change-Id: Ie8d41faef37591e7feed1f5d2ad6258430b8ffb6

(cherry picked from commit 4b8b4693ee19efbd2d8692ca0b47b71f3b7da663)

9 years agoMerge "Improvements to the ARM64 disassembler."
Ian Rogers [Wed, 19 Nov 2014 21:09:12 +0000 (21:09 +0000)]
Merge "Improvements to the ARM64 disassembler."

9 years agoMerge "Fix the last users of TARGET_CPU_SMP."
Ian Rogers [Wed, 19 Nov 2014 20:28:36 +0000 (20:28 +0000)]
Merge "Fix the last users of TARGET_CPU_SMP."

9 years agoFix the last users of TARGET_CPU_SMP.
Elliott Hughes [Mon, 17 Nov 2014 20:02:05 +0000 (12:02 -0800)]
Fix the last users of TARGET_CPU_SMP.

Everyone else assumes SMP.

Change-Id: I7ff7faef46fbec6c67d6e446812d599e473cba39

9 years agoMerge "AArch64: Addressing Cortex-A53 erratum 835769."
Ian Rogers [Wed, 19 Nov 2014 19:11:19 +0000 (19:11 +0000)]
Merge "AArch64: Addressing Cortex-A53 erratum 835769."

9 years agoMerge "ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case"
Bill Buzbee [Wed, 19 Nov 2014 19:03:48 +0000 (19:03 +0000)]
Merge "ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case"

9 years agoMerge "Fix safepoint bug when computing live registers."
Nicolas Geoffray [Wed, 19 Nov 2014 18:13:22 +0000 (18:13 +0000)]
Merge "Fix safepoint bug when computing live registers."

9 years agoFix safepoint bug when computing live registers.
Nicolas Geoffray [Wed, 19 Nov 2014 15:17:56 +0000 (15:17 +0000)]
Fix safepoint bug when computing live registers.

Change-Id: I8f28dd287c0e04223c49dea6a323058c1b210913

9 years agoMerge "Fix a memory leak in jni_internal_test."
Ian Rogers [Wed, 19 Nov 2014 18:09:32 +0000 (18:09 +0000)]
Merge "Fix a memory leak in jni_internal_test."

9 years agoFix a memory leak in jni_internal_test.
Ian Rogers [Wed, 19 Nov 2014 18:06:46 +0000 (10:06 -0800)]
Fix a memory leak in jni_internal_test.

Caught by valgrind.

Change-Id: I8b3cc0ce946bd457c380655d3e1237b029ed4cc3

9 years agoPrune image cache if the boot marker is still in place.
Narayan Kamath [Fri, 7 Nov 2014 17:46:28 +0000 (17:46 +0000)]
Prune image cache if the boot marker is still in place.

We place a marker in each isa cache dir and have the framework
delete it for us.

This seems like a convenient place to do it given all the other
dalvik-cache related code that hooks in here, and also because
this is the first point where we try to access the cache.

TODO: Add a timeout to the (higher level) zygote code to correctly
kill the surviving zygote if one of them never comes up.

bug: 18280671

(cherry picked from commit c38276177aeeda4326a54f1121790c154df04300)
(partial cherry-pick of 9433ec60b325b708b9fa87e699ab4a6565741494)

Change-Id: I5dbea21b4bf9ca4106a13225946d3f35f8060a43

9 years agoMerge "Use HOptimization abstraction for running optimizations."
Nicolas Geoffray [Wed, 19 Nov 2014 14:41:15 +0000 (14:41 +0000)]
Merge "Use HOptimization abstraction for running optimizations."

9 years agoMerge "Remove file added after bad cherry pick."
Nicolas Geoffray [Wed, 19 Nov 2014 14:35:26 +0000 (14:35 +0000)]
Merge "Remove file added after bad cherry pick."

9 years agoUse HOptimization abstraction for running optimizations.
Nicolas Geoffray [Tue, 18 Nov 2014 16:53:35 +0000 (16:53 +0000)]
Use HOptimization abstraction for running optimizations.

Move existing optimizations to it.

Change-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd

9 years agoRemove file added after bad cherry pick.
Nicolas Geoffray [Wed, 19 Nov 2014 14:27:56 +0000 (14:27 +0000)]
Remove file added after bad cherry pick.

Cherr-pick being: https://android-review.googlesource.com/#/c/115165.

Change-Id: If86ce4472fd1260477817cc380cd52755924094f

9 years agoMerge "Quick compiler: fix x86 special identity"
buzbee [Wed, 19 Nov 2014 14:11:19 +0000 (14:11 +0000)]
Merge "Quick compiler: fix x86 special identity"

9 years agoART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case
Pavel Vyssotski [Tue, 18 Nov 2014 05:51:24 +0000 (11:51 +0600)]
ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case

OpRegRegReg in case of r_dest == r_src2 does not expect kOpMul as valid operation.
This provokes abort compiling instruction like "mul-int v0, v1, v0" if both
operands are arriving in registers.

The fix is to expect kOpMul as comutative operation.

Change-Id: I259e49edea4b8b08ca4ed1c61033bbc2b2229078
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoJDWP: only deoptimize when it is required
Sebastien Hertz [Mon, 17 Nov 2014 18:00:37 +0000 (19:00 +0100)]
JDWP: only deoptimize when it is required

We don't need to deoptimize anything when we forced the use of the
interpreter (-Xint). In this case, no compiled code is executed
(except native methods which are not concerned by deoptimization).
Therefore we even don't need to enable/disable deoptimization support
in instrumentation.

We also don't need to deoptimize a method that hasn't been compiled.
Since it will run with interpreter, there is no point deoptimizing
it. However this method may be inlined in a compiled caller method
so we still need to deoptimize everything in this case.

This CL updates breakpoint support by storing the required kind of
deoptimization for a particular method. There are 3 cases:
- kNothing: the method does not require deoptimization.
- kSelectiveDeoptimization: the method needs to be deoptimized.
- kFullDeoptimization: we must deoptimize everythinig.
When uninstalling a breakpoint, we need to do the reverse operation.

Also fixes the SanityCheckExistingBreakpoints function to control
breakpoints related to the given method only and adds extra verbose
logs when choosing the appropriate deoptimization kind.

Bug: 18407046
Change-Id: I5212c1fd2f72e06c79e7871db15696824d37dc0b

9 years agoQuick compiler: fix x86 special identity
buzbee [Wed, 19 Nov 2014 13:26:05 +0000 (05:26 -0800)]
Quick compiler: fix x86 special identity

The Quick compiler recognizes and specially handles a set of
small methods - including those that simply return one of their
arguments.  For x86, special identity was broken if the returned
argument was a double that was passed half in register and half
in memory.

internal b/17325447

Change-Id: I3a766977cdc0b4216d8ad65a9870c3250b32471e

9 years agoMerge "Consistently use k{InstructionSet}WordSize."
Nicolas Geoffray [Wed, 19 Nov 2014 09:08:54 +0000 (09:08 +0000)]
Merge "Consistently use k{InstructionSet}WordSize."