OSDN Git Service

android-x86/art.git
9 years agoAdd verify-at-runtime compiler filter
Mathieu Chartier [Thu, 19 Mar 2015 20:43:37 +0000 (13:43 -0700)]
Add verify-at-runtime compiler filter

Verifies at runtime only, instead of at compilation time.
AOSP HH boot time after clean-oat: ~30s instead of ~35s if enabled.
Also helps install time if enabled there.

TODO: See if there is any possible deadlocks that can result from
this.

Bug: 19762303

Change-Id: Ibfba77148da9039e8d7d7497c05486bc044eefe7

9 years agoMerge "Revert "Revert "Use optimizing for apps."""
Nicolas Geoffray [Fri, 20 Mar 2015 14:58:45 +0000 (14:58 +0000)]
Merge "Revert "Revert "Use optimizing for apps."""

9 years agoMerge "Compress the StackMaps."
Nicolas Geoffray [Fri, 20 Mar 2015 14:56:12 +0000 (14:56 +0000)]
Merge "Compress the StackMaps."

9 years agoCompress the StackMaps.
Nicolas Geoffray [Fri, 20 Mar 2015 10:06:38 +0000 (10:06 +0000)]
Compress the StackMaps.

First step towards the compression of the StackMap (not
the DexRegisterMap). Next step will be to just use what is
needed (instead of byte -> word).

Change-Id: I4f81b2d05bf5cc508585e16fbbed1bafbc850e2e

9 years agoRevert "Revert "Use optimizing for apps.""
Nicolas Geoffray [Fri, 20 Mar 2015 14:48:13 +0000 (14:48 +0000)]
Revert "Revert "Use optimizing for apps.""

This reverts commit 706cae36209932f258b2fe2e396f31d2dd7d585e.

Change-Id: I75cc6206ec17ade52a6db0737b62aa37ea2fa300

9 years agoMerge "Remember whether a method was worth inlining."
Nicolas Geoffray [Fri, 20 Mar 2015 13:51:03 +0000 (13:51 +0000)]
Merge "Remember whether a method was worth inlining."

9 years agoRemember whether a method was worth inlining.
Nicolas Geoffray [Wed, 18 Mar 2015 18:31:52 +0000 (18:31 +0000)]
Remember whether a method was worth inlining.

Change-Id: I9d8efe312b264739ac6307f966e43c1d7650a3ca

9 years agoMerge "Change RETURN_VOID_BARRIER to RETURN_VOID_NO_BARRIER"
Mathieu Chartier [Fri, 20 Mar 2015 03:08:27 +0000 (03:08 +0000)]
Merge "Change RETURN_VOID_BARRIER to RETURN_VOID_NO_BARRIER"

9 years agoChange RETURN_VOID_BARRIER to RETURN_VOID_NO_BARRIER
Mathieu Chartier [Thu, 19 Mar 2015 19:43:20 +0000 (12:43 -0700)]
Change RETURN_VOID_BARRIER to RETURN_VOID_NO_BARRIER

We want to default to having a barrier for the case where we don't
dex to dex.

Bug: 19762303
Change-Id: I60348d89eaf0b9e1e480298afcecbb5f52e8661b

9 years agoMerge "Revert "Use optimizing for apps.""
Nicolas Geoffray [Thu, 19 Mar 2015 18:51:07 +0000 (18:51 +0000)]
Merge "Revert "Use optimizing for apps.""

9 years agoMerge "Fix 003-omnibus-opcodes flaky failures with GSS GC."
Hiroshi Yamauchi [Thu, 19 Mar 2015 18:49:47 +0000 (18:49 +0000)]
Merge "Fix 003-omnibus-opcodes flaky failures with GSS GC."

9 years agoRevert "Use optimizing for apps."
Nicolas Geoffray [Thu, 19 Mar 2015 18:49:46 +0000 (18:49 +0000)]
Revert "Use optimizing for apps."

This reverts commit f3251d12dfa387493dbde4c4148a633802f5f7e3.

Change-Id: I32514e10ece55ee7bd7382ce2e956d57c9b621e5

