OSDN Git Service
Vladimir Marko [Wed, 18 Mar 2015 16:01:24 +0000 (16:01 +0000)]
Merge "Quick: 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
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."
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
Nicolas Geoffray [Wed, 18 Mar 2015 10:48:19 +0000 (10:48 +0000)]
Merge "StackMap: 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
David Brazdil [Wed, 18 Mar 2015 09:15:21 +0000 (09:15 +0000)]
Merge "ART: Fix condition for StoreNeedsWriteBarrier"
Nicolas Geoffray [Wed, 18 Mar 2015 08:27:15 +0000 (08:27 +0000)]
Merge "Use optimizing for apps."
Hiroshi Yamauchi [Wed, 18 Mar 2015 00:06:16 +0000 (00:06 +0000)]
Merge "Fix 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
Mathieu Chartier [Tue, 17 Mar 2015 21:51:43 +0000 (21:51 +0000)]
Merge "Add JIT zygote hook"
Calin Juravle [Tue, 17 Mar 2015 21:19:02 +0000 (21:19 +0000)]
Merge "Revert "Forbid the use of shifts in ShifterOperand in Thumb2""
Calin Juravle [Tue, 17 Mar 2015 21:18:33 +0000 (21:18 +0000)]
Merge "Revert "Make subs alter flags when rn is an immediate""
Calin Juravle [Tue, 17 Mar 2015 21:18:07 +0000 (21:18 +0000)]
Merge "Revert "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
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
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
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
Calin Juravle [Tue, 17 Mar 2015 18:50:54 +0000 (18:50 +0000)]
Merge "Inline long shift code"
Guillaume "Vermeille" Sanchez [Wed, 11 Mar 2015 14:57:40 +0000 (14:57 +0000)]
Inline long shift code
Change-Id: I96887c295eb9a23dad4c9cc05d0a0e3ba17f674d
Calin Juravle [Tue, 17 Mar 2015 18:42:26 +0000 (18:42 +0000)]
Merge "Make subs alter flags when rn is an immediate"
Calin Juravle [Tue, 17 Mar 2015 18:41:43 +0000 (18:41 +0000)]
Merge "Forbid the use of shifts in ShifterOperand in Thumb2"
Mathieu Chartier [Tue, 17 Mar 2015 16:52:22 +0000 (09:52 -0700)]
Add JIT zygote hook
Bug:
19735273
Change-Id: I1983852e80010c344b45e0bb459de47c56adfce8
Nicolas Geoffray [Tue, 17 Mar 2015 18:15:46 +0000 (18:15 +0000)]
Merge "Unbreak checker."
Nicolas Geoffray [Tue, 17 Mar 2015 18:12:06 +0000 (18:12 +0000)]
Unbreak checker.
Change-Id: Idabb8c04c29d265330ef9ae28c1df01129abe9dd
Nicolas Geoffray [Tue, 17 Mar 2015 18:11:36 +0000 (18:11 +0000)]
Merge "Fall 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
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
Nicolas Geoffray [Tue, 17 Mar 2015 16:31:28 +0000 (16:31 +0000)]
Merge "PREOPT 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
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
Vladimir Marko [Tue, 17 Mar 2015 11:11:54 +0000 (11:11 +0000)]
Merge "ART: 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
David Brazdil [Tue, 17 Mar 2015 10:08:50 +0000 (10:08 +0000)]
Merge "ART: 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
Andrew Hsieh [Mon, 16 Mar 2015 23:48:36 +0000 (23:48 +0000)]
Merge "Fixed maybe used uninitialized"
Nicolas Geoffray [Mon, 16 Mar 2015 17:20:06 +0000 (17:20 +0000)]
Merge "[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
Andreas Gampe [Mon, 16 Mar 2015 15:10:02 +0000 (15:10 +0000)]
Merge "ART: Change logging strategy in run-tests"
Nicolas Geoffray [Mon, 16 Mar 2015 13:59:02 +0000 (13:59 +0000)]
Merge "Update 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
Nicolas Geoffray [Mon, 16 Mar 2015 10:49:25 +0000 (10:49 +0000)]
Merge "Update 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
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
Mathieu Chartier [Sun, 15 Mar 2015 21:25:57 +0000 (21:25 +0000)]
Merge "Add 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
Andreas Gampe [Sun, 15 Mar 2015 20:28:43 +0000 (20:28 +0000)]
Merge "ART: Fix missing Erase() in error case"
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
Mathieu Chartier [Sat, 14 Mar 2015 02:38:22 +0000 (02:38 +0000)]
Merge "Revert "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.
Mathieu Chartier [Sat, 14 Mar 2015 01:50:01 +0000 (01:50 +0000)]
Merge "Fix 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
Mathieu Chartier [Sat, 14 Mar 2015 01:25:46 +0000 (01:25 +0000)]
Merge "Add 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
Hiroshi Yamauchi [Fri, 13 Mar 2015 23:59:00 +0000 (23:59 +0000)]
Merge "Fix valgrind heap_test."
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
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
Mathieu Chartier [Fri, 13 Mar 2015 23:53:16 +0000 (23:53 +0000)]
Merge "Change 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
Nicolas Geoffray [Fri, 13 Mar 2015 18:46:44 +0000 (18:46 +0000)]
Merge "[optimizing] Don't record None locations in the stack maps."
Mathieu Chartier [Fri, 13 Mar 2015 18:46:06 +0000 (18:46 +0000)]
Merge "Disable 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
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
Nicolas Geoffray [Fri, 13 Mar 2015 18:27:43 +0000 (18:27 +0000)]
Merge "Update 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
Hiroshi Yamauchi [Fri, 13 Mar 2015 18:02:08 +0000 (18:02 +0000)]
Merge "Exercise 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
Mathieu Chartier [Fri, 13 Mar 2015 17:56:45 +0000 (17:56 +0000)]
Merge "ART: 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
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."
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
Andreas Gampe [Fri, 13 Mar 2015 16:20:19 +0000 (16:20 +0000)]
Merge "ART: 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
Roland Levillain [Fri, 13 Mar 2015 13:54:27 +0000 (13:54 +0000)]
Merge "Align 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
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."
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
Nicolas Geoffray [Fri, 13 Mar 2015 10:37:33 +0000 (10:37 +0000)]
Merge "Disable inlining in Optimizing when --debuggable is set."
Nicolas Geoffray [Fri, 13 Mar 2015 10:32:31 +0000 (10:32 +0000)]
Merge "API 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
Nicolas Geoffray [Fri, 13 Mar 2015 08:57:42 +0000 (08:57 +0000)]
Disable inlining in Optimizing when --debuggable is set.
Change-Id: I6365269e606e0c176e518c06719ebdaf6a4c4b88
Sergio Giro [Fri, 13 Mar 2015 09:53:39 +0000 (09:53 +0000)]
Merge "art/test/100-reflect2: change incorrect expectations."
Nicolas Geoffray [Fri, 13 Mar 2015 08:55:51 +0000 (08:55 +0000)]
Merge "Fix build breakage."
Nicolas Geoffray [Fri, 13 Mar 2015 08:55:09 +0000 (08:55 +0000)]
Fix build breakage.
Change-Id: I86959eca5d8f5458ff75c78776b0af9db9c26800
Nicolas Geoffray [Fri, 13 Mar 2015 08:45:10 +0000 (08:45 +0000)]
Merge "Tweak liveness when instructions are used in environments."
Dan Albert [Fri, 13 Mar 2015 00:49:22 +0000 (00:49 +0000)]
Merge "Fix copy/paste documentation error."
Dan Albert [Fri, 13 Mar 2015 00:26:05 +0000 (17:26 -0700)]
Fix copy/paste documentation error.
Change-Id: I153a8fdb3644c7178895ce0cc6c1c3f6ce3c6876
Andreas Gampe [Thu, 12 Mar 2015 23:17:12 +0000 (23:17 +0000)]
Merge "ART: More cutouts for unstarted runtime"
Andreas Gampe [Mon, 9 Mar 2015 19:57:41 +0000 (12:57 -0700)]
ART: More cutouts for unstarted runtime
Dex objects keep byte buffers to mapped dex files. For annotation
access we create them when compiling, but they must be cleared before
writing an image.
Add some Memory functions.
Bug:
19542228
Change-Id: I995791b43f2b09192d88645821d9e55b45f1b606
Hiroshi Yamauchi [Thu, 12 Mar 2015 22:56:46 +0000 (22:56 +0000)]
Merge "Improve 080-oom-throw-with-finalizer."
Andreas Gampe [Thu, 12 Mar 2015 22:37:14 +0000 (22:37 +0000)]
Merge "ART: Save work-line for pending runtime failure"
Hiroshi Yamauchi [Thu, 12 Mar 2015 20:12:53 +0000 (13:12 -0700)]
Improve 080-oom-throw-with-finalizer.
Avoid potential OOME that may be thrown during System.out.println or
System.runFinalization.
Bug:
19677738
Change-Id: I60c678000e965899cc876e746e72dc9cc0c6ebf9
Richard Uhler [Thu, 12 Mar 2015 20:07:59 +0000 (20:07 +0000)]
Merge "Add missing patchoatd dependency for oat_file_assistant_test."
Andreas Gampe [Thu, 12 Mar 2015 20:00:20 +0000 (20:00 +0000)]
Merge "ART: Allow multiple invoke-with for art script"
Richard Uhler [Thu, 12 Mar 2015 19:35:43 +0000 (12:35 -0700)]
Add missing patchoatd dependency for oat_file_assistant_test.
Change-Id: I11c64401d0b0c75ef4cc7fbdabf3fcc7d6fd048b
Roland Levillain [Thu, 12 Mar 2015 18:35:45 +0000 (18:35 +0000)]
Merge "Force word alignment of Dex register maps."
Roland Levillain [Thu, 12 Mar 2015 18:33:05 +0000 (18:33 +0000)]
Force word alignment of Dex register maps.
Plus some cosmetic changes.
Change-Id: I45e805aa87c2ef8fe8907eaae726cd2188b54897
Mathieu Chartier [Thu, 12 Mar 2015 18:09:49 +0000 (18:09 +0000)]
Merge "Add way to select arena type at runtime"
Andreas Gampe [Thu, 12 Mar 2015 18:05:47 +0000 (11:05 -0700)]
ART: Save work-line for pending runtime failure
When we detect a pending runtime failure, we'll handle it as a
generic throw, no matter the instruction type. But we won't have
saved the work-line, which means we'll try to merge garbage into
the handler's line.
Copy the work-line when we set the failure.
Bug:
19634276
Change-Id: I54df9e9492cd48802f93e2f1938adaadc55c9bd5
Mathieu Chartier [Thu, 12 Mar 2015 17:06:33 +0000 (10:06 -0700)]
Add way to select arena type at runtime
We now use MemMap for JIT, and malloc for everything else. This
should help fix the allegedly regressed compile times.
Change-Id: I6a6552738933f9d7ee3bd23f45e310818b19b70d