OSDN Git Service

android-x86/art.git
9 years agoMerge "Add ART_USE_OPTIMIZING_COMPILER flag."
Nicolas Geoffray [Wed, 26 Nov 2014 12:00:16 +0000 (12:00 +0000)]
Merge "Add ART_USE_OPTIMIZING_COMPILER flag."

9 years agoMerge "Move dexCacheStrings from ArtMethod to Class"
Mathieu Chartier [Wed, 26 Nov 2014 00:03:31 +0000 (00:03 +0000)]
Merge "Move dexCacheStrings from ArtMethod to Class"

9 years agoMove dexCacheStrings from ArtMethod to Class
Mathieu Chartier [Tue, 25 Nov 2014 02:29:54 +0000 (18:29 -0800)]
Move dexCacheStrings from ArtMethod to Class

Adds one load for const strings which are not direct.

Saves >= 60KB of memory avg per app.
Image size: -350KB.

Bug: 17643507
Change-Id: I2d1a3253d9de09682be9bc6b420a29513d592cc8

(cherry picked from commit f521f423b66e952f746885dd9f6cf8ef2788955d)

9 years agoAdd ART_USE_OPTIMIZING_COMPILER flag.
Nicolas Geoffray [Tue, 25 Nov 2014 23:42:00 +0000 (23:42 +0000)]
Add ART_USE_OPTIMIZING_COMPILER flag.

Change-Id: I86065aec5bfe59729c6a4064a3e54d5b523ca45c

9 years agoMerge "Fix oatwriter code deduping"
Mathieu Chartier [Tue, 25 Nov 2014 23:31:24 +0000 (23:31 +0000)]
Merge "Fix oatwriter code deduping"

9 years agoFix oatwriter code deduping
Mathieu Chartier [Tue, 25 Nov 2014 19:20:28 +0000 (11:20 -0800)]
Fix oatwriter code deduping

Now that the GC maps are part of the oat method header they need
to be checked in CodeOffsetsKeyComparator.

Bug: 18523556

Change-Id: I539a6e7216166342b22515c1e2cf831dad32e41e

(cherry picked from commit 4cdf4508903d13fd0f9fba5690aeac1b368db81b)

9 years agoMerge "ART: Avoid recursive abort"
Andreas Gampe [Tue, 25 Nov 2014 21:30:20 +0000 (21:30 +0000)]
Merge "ART: Avoid recursive abort"

9 years agoMerge "Quick compiler: handle embedded switch data"
buzbee [Tue, 25 Nov 2014 20:09:03 +0000 (20:09 +0000)]
Merge "Quick compiler: handle embedded switch data"

9 years agoQuick compiler: handle embedded switch data
buzbee [Tue, 25 Nov 2014 18:52:19 +0000 (10:52 -0800)]
Quick compiler: handle embedded switch data

Although switch data is generally placed at the end of a dex
file by dx, it can occur elsewhere (and does via obsfucators).
This CL fixes a parsing error related to embedded switch data by
ensuring valid dex instructions following the embedded data appear
in their own basic blocks.

AOSP b/80600

Change-Id: I91ead6b398386bcf168b1088c5bc13a53b18f26e

9 years agoMerge "ART: GenLongArith has to clobber same operands for 2-op instr"
Bill Buzbee [Tue, 25 Nov 2014 16:28:31 +0000 (16:28 +0000)]
Merge "ART: GenLongArith has to clobber same operands for 2-op instr"

9 years agoMerge "ART: Generate switch targets from successor blocks"
Bill Buzbee [Tue, 25 Nov 2014 16:28:19 +0000 (16:28 +0000)]
Merge "ART: Generate switch targets from successor blocks"

9 years agoMerge "Skip null check in MarkGCCard() for known non-null values."
Vladimir Marko [Tue, 25 Nov 2014 11:44:56 +0000 (11:44 +0000)]
Merge "Skip null check in MarkGCCard() for known non-null values."