9 years agoFix 003-omnibus-opcodes flaky failures with GSS GC.
Hiroshi Yamauchi [Thu, 19 Mar 2015 00:20:11 +0000 (17:20 -0700)]
Fix 003-omnibus-opcodes flaky failures with GSS GC.

Fix a moving GC bug in Class::SetStatus().

Bug: 19828874

Change-Id: I6bef49a7ce964e8a7e316f282aaf1b8544efe76d

9 years agoMerge "Fix JIT options with late init"
Mathieu Chartier [Thu, 19 Mar 2015 01:50:43 +0000 (01:50 +0000)]
Merge "Fix JIT options with late init"

9 years agoFix JIT options with late init
Mathieu Chartier [Tue, 17 Mar 2015 20:48:29 +0000 (13:48 -0700)]
Fix JIT options with late init

Previously we couldn't create the JIT since we didn't have any
JITOptions.

Bug: 19735273

Change-Id: I24b8ed131ed8b18f75ec94291e135d8a1c089ebd

9 years agoMerge "Remove the Android.mk GCC-only source files hackery"
Colin Cross [Wed, 18 Mar 2015 21:37:12 +0000 (21:37 +0000)]
Merge "Remove the Android.mk GCC-only source files hackery"

9 years agoRemove the Android.mk GCC-only source files hackery
Colin Cross [Wed, 18 Mar 2015 21:01:19 +0000 (14:01 -0700)]
Remove the Android.mk GCC-only source files hackery

The complexity in Android.mk to deal with GCC-only source files is
unnecessary, use #if !defined(__clang__) around the contents of
interpreter/interpreter_goto_table_impl.cc, the same way
interpreter/interpreter.cc does around references to it.

Bug: 17716550
Change-Id: I775c23b6790d38b0d73a92529c696a31e6a4ae83

9 years agoMerge "Clean up hash set"
Mathieu Chartier [Wed, 18 Mar 2015 20:48:29 +0000 (20:48 +0000)]
Merge "Clean up hash set"

9 years agoClean up hash set
Mathieu Chartier [Wed, 18 Mar 2015 17:39:00 +0000 (10:39 -0700)]
Clean up hash set

Added vertical whitespace, const iterators, made some functions
const.

Change-Id: I188dc0384a98d6dae2822f0ac38b740f2356c23d

9 years agoMerge "Quick: Eliminate check-cast guaranteed by instance-of."
Vladimir Marko [Wed, 18 Mar 2015 16:01:24 +0000 (16:01 +0000)]
Merge "Quick: Eliminate check-cast guaranteed by instance-of."

9 years agoQuick: Eliminate check-cast guaranteed by instance-of.
Vladimir Marko [Wed, 18 Mar 2015 11:33:58 +0000 (11:33 +0000)]
Quick: Eliminate check-cast guaranteed by instance-of.

Eliminate check-cast if the result of an instance-of with
the very same type on the same value is used to branch to
the check-cast's block or a dominator of it.

Note that there already exists a verifier-based elimination
of check-cast but it excludes check-cast on interfaces. This
new optimization works for interface types and, since it's
GVN-based, it can better recognize when the same reference
is used for instance-of and check-cast.

Change-Id: Ib315199805099d1cb0534bb4a90dc51baa409685

9 years agoMerge "Add a script to be run by test device on buildbot."
Nicolas Geoffray [Wed, 18 Mar 2015 11:50:05 +0000 (11:50 +0000)]
Merge "Add a script to be run by test device on buildbot."

9 years agoAdd a script to be run by test device on buildbot.
Nicolas Geoffray [Wed, 18 Mar 2015 11:23:56 +0000 (11:23 +0000)]
Add a script to be run by test device on buildbot.

Change-Id: Ifb0f739dfa56bb32b07a47ff48282b2a786009ac

9 years agoMerge "StackMap: Always load and store unalign."
Nicolas Geoffray [Wed, 18 Mar 2015 10:48:19 +0000 (10:48 +0000)]
Merge "StackMap: Always load and store unalign."

9 years agoStackMap: Always load and store unalign.
Nicolas Geoffray [Wed, 18 Mar 2015 10:42:22 +0000 (10:42 +0000)]
StackMap: Always load and store unalign.

Now that we can have a mix of Quick and Optimized code in an .oat
file, a CodeInfo object is not necessarily word aligned.

Change-Id: Ic6c5d1a2c6e20363436726a0708b0764b5a76caf

9 years agoMerge "ART: Fix condition for StoreNeedsWriteBarrier"
David Brazdil [Wed, 18 Mar 2015 09:15:21 +0000 (09:15 +0000)]
Merge "ART: Fix condition for StoreNeedsWriteBarrier"

9 years agoMerge "Use optimizing for apps."
Nicolas Geoffray [Wed, 18 Mar 2015 08:27:15 +0000 (08:27 +0000)]
Merge "Use optimizing for apps."

9 years agoMerge "Fix oat_file_assistant_test32 flaky failures with GSS collector."
Hiroshi Yamauchi [Wed, 18 Mar 2015 00:06:16 +0000 (00:06 +0000)]
Merge "Fix oat_file_assistant_test32 flaky failures with GSS collector."

9 years agoFix oat_file_assistant_test32 flaky failures with GSS collector.
Hiroshi Yamauchi [Tue, 17 Mar 2015 23:01:11 +0000 (16:01 -0700)]
Fix oat_file_assistant_test32 flaky failures with GSS collector.

Bug: 19800031
Change-Id: I5146fa4e6a79bad94762102a50956c31251dcd2a

9 years agoMerge "Add JIT zygote hook"
Mathieu Chartier [Tue, 17 Mar 2015 21:51:43 +0000 (21:51 +0000)]
Merge "Add JIT zygote hook"

9 years agoMerge "Revert "Forbid the use of shifts in ShifterOperand in Thumb2""
Calin Juravle [Tue, 17 Mar 2015 21:19:02 +0000 (21:19 +0000)]
Merge "Revert "Forbid the use of shifts in ShifterOperand in Thumb2""

9 years agoMerge "Revert "Make subs alter flags when rn is an immediate""
Calin Juravle [Tue, 17 Mar 2015 21:18:33 +0000 (21:18 +0000)]
Merge "Revert "Make subs alter flags when rn is an immediate""

9 years agoMerge "Revert "Inline long shift code""
Calin Juravle [Tue, 17 Mar 2015 21:18:07 +0000 (21:18 +0000)]
Merge "Revert "Inline long shift code""

9 years agoRevert "Inline long shift code"
Calin Juravle [Tue, 17 Mar 2015 21:16:38 +0000 (21:16 +0000)]
Revert "Inline long shift code"

This reverts commit 09895ebf2d98783e65930a820e9288703bb1a50b.

Change-Id: I7544022d896ef4353bc2cdf4b036403ed20c956d

9 years agoRevert "Make subs alter flags when rn is an immediate"
Calin Juravle [Tue, 17 Mar 2015 21:16:24 +0000 (21:16 +0000)]
Revert "Make subs alter flags when rn is an immediate"

This reverts commit 8de00e3f5fcb99bfd7e4dc679ab7333549bec2c1.

Change-Id: Ie9da31279f565f165d51d8c0036928377280e3b8

9 years agoRevert "Forbid the use of shifts in ShifterOperand in Thumb2"
Calin Juravle [Tue, 17 Mar 2015 21:16:10 +0000 (21:16 +0000)]
Revert "Forbid the use of shifts in ShifterOperand in Thumb2"

This reverts commit bada8b0f0a10bd32d6cb87ed4e57f2aa3d7c03c2.

Change-Id: Ic89c76367c8ab91cfb5d1510789ac2e352922da8

9 years agoART: Fix condition for StoreNeedsWriteBarrier
David Brazdil [Tue, 17 Mar 2015 18:48:28 +0000 (18:48 +0000)]
ART: Fix condition for StoreNeedsWriteBarrier

Codegen's StoreNeedsWriteBarrier assumed nulls are represented as
integer constants and generated a barrier when not needed. This patch
fixes the bug.