9 years agoMerge "Fix tests now that dead phis are removed when building SSA."
Nicolas Geoffray [Tue, 25 Nov 2014 11:19:37 +0000 (11:19 +0000)]
Merge "Fix tests now that dead phis are removed when building SSA."

9 years agoFix tests now that dead phis are removed when building SSA.
Nicolas Geoffray [Tue, 25 Nov 2014 11:18:37 +0000 (11:18 +0000)]
Fix tests now that dead phis are removed when building SSA.

Change-Id: Ie795f5f1c7c44ec1a3ea2bac822b6255bfb8d45c

9 years agoMerge "Fix a bug in the type analysis phase of optimizing."
Nicolas Geoffray [Tue, 25 Nov 2014 10:33:31 +0000 (10:33 +0000)]
Merge "Fix a bug in the type analysis phase of optimizing."

9 years agoMerge "ART: Fix inline dependency"
Andreas Gampe [Tue, 25 Nov 2014 02:04:41 +0000 (02:04 +0000)]
Merge "ART: Fix inline dependency"

9 years agoART: Fix inline dependency
Andreas Gampe [Tue, 25 Nov 2014 02:03:01 +0000 (18:03 -0800)]
ART: Fix inline dependency

GetClassFromTypeIdx is defined in the -inl file.

Change-Id: Ib5dbcea08dccee43ff70cac2e45cdbf210cb490c

9 years agoFix a bug in the type analysis phase of optimizing.
Nicolas Geoffray [Mon, 24 Nov 2014 15:28:45 +0000 (15:28 +0000)]
Fix a bug in the type analysis phase of optimizing.

Dex code can lead to the creation of a phi with one
float input and one integer input. Since the SSA builder trusts
the verifier, it assumes that the integer input must be converted
to float. However, when the register is not used afterwards, the
verifier hasn't ensured that. Therefore, the compiler must remove
the phi prior to doing type propagation.

Change-Id: Idcd51c4dccce827c59d1f2b253bc1c919bc07df5

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 agoSkip null check in MarkGCCard() for known non-null values.
Vladimir Marko [Mon, 24 Nov 2014 19:45:41 +0000 (19:45 +0000)]
Skip null check in MarkGCCard() for known non-null values.

Use GVN's knowledge of non-null values to set a new MIR flag
for IPUT/SPUT/APUT to skip the value null check.

Change-Id: I97a8d1447acb530c9bbbf7b362add366d1486ee1

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 agoART: Avoid recursive abort
Andreas Gampe [Mon, 24 Nov 2014 08:21:06 +0000 (00:21 -0800)]
ART: Avoid recursive abort

Bug: 18469797
Change-Id: Ided50bec3377034dd9a995f9f0700a795adb3940

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: Generate switch targets from successor blocks
Chao-ying Fu [Mon, 27 Oct 2014 21:42:00 +0000 (14:42 -0700)]
ART: Generate switch targets from successor blocks

This patch relies on the successor blocks to generate switch targets
in GenSmallPackedSwitch and GenSmallSparseSwitch for all quick targets.
In x86, we create a new packed switch table by storing basic block
ids instead of dex offsets, and we override MarkPackedCaseLabels and
InsertCaseLabel to avoid calling FindBlock.

Change-Id: Ibb5983db582f0965aba787b520bd106522453564
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
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 agoART: GenLongArith has to clobber same operands for 2-op instr
nikolay serdjuk [Thu, 13 Nov 2014 12:15:23 +0000 (18:15 +0600)]
ART: GenLongArith has to clobber same operands for 2-op instr

When we generate code for 'add-long/2addr v4, v4' and v4 is in
memory, we load v4 in a physical register, do operation and
store result in memory. After that, we should clobber the
physical register because it is not valid anymore.

Change-Id: I80903a831040bbfdf8a07810b6b2e8090fe1158c
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
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"