Change-Id: I79247f1009b1fe6f24dba0d57e846ecc55806d4d

9 years agoMerge "Inline long shift code"
Calin Juravle [Tue, 17 Mar 2015 18:50:54 +0000 (18:50 +0000)]
Merge "Inline long shift code"

9 years agoInline long shift code
Guillaume "Vermeille" Sanchez [Wed, 11 Mar 2015 14:57:40 +0000 (14:57 +0000)]
Inline long shift code

Change-Id: I96887c295eb9a23dad4c9cc05d0a0e3ba17f674d

9 years agoMerge "Make subs alter flags when rn is an immediate"
Calin Juravle [Tue, 17 Mar 2015 18:42:26 +0000 (18:42 +0000)]
Merge "Make subs alter flags when rn is an immediate"

9 years agoMerge "Forbid the use of shifts in ShifterOperand in Thumb2"
Calin Juravle [Tue, 17 Mar 2015 18:41:43 +0000 (18:41 +0000)]
Merge "Forbid the use of shifts in ShifterOperand in Thumb2"

9 years agoAdd JIT zygote hook
Mathieu Chartier [Tue, 17 Mar 2015 16:52:22 +0000 (09:52 -0700)]
Add JIT zygote hook

Bug: 19735273
Change-Id: I1983852e80010c344b45e0bb459de47c56adfce8

9 years agoMerge "Unbreak checker."
Nicolas Geoffray [Tue, 17 Mar 2015 18:15:46 +0000 (18:15 +0000)]
Merge "Unbreak checker."

9 years agoUnbreak checker.
Nicolas Geoffray [Tue, 17 Mar 2015 18:12:06 +0000 (18:12 +0000)]
Unbreak checker.

Change-Id: Idabb8c04c29d265330ef9ae28c1df01129abe9dd

9 years agoMerge "Fall back to Quick when Optimizing cannot compile."
Nicolas Geoffray [Tue, 17 Mar 2015 18:11:36 +0000 (18:11 +0000)]
Merge "Fall back to Quick when Optimizing cannot compile."

9 years agoFall back to Quick when Optimizing cannot compile.
Nicolas Geoffray [Tue, 17 Mar 2015 17:09:30 +0000 (17:09 +0000)]
Fall back to Quick when Optimizing cannot compile.

Currently applies when seeing unresolved types/methods/fields,
and methods with try/catch.

Change-Id: I93b12d440b39f0b9faf98f08f2bfddedfeff7182

9 years agoMake subs alter flags when rn is an immediate
Guillaume "Vermeille" Sanchez [Wed, 11 Mar 2015 14:30:31 +0000 (14:30 +0000)]
Make subs alter flags when rn is an immediate

Change-Id: I7ea84fca5f97713871744b8ac4265a84fd6a5248

9 years agoMerge "PREOPT compiles using dex2oatd so don't emit debug instructions."
Nicolas Geoffray [Tue, 17 Mar 2015 16:31:28 +0000 (16:31 +0000)]
Merge "PREOPT compiles using dex2oatd so don't emit debug instructions."

9 years agoPREOPT compiles using dex2oatd so don't emit debug instructions.
Nicolas Geoffray [Tue, 17 Mar 2015 16:16:49 +0000 (16:16 +0000)]
PREOPT compiles using dex2oatd so don't emit debug instructions.

Change-Id: I8d2ab8d956ad0ce313928918c658d49f490ad081

9 years agoUse optimizing for apps.
Nicolas Geoffray [Wed, 11 Mar 2015 18:41:06 +0000 (18:41 +0000)]
Use optimizing for apps.

Doing it in dex2oat, to avoid messing up with our current testing.

Change-Id: I76c58f11f0d4756b894e797fc52712453e35adb1

9 years agoMerge "ART: Fix build for counting arena allocations."
Vladimir Marko [Tue, 17 Mar 2015 11:11:54 +0000 (11:11 +0000)]
Merge "ART: Fix build for counting arena allocations."

9 years agoART: Fix build for counting arena allocations.
Vladimir Marko [Tue, 17 Mar 2015 11:05:20 +0000 (11:05 +0000)]
ART: Fix build for counting arena allocations.

Change-Id: I1fbb8cc9c4934cc81cb80c5c2107c63fd16a0a05

9 years agoMerge "ART: Faster implementation of GVN's hash table"
David Brazdil [Tue, 17 Mar 2015 10:08:50 +0000 (10:08 +0000)]
Merge "ART: Faster implementation of GVN's hash table"

9 years agoART: Faster implementation of GVN's hash table
David Brazdil [Tue, 3 Mar 2015 11:54:54 +0000 (11:54 +0000)]
ART: Faster implementation of GVN's hash table

The basic hash table in Optimizing's GVN pass does not scale for
larger methods and quickly becomes a bottleneck. This patch provides
a different implementation, focusing on the following:
(1) Proper buckets with chaining for near constant-time lookup.
(2) Bucket inheritance for faster cloning. A clone does not actually
    copy the entries until a first change is made.
(3) Table resizing for better load management. Done during cloning.
(4) Kill() and IntersectWith() applied only on impure instructions.
    This is achieved by splitting (im)pure entries between even- and
    odd-indexed buckets.

Benchmarks show that this optimization speeds up GVN by ~10%, which
translates to a rougly 2% change in the overall compilation time.

Change-Id: Ib4058359701d990194cfd49c6ee46ac2372f090c

9 years agoMerge "Fixed maybe used uninitialized"
Andrew Hsieh [Mon, 16 Mar 2015 23:48:36 +0000 (23:48 +0000)]
Merge "Fixed maybe used uninitialized"

9 years agoMerge "[optimizing] Use baseline when debuggable is set."
Nicolas Geoffray [Mon, 16 Mar 2015 17:20:06 +0000 (17:20 +0000)]
Merge "[optimizing] Use baseline when debuggable is set."

9 years ago[optimizing] Use baseline when debuggable is set.
Nicolas Geoffray [Mon, 16 Mar 2015 13:55:40 +0000 (13:55 +0000)]
[optimizing] Use baseline when debuggable is set.

SSA form conflicts with JDWP's SetValue functionality. Because
we do not deopt all the call stack, we may call SetValue on a
compiled frame, which doesn't work with optimizing. Simplest
solution for now is to just use baseline.

Change-Id: I91738b363eec8fef145486bd96681aea73a1baa8

9 years agoMerge "ART: Change logging strategy in run-tests"
Andreas Gampe [Mon, 16 Mar 2015 15:10:02 +0000 (15:10 +0000)]
Merge "ART: Change logging strategy in run-tests"

9 years agoMerge "Update test expections after network changes in kernel/libcore."
Nicolas Geoffray [Mon, 16 Mar 2015 13:59:02 +0000 (13:59 +0000)]
Merge "Update test expections after network changes in kernel/libcore."

9 years agoUpdate test expections after network changes in kernel/libcore.
Nicolas Geoffray [Mon, 16 Mar 2015 13:51:43 +0000 (13:51 +0000)]
Update test expections after network changes in kernel/libcore.

Change-Id: I1cdb55b2320a451d82b24a1f497930c12dd506cb

9 years agoMerge "Update locations of registers after slow paths spilling."
Nicolas Geoffray [Mon, 16 Mar 2015 10:49:25 +0000 (10:49 +0000)]
Merge "Update locations of registers after slow paths spilling."

9 years agoUpdate locations of registers after slow paths spilling.
Nicolas Geoffray [Fri, 13 Mar 2015 18:52:59 +0000 (18:52 +0000)]
Update locations of registers after slow paths spilling.

Change-Id: Id9aafcc13c1a085c17ce65d704c67b73f9de695d

9 years agoFixed maybe used uninitialized
Andrew Hsieh [Mon, 16 Mar 2015 09:03:06 +0000 (17:03 +0800)]
Fixed maybe used uninitialized

GCC 4.9 found that ops[1].op maybe uninitialized in
ArmMir2Lir::GetEasyMultiplyTwoOps, but used unconditionally
in ArmMir2Lir::GenEasyMultiplyTwoOps

Change-Id: Icf8fdf3b888bd54ccb252e95637774889c7a0f9d

9 years agoMerge "Add more info to GetSFields DCHECK"
Mathieu Chartier [Sun, 15 Mar 2015 21:25:57 +0000 (21:25 +0000)]
Merge "Add more info to GetSFields DCHECK"

9 years agoAdd more info to GetSFields DCHECK
Mathieu Chartier [Sun, 15 Mar 2015 21:19:14 +0000 (14:19 -0700)]
Add more info to GetSFields DCHECK

Some hprof test 64 bit failures had this DCHECK failing.

Change-Id: Iede7432056f99aa2773ddfd098b359fca5f4371e

9 years agoMerge "ART: Fix missing Erase() in error case"
Andreas Gampe [Sun, 15 Mar 2015 20:28:43 +0000 (20:28 +0000)]
Merge "ART: Fix missing Erase() in error case"

9 years agoART: Change logging strategy in run-tests
Andreas Gampe [Sat, 14 Mar 2015 02:51:09 +0000 (19:51 -0700)]
ART: Change logging strategy in run-tests

For host tests, do not silence warnings for the prebuild stage.

Bug: 19687013
Change-Id: Idd8f61a05d548da1679fddbd9ef5d216397b4fe7

9 years agoMerge "Revert "Disable jit for ARM 64 bit""
Mathieu Chartier [Sat, 14 Mar 2015 02:38:22 +0000 (02:38 +0000)]
Merge "Revert "Disable jit for ARM 64 bit""

9 years agoRevert "Disable jit for ARM 64 bit"
Mathieu Chartier [Sat, 14 Mar 2015 02:21:08 +0000 (19:21 -0700)]
Revert "Disable jit for ARM 64 bit"

Bug: 17950037

This reverts commit bf9026d3e09b5b92b1d94a8e1e3953bf13127bef.

9 years agoMerge "Fix 32 bit loads of 64 bit direct code pointers"
Mathieu Chartier [Sat, 14 Mar 2015 01:50:01 +0000 (01:50 +0000)]
Merge "Fix 32 bit loads of 64 bit direct code pointers"

9 years agoFix 32 bit loads of 64 bit direct code pointers
Mathieu Chartier [Fri, 13 Mar 2015 23:32:44 +0000 (16:32 -0700)]
Fix 32 bit loads of 64 bit direct code pointers

Fixes 64 bit problems for JIT since the JIT code cache isn't always
in the low 2GB.

(cherry picked from commit 0d2ac187be10838c008e6aaa03e5e55014e9087e)

Change-Id: Ifd37d6a86166a91be1b258da7329c888fd82e4b9

9 years agoMerge "Add more info to who called SuspendAll"
Mathieu Chartier [Sat, 14 Mar 2015 01:25:46 +0000 (01:25 +0000)]
Merge "Add more info to who called SuspendAll"

9 years agoAdd more info to who called SuspendAll
Mathieu Chartier [Sat, 14 Mar 2015 00:21:25 +0000 (17:21 -0700)]
Add more info to who called SuspendAll

Helps diagnose related jank.

Change-Id: I38191cdda723c6f0355d0197c494a3dff2b6653c

9 years agoMerge "Fix valgrind heap_test."
Hiroshi Yamauchi [Fri, 13 Mar 2015 23:59:00 +0000 (23:59 +0000)]
Merge "Fix valgrind heap_test."

9 years agoART: Fix missing Erase() in error case
Andreas Gampe [Fri, 13 Mar 2015 23:54:54 +0000 (16:54 -0700)]
ART: Fix missing Erase() in error case

Fixes an abort for unclosed file.

Change-Id: Iae46fd89724f6f77a2b0a8c40293532e56153c2e

9 years agoFix valgrind heap_test.
Hiroshi Yamauchi [Fri, 13 Mar 2015 23:48:55 +0000 (16:48 -0700)]
Fix valgrind heap_test.

Copy the exact object size rather than the aligned size to avoid
valgrind errors in the zygote compact collector.

Change-Id: I260b8901f96fb4c0937a1a5237120b56f6858b7a

9 years agoMerge "Change method verifiers to be thread local roots"
Mathieu Chartier [Fri, 13 Mar 2015 23:53:16 +0000 (23:53 +0000)]
Merge "Change method verifiers to be thread local roots"

9 years agoChange method verifiers to be thread local roots
Mathieu Chartier [Fri, 13 Mar 2015 18:33:37 +0000 (11:33 -0700)]
Change method verifiers to be thread local roots

Bug: 10921004

Change-Id: I3a1425d76cd380587ba67ef6d5ec1227564e55bf

9 years agoMerge "[optimizing] Don't record None locations in the stack maps."
Nicolas Geoffray [Fri, 13 Mar 2015 18:46:44 +0000 (18:46 +0000)]
Merge "[optimizing] Don't record None locations in the stack maps."

9 years agoMerge "Disable jit for ARM 64 bit"
Mathieu Chartier [Fri, 13 Mar 2015 18:46:06 +0000 (18:46 +0000)]
Merge "Disable jit for ARM 64 bit"

9 years agoDisable jit for ARM 64 bit
Mathieu Chartier [Fri, 13 Mar 2015 18:34:02 +0000 (11:34 -0700)]
Disable jit for ARM 64 bit

Until issues are fixed.

Bug: 17950037
Change-Id: I4517a1e188adf0a087576423066c348eb6ae81be

9 years ago[optimizing] Don't record None locations in the stack maps.
Nicolas Geoffray [Fri, 13 Mar 2015 14:39:40 +0000 (14:39 +0000)]
[optimizing] Don't record None locations in the stack maps.

- moved environment recording from code generator to stack map stream
- added creation/loading factory methods for the DexRegisterMap (hides
internal details)
- added new tests

Change-Id: Ic8b6d044f0d8255c6759c19a41df332ef37876fe

9 years agoMerge "Update expectations for libcore bug."
Nicolas Geoffray [Fri, 13 Mar 2015 18:27:43 +0000 (18:27 +0000)]
Merge "Update expectations for libcore bug."

9 years agoUpdate expectations for libcore bug.
Nicolas Geoffray [Fri, 13 Mar 2015 18:26:43 +0000 (18:26 +0000)]
Update expectations for libcore bug.

Change-Id: I88b949956440b8f0bc8f2bfe731fb7a3d18652e6

9 years agoMerge "Exercise Heap::PreZygoteFork() in a test."
Hiroshi Yamauchi [Fri, 13 Mar 2015 18:02:08 +0000 (18:02 +0000)]
Merge "Exercise Heap::PreZygoteFork() in a test."

9 years agoExercise Heap::PreZygoteFork() in a test.
Hiroshi Yamauchi [Thu, 12 Mar 2015 22:40:53 +0000 (15:40 -0700)]
Exercise Heap::PreZygoteFork() in a test.

Change-Id: If41c931ffdbb0310536799b4515557770f2cd4b9

9 years agoMerge "ART: Add entries_ lock for race condition"
Mathieu Chartier [Fri, 13 Mar 2015 17:56:45 +0000 (17:56 +0000)]
Merge "ART: Add entries_ lock for race condition"

9 years agoART: Add entries_ lock for race condition
bowen_lai [Fri, 13 Mar 2015 06:34:40 +0000 (14:34 +0800)]
ART: Add entries_ lock for race condition

GCDaemon thread would visit incorrect RegType content when there is
another thread initializing classes.
Add a lock to protect entries_.

https://code.google.com/p/android/issues/detail?id=159849

Change-Id: Iabaa1c7f5cc5106b60a6e3856152e0797e8a5d6d

9 years agoMerge "Refactor code in preparation of correct stack maps in slow path."
Nicolas Geoffray [Fri, 13 Mar 2015 17:04:29 +0000 (17:04 +0000)]
Merge "Refactor code in preparation of correct stack maps in slow path."

9 years agoRefactor code in preparation of correct stack maps in slow path.
Nicolas Geoffray [Fri, 13 Mar 2015 16:36:36 +0000 (16:36 +0000)]
Refactor code in preparation of correct stack maps in slow path.

Move the logic of saving/restoring live registers in slow path
in the SlowPathCode method. Also add a RecordPcInfo helper to
SlowPathCode, that will act as the placeholder of saving correct
stack maps.

Change-Id: I25c2bc7a642ef854bbc8a3eb570e5c8c8d2d030c

9 years agoMerge "ART: Fix arraycopy in Unstarted Runtime"
Andreas Gampe [Fri, 13 Mar 2015 16:20:19 +0000 (16:20 +0000)]
Merge "ART: Fix arraycopy in Unstarted Runtime"

9 years agoART: Fix arraycopy in Unstarted Runtime
Andreas Gampe [Thu, 12 Mar 2015 01:34:44 +0000 (18:34 -0700)]
ART: Fix arraycopy in Unstarted Runtime

Add null and bounds checks. Add type checks. Implement correct
copy in case of overlap.

The emulation is not complete. Object arrays with different types
are not supported to simplify the implementation.

Change-Id: I107bed1ce884ca632de3fa648fa7a1c5f592e2a4

9 years agoMerge "Align CodeInfo regions instead of their inner subregions."
Roland Levillain [Fri, 13 Mar 2015 13:54:27 +0000 (13:54 +0000)]
Merge "Align CodeInfo regions instead of their inner subregions."

9 years agoAlign CodeInfo regions instead of their inner subregions.
Roland Levillain [Fri, 13 Mar 2015 12:23:04 +0000 (12:23 +0000)]
Align CodeInfo regions instead of their inner subregions.

Instead of word-aligning every stack map region, as well as
the Dex register maps region of a CodeInfo object, just
align the whole CodeInfo region itself.

Change-Id: Ia35d213d2bd184729aa0d048874c76f7bc6da0f6

9 years agoMerge "Fix the computation of the size of the stack maps region."
Roland Levillain [Fri, 13 Mar 2015 12:40:16 +0000 (12:40 +0000)]
Merge "Fix the computation of the size of the stack maps region."

9 years agoFix the computation of the size of the stack maps region.
Roland Levillain [Fri, 13 Mar 2015 11:45:07 +0000 (11:45 +0000)]
Fix the computation of the size of the stack maps region.

In art::StackMapStream::ComputeStackMapSize, compute the
size of a CodeInfo's stack maps region using the stack
mask size, not the maximum element of the stack mask.
Also, rename this method as
art::StackMapStream::ComputeStackMapsSize to make it clear
it that it covers all the stack maps of the CodeInfo item,
not just one stack map.

Change-Id: Icad21946dbca6e1ade2b82c9c2c535fdfed110a9

9 years agoMerge "Disable inlining in Optimizing when --debuggable is set."
Nicolas Geoffray [Fri, 13 Mar 2015 10:37:33 +0000 (10:37 +0000)]
Merge "Disable inlining in Optimizing when --debuggable is set."

9 years agoMerge "API change in StackVisitor::GetVReg*."
Nicolas Geoffray [Fri, 13 Mar 2015 10:32:31 +0000 (10:32 +0000)]
Merge "API change in StackVisitor::GetVReg*."

9 years agoAPI change in StackVisitor::GetVReg*.
Nicolas Geoffray [Thu, 12 Mar 2015 15:05:13 +0000 (15:05 +0000)]
API change in StackVisitor::GetVReg*.

- Remove GetVReg() and SetVReg() that were expecting to always succeed.
- Change Quick-only methods to take a FromQuickCode suffix.
- Change deopt to use dead values when GetVReg does not succeed:
  the optimizing compiler will not have a location for uninitialized
  Dex registers and potentially dead registers.

Change-Id: Ida05773a97aff8aa69e0caf42ea961f80f854b77

9 years agoDisable inlining in Optimizing when --debuggable is set.
Nicolas Geoffray [Fri, 13 Mar 2015 08:57:42 +0000 (08:57 +0000)]
Disable inlining in Optimizing when --debuggable is set.

Change-Id: I6365269e606e0c176e518c06719ebdaf6a4c4b88