OSDN Git Service

android-x86/art.git
8 years agoART: Move code from RA to T9 in Mips64 longjump
Andreas Gampe [Fri, 25 Sep 2015 15:24:13 +0000 (08:24 -0700)]
ART: Move code from RA to T9 in Mips64 longjump

Do not use the return address. It should not be clobbered as we
may need it, e.g., for single-frame deopt.

Change-Id: I401d7b0034bc4e210bda231ec78ee31242053b36

8 years agoMerge "Optimizing: Rewrite HGraph::FindBackEdges()."
Vladimir Marko [Thu, 24 Sep 2015 17:13:16 +0000 (17:13 +0000)]
Merge "Optimizing: Rewrite HGraph::FindBackEdges()."

8 years agoMerge "Optimizing: Rewrite HGraph::ComputeDominanceInformation()."
Vladimir Marko [Thu, 24 Sep 2015 17:04:38 +0000 (17:04 +0000)]
Merge "Optimizing: Rewrite HGraph::ComputeDominanceInformation()."

8 years agoOptimizing: Rewrite HGraph::FindBackEdges().
Vladimir Marko [Thu, 24 Sep 2015 12:11:31 +0000 (13:11 +0100)]
Optimizing: Rewrite HGraph::FindBackEdges().

Replace a recursive implementation with a loop using a work
list to avoid stack overflow for 702-LargeBranchOffset in
host debug build with -O0, 512KiB thread pool worker stack.

Change-Id: Iaa91f006fa1099913aeffc9c764879bd004d56de

8 years agoOptimizing: Rewrite HGraph::ComputeDominanceInformation().
Vladimir Marko [Wed, 23 Sep 2015 15:07:14 +0000 (16:07 +0100)]
Optimizing: Rewrite HGraph::ComputeDominanceInformation().

Replace a recursive implementation with a loop using a work
list to avoid stack overflow for 702-LargeBranchOffset in
host debug build with -O0.

Bug: 24133462
Change-Id: I444cc85733a9212403a071ea98b9ddfb52bfc402

8 years agoMerge "ART: mprotect() bottom page of ThreadPoolWorker stacks."
Vladimir Marko [Thu, 24 Sep 2015 12:19:32 +0000 (12:19 +0000)]
Merge "ART: mprotect() bottom page of ThreadPoolWorker stacks."

8 years agoMerge "ART: Refactor run-test 482-loop-back-edge-use"
David Brazdil [Thu, 24 Sep 2015 11:16:17 +0000 (11:16 +0000)]
Merge "ART: Refactor run-test 482-loop-back-edge-use"

8 years agoART: mprotect() bottom page of ThreadPoolWorker stacks.
Vladimir Marko [Thu, 24 Sep 2015 09:41:33 +0000 (10:41 +0100)]
ART: mprotect() bottom page of ThreadPoolWorker stacks.

This will catch stack overflows instead of creating hard
to find issues later on.

Bug: 24133462
Change-Id: I3ae5d5da70b8167867936b2561830f3ff47f14fc

8 years agoMerge "Minor cleanup in range analysis."
Aart Bik [Thu, 24 Sep 2015 01:44:04 +0000 (01:44 +0000)]
Merge "Minor cleanup in range analysis."

8 years agoMinor cleanup in range analysis.
Aart Bik [Thu, 24 Sep 2015 00:50:50 +0000 (17:50 -0700)]
Minor cleanup in range analysis.

(1) replaced min/max macro as previously required.
(2) removed some redundant code by merging min/max into one.

Change-Id: I610879a06d550346bfac7e6e12ec0299ba226a37

8 years agoMerge "Various improvements in finding induction variables."
Aart Bik [Wed, 23 Sep 2015 23:34:54 +0000 (23:34 +0000)]
Merge "Various improvements in finding induction variables."

8 years agoVarious improvements in finding induction variables.
Aart Bik [Wed, 16 Sep 2015 19:50:25 +0000 (12:50 -0700)]
Various improvements in finding induction variables.

Rationale:
(1) Analyze multi-way phis (requested by Nicolas, Igor, and Mingyao).
(2) Analyze trip count for restricted != loops
(3) Added unit test for public API of range analysis (static methods
    were already well-tested).

Change-Id: I9285d22d3bb927f141204cc4697ea6fe5120994d

8 years agoMerge "Replaced INT_MIN/MAX with modern-day limits."
Aart Bik [Wed, 23 Sep 2015 18:43:56 +0000 (18:43 +0000)]
Merge "Replaced INT_MIN/MAX with modern-day limits."

8 years agoMerge "Add benchmark for jobject functions"
Mathieu Chartier [Wed, 23 Sep 2015 18:35:57 +0000 (18:35 +0000)]
Merge "Add benchmark for jobject functions"

8 years agoReplaced INT_MIN/MAX with modern-day limits.
Aart Bik [Wed, 23 Sep 2015 18:18:57 +0000 (11:18 -0700)]
Replaced INT_MIN/MAX with modern-day limits.

Change-Id: Ia6a0df1e8c6a543c338db0acd75437e1d19701e3

8 years agoMerge "Fix falkiness in 117-nopatchoat"
Alex Light [Wed, 23 Sep 2015 16:41:24 +0000 (16:41 +0000)]
Merge "Fix falkiness in 117-nopatchoat"

8 years agoFix falkiness in 117-nopatchoat
Alex Light [Sat, 19 Sep 2015 00:09:43 +0000 (17:09 -0700)]
Fix falkiness in 117-nopatchoat

Previously if the image chose a relocation delta of 0 this test would
fail. Now we check for this state directly.

Bug: 24192015

Change-Id: Ie818701edc5605fed590547f0e8b1e97d1d994e3

8 years agoART: Refactor run-test 482-loop-back-edge-use
David Brazdil [Wed, 23 Sep 2015 10:24:56 +0000 (11:24 +0100)]
ART: Refactor run-test 482-loop-back-edge-use

The test used to rely on absolute liveness positions of instructions.
This was painful but worked on all architectures because all passes
were platform agnostic. This does not apply any more and the test
needed to be rewritten.

Change-Id: I423e61ba64a9522361f8e20c27b1975656419f67

8 years agoMerge "Don't use ninja to build targets."
Nicolas Geoffray [Wed, 23 Sep 2015 11:04:28 +0000 (11:04 +0000)]
Merge "Don't use ninja to build targets."

8 years agoDon't use ninja to build targets.
Nicolas Geoffray [Wed, 23 Sep 2015 11:02:56 +0000 (12:02 +0100)]
Don't use ninja to build targets.

Ninja does not preserve the -e option given to make.

Change-Id: I3b540aa420a57369b67565477a31c6ff2c17afaf

8 years agoAdd benchmark for jobject functions
Mathieu Chartier [Wed, 23 Sep 2015 01:14:29 +0000 (18:14 -0700)]
Add benchmark for jobject functions

Measures performance of:
Add/RemoveLocalRef
Add/RemoveGlobalRef
Add/RemoveWeakGlobalRef
Decoding local, weak, global, handle scope jobjects.

N5 results:
benchmark    ns linear runtime
AddRemoveGlobal 476.7 ===========================
AddRemoveLocal  42.0 ==
AddRemoveWeakGlobal 519.7 ==============================
DecodeGlobal  69.9 ====
DecodeHandleScopeRef  38.9 ==
DecodeLocal  70.7 ====
DecodeWeakGlobal 119.7 ======

Change-Id: Iba014a9993909ee45fd52ae48d6dea8428a86bf2

8 years agoMerge "ART: PathClassLoader test"
Andreas Gampe [Tue, 22 Sep 2015 23:19:35 +0000 (23:19 +0000)]
Merge "ART: PathClassLoader test"

8 years agoART: PathClassLoader test
Andreas Gampe [Mon, 21 Sep 2015 18:25:10 +0000 (11:25 -0700)]
ART: PathClassLoader test

Add a test checking that subclassing PathClassLoader works as
expected.

Change-Id: Ic6bb733b748df5e29b21df021f302ed4237b0f99

8 years agoMerge "Some clean up for mark sweep files"
Mathieu Chartier [Tue, 22 Sep 2015 23:05:14 +0000 (23:05 +0000)]
Merge "Some clean up for mark sweep files"

8 years agoMerge "[optimizing] Add basic PackedSwitch support"
Andreas Gampe [Tue, 22 Sep 2015 23:05:00 +0000 (23:05 +0000)]
Merge "[optimizing] Add basic PackedSwitch support"

8 years agoMerge "Clear allocator in image writer"
Mathieu Chartier [Tue, 22 Sep 2015 23:04:55 +0000 (23:04 +0000)]
Merge "Clear allocator in image writer"

8 years agoClear allocator in image writer
Mathieu Chartier [Tue, 22 Sep 2015 22:18:04 +0000 (15:18 -0700)]
Clear allocator in image writer

Doesn't fix any active bugs, just precautionary.

Change-Id: I32a89e00b1d5964ad77fb53eded55263fea5df00

8 years agoSome clean up for mark sweep files
Mathieu Chartier [Tue, 22 Sep 2015 21:53:32 +0000 (14:53 -0700)]
Some clean up for mark sweep files

Bug: 19534862
Change-Id: Ib619e8c4b9d902269d123baa18be56c94114e070

8 years agoMerge "Fix static build when libbacktrace links llvm libraries."
Yabin Cui [Tue, 22 Sep 2015 21:18:55 +0000 (21:18 +0000)]
Merge "Fix static build when libbacktrace links llvm libraries."

8 years agoMerge "Fix CreateLinearAlloc bug"
Mathieu Chartier [Tue, 22 Sep 2015 18:23:19 +0000 (18:23 +0000)]
Merge "Fix CreateLinearAlloc bug"

8 years agoMerge "Various improvements in range analysis."
Aart Bik [Tue, 22 Sep 2015 18:05:39 +0000 (18:05 +0000)]
Merge "Various improvements in range analysis."

8 years agoFix CreateLinearAlloc bug
Mathieu Chartier [Tue, 22 Sep 2015 18:04:26 +0000 (11:04 -0700)]
Fix CreateLinearAlloc bug

Should have been using IsAotCompiler since the JIT has IsCompiler
as true but no low 4 GB arena pool.

Fixes 64 bit JIT tests.

Change-Id: Idc4d3e66c573eacd31ae85c66f8493b418d221d7

8 years agoMerge "Revert "Revert "Add one LinearAlloc per ClassLoader"""
Mathieu Chartier [Tue, 22 Sep 2015 16:28:12 +0000 (16:28 +0000)]
Merge "Revert "Revert "Add one LinearAlloc per ClassLoader"""

8 years agoRevert "Revert "Add one LinearAlloc per ClassLoader""
Mathieu Chartier [Tue, 22 Sep 2015 15:50:05 +0000 (08:50 -0700)]
Revert "Revert "Add one LinearAlloc per ClassLoader""

Issue was fixed by:
https://android-review.googlesource.com/#/c/171945/

Bug: 22720414

This reverts commit 7de5dfe37f3cf24e1166412b589f6f67dcd1f1c0.

8 years agoVarious improvements in range analysis.
Aart Bik [Mon, 21 Sep 2015 21:45:05 +0000 (14:45 -0700)]
Various improvements in range analysis.

Rationale:
Using min/max values for "unknowns" is a bit wasteful,
since it eliminates two useful values. Replaced this
with additional boolean to make cases more accurate.
Added few cases to handle examples found in real-life.

Change-Id: I211f8d9a28b1ae79abdb55fb4569716f21d8043b

8 years agoMerge "ART: Fix destruction order in Runtime."
Vladimir Marko [Tue, 22 Sep 2015 14:23:04 +0000 (14:23 +0000)]
Merge "ART: Fix destruction order in Runtime."

8 years agoART: Fix destruction order in Runtime.
Vladimir Marko [Tue, 22 Sep 2015 10:43:46 +0000 (11:43 +0100)]
ART: Fix destruction order in Runtime.

Destroy arena allocators as late as possible.

With https://android-review.googlesource.com/172057 , the
ArenaPool was indirectly used by ClassLinker's destructor
(via ~LinearAlloc) after it has already been destroyed.
These allocators were being destroyed way too early anyway,
they should be orderly destroyed when the unique_ptr<>
members of Runtime have their destructors executed. However,
due to the potential dependence on MemMap, we destroy them
just before the MemMap::ShutDown().

Change-Id: Ifc3e5a24a29536d5767c82353901e2d22b13d643

8 years agoMerge "Further refinements to checkcast/instanceof."
Nicolas Geoffray [Tue, 22 Sep 2015 09:53:20 +0000 (09:53 +0000)]
Merge "Further refinements to checkcast/instanceof."

8 years agoMerge "Revert "Add one LinearAlloc per ClassLoader""
Nicolas Geoffray [Tue, 22 Sep 2015 09:48:28 +0000 (09:48 +0000)]
Merge "Revert "Add one LinearAlloc per ClassLoader""

8 years agoRevert "Add one LinearAlloc per ClassLoader"
Nicolas Geoffray [Tue, 22 Sep 2015 09:48:02 +0000 (09:48 +0000)]
Revert "Add one LinearAlloc per ClassLoader"

Times out on 32bit target/host for 132-daemon-locks-shutdown test.

Bug: 22720414

This reverts commit 356412e2b7ba3fde164bc08a44fee0ddc19c54e1.

Change-Id: I5ab3a09e88a5ad8c306a27d2606ecbecc80b9326

8 years agoFurther refinements to checkcast/instanceof.
Nicolas Geoffray [Mon, 21 Sep 2015 17:41:21 +0000 (18:41 +0100)]
Further refinements to checkcast/instanceof.

- Use setcc when possible.
- Do an exact check in the Object[] case before checking the
  component type.

Change-Id: Ic11c60643af9b41fe4ef2beb59dfe7769bef388f

8 years agoFix static build when libbacktrace links llvm libraries.
Yabin Cui [Tue, 22 Sep 2015 03:28:36 +0000 (20:28 -0700)]
Fix static build when libbacktrace links llvm libraries.

Bug: 22229391

Change-Id: I8a2f3471cc1915e1e4e1eea0898219614e289ef3

8 years agoMerge "Add one LinearAlloc per ClassLoader"
Mathieu Chartier [Mon, 21 Sep 2015 23:29:32 +0000 (23:29 +0000)]
Merge "Add one LinearAlloc per ClassLoader"

8 years agoMerge "ART: Use JIT image for JIT run tests"
Andreas Gampe [Mon, 21 Sep 2015 23:07:57 +0000 (23:07 +0000)]
Merge "ART: Use JIT image for JIT run tests"

8 years agoART: Use JIT image for JIT run tests
Andreas Gampe [Mon, 21 Sep 2015 22:14:38 +0000 (15:14 -0700)]
ART: Use JIT image for JIT run tests

Don't use interpreter image anymore. That was a stop-gap measure.

Change-Id: If4b43bc20026b1ed89e59690fe35771746e354e6

8 years agoMerge "Revert "ART: Skip image visitor in OatWriter for VerifyAtRuntime""
Andreas Gampe [Mon, 21 Sep 2015 20:07:50 +0000 (20:07 +0000)]
Merge "Revert "ART: Skip image visitor in OatWriter for VerifyAtRuntime""

8 years agoAdd one LinearAlloc per ClassLoader
Mathieu Chartier [Mon, 21 Sep 2015 16:07:37 +0000 (09:07 -0700)]
Add one LinearAlloc per ClassLoader

Also added freeing linear alloc and class table when the
corresponding class loader is no longer reachable.

Bug: 22720414

Change-Id: Icb32c3a4c865f240e147bc87ed080a6b1d8a5795

8 years agoRevert "ART: Skip image visitor in OatWriter for VerifyAtRuntime"
Andreas Gampe [Mon, 21 Sep 2015 18:46:52 +0000 (11:46 -0700)]
Revert "ART: Skip image visitor in OatWriter for VerifyAtRuntime"

This reverts commit d5ce6a80d6795ada9f47600287706135481cbb4b.

This has an unexpected side effect of not correctly including
reference classes in the boot image. Needs more investigation.

Bug: 24103765
Bug: 24213543
Change-Id: I2a7649f07ec73c59a8cb543f12b6496ac74f7a11

8 years agoMerge "Fix locking on string init map (again)."
Vladimir Marko [Mon, 21 Sep 2015 18:52:46 +0000 (18:52 +0000)]
Merge "Fix locking on string init map (again)."

8 years agoMerge "MIPS64: No call if ArraySet does not need a type check"
David Brazdil [Mon, 21 Sep 2015 17:43:03 +0000 (17:43 +0000)]
Merge "MIPS64: No call if ArraySet does not need a type check"

8 years agoMIPS64: No call if ArraySet does not need a type check
David Brazdil [Mon, 21 Sep 2015 17:39:16 +0000 (18:39 +0100)]
MIPS64: No call if ArraySet does not need a type check

The MIPS64 back-end did not use the ArraySet::NeedsTypeCheck query to
decide whether to invoke runtime or not like the other back-ends do.

Change-Id: Ie4ef9ee3ca97947256cd59983a2c1c3e3af58c83

8 years agoMerge "ART: Print short register names with MIPS64"
David Brazdil [Mon, 21 Sep 2015 17:34:58 +0000 (17:34 +0000)]
Merge "ART: Print short register names with MIPS64"

8 years agoART: Print short register names with MIPS64
David Brazdil [Mon, 21 Sep 2015 17:20:26 +0000 (18:20 +0100)]
ART: Print short register names with MIPS64

MIPS64 back-end would print register names as "GpuRegister: X" or
"FpuRegister: X". Space separates Checker attributes and therefore
caused a test to fail. This patch changes it to print "aX" and "fX"
respectively.

Change-Id: Iffae989f25563ef074dd7ef0b09cdfe438119cee

8 years agoMerge "ART: Fix bug in DeadPhiHandling"
David Brazdil [Mon, 21 Sep 2015 15:44:52 +0000 (15:44 +0000)]
Merge "ART: Fix bug in DeadPhiHandling"

8 years agoART: Fix bug in DeadPhiHandling
David Brazdil [Thu, 17 Sep 2015 15:47:21 +0000 (16:47 +0100)]
ART: Fix bug in DeadPhiHandling

When reviving dead phis for --debuggable, the DeadPhiHandling algorithm
could produce two phis of the same type, which causes the SSAChecker
graph verifier to fail. This patch fixes the bug.

Note that the code is currently not exercised because compilation is
delegated to Quick for --debuggable.

Bug: 24129675
Change-Id: I26b6dcf3071b325cc7871b989a36c505279ae681

8 years agoMerge "ART: Optimize catch phi creation to save memory."
David Brazdil [Mon, 21 Sep 2015 14:30:38 +0000 (14:30 +0000)]
Merge "ART: Optimize catch phi creation to save memory."

8 years agoFix locking on string init map (again).
Vladimir Marko [Mon, 21 Sep 2015 11:00:16 +0000 (12:00 +0100)]
Fix locking on string init map (again).

Follow-up to
    https://android-review.googlesource.com/172036 ,
    https://android-review.googlesource.com/171621 .

Don't overwrite existing values, only insert new ones.
(Also improve performance by using move semantics.)

This prevents the following race: Thread 1 looks for string
init map for a method but doesn't find it, so it starts to
construct a new map. Thread 2 is doing the same but it's
faster and actually inserts the new map and keeps a pointer
to it. After Thread 2 releases the lock, Thread 1 acquires
it and starts to Overwrite() the element that the Thread 2
is currently using, so Thread 2 ends up looking at a map
that's being actively modified.

Change-Id: I135571af644363ea7bb282969a1bc7287b34f9b2

8 years ago[optimizing] Add basic PackedSwitch support
Mark Mendell [Fri, 18 Sep 2015 13:26:15 +0000 (09:26 -0400)]
[optimizing] Add basic PackedSwitch support

Add HPackedSwitch, and generate it from the builder.  Code generators
convert this to a series of compare/branch tests.  Better implementation
in the code generators as a real jump table will follow as separate CLs.

Change-Id: If14736fa4d62809b6ae95280148c55682e856911
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
8 years agoMerge "Fix braino in new build targets."
Nicolas Geoffray [Mon, 21 Sep 2015 10:35:24 +0000 (10:35 +0000)]
Merge "Fix braino in new build targets."

8 years agoFix braino in new build targets.
Nicolas Geoffray [Mon, 21 Sep 2015 10:20:20 +0000 (11:20 +0100)]
Fix braino in new build targets.

adb should be added to target build, not host build.

Change-Id: I91308f20cee66603441c08ba3dd57c107bf6317c

8 years agoMerge "Remove adb from host build in buildbot."
Nicolas Geoffray [Mon, 21 Sep 2015 10:13:40 +0000 (10:13 +0000)]
Merge "Remove adb from host build in buildbot."

8 years agoRemove adb from host build in buildbot.
Nicolas Geoffray [Mon, 21 Sep 2015 10:11:40 +0000 (11:11 +0100)]
Remove adb from host build in buildbot.

HOST_PREFER_32_BIT is for ART use only.

Change-Id: I080de289d22ed9ad9ab6befbd0605ef4043e8b15

8 years agoMerge "Fix locking on string init map."
Jeff Hao [Fri, 18 Sep 2015 22:58:22 +0000 (22:58 +0000)]
Merge "Fix locking on string init map."

8 years agoFix locking on string init map.
Jeff Hao [Fri, 18 Sep 2015 21:44:32 +0000 (14:44 -0700)]
Fix locking on string init map.

Related to: https://android-review.googlesource.com/#/c/171621

Change-Id: Ib6dcf9914f490f1d744c0abe1f520e5b307c7acd

8 years agoMerge "Handle OOME during threadstress finishing message"
Mathieu Chartier [Fri, 18 Sep 2015 19:13:26 +0000 (19:13 +0000)]
Merge "Handle OOME during threadstress finishing message"

8 years agoMerge "ART: Decrease dex2oat watchdog timeout"
Andreas Gampe [Fri, 18 Sep 2015 18:07:49 +0000 (18:07 +0000)]
Merge "ART: Decrease dex2oat watchdog timeout"

8 years agoHandle OOME during threadstress finishing message
Mathieu Chartier [Fri, 18 Sep 2015 03:46:56 +0000 (20:46 -0700)]
Handle OOME during threadstress finishing message

If there is an OOME that occurs after the "Finishing workers" it
caused the test to fail.

Also guard worker thread creation by try catch for OOME.

Bug: 18577101
Change-Id: I69367be0aad3f60093c02c7f63ae3c20757fb89b

8 years agoMerge "ART: Clean up less in dex2oat"
Andreas Gampe [Fri, 18 Sep 2015 17:55:28 +0000 (17:55 +0000)]
Merge "ART: Clean up less in dex2oat"

8 years agoART: Clean up less in dex2oat
Andreas Gampe [Thu, 17 Sep 2015 21:03:21 +0000 (14:03 -0700)]
ART: Clean up less in dex2oat

In non-debug builds, clean up even less. We already did not shut
down the runtime. Also skipping the compiler driver and the
verification results removes all major points of destructor
performance.

Tested with a common large app on Nexus 9. Time between dex2oat timing
message and executable exit (log from immediately-after log echo)
[w/o swap, w/ swap].
Before:  2.409s / 48.774s
After:   0.132s /  0.188s

Bug: 24199200
Change-Id: I5d8c17f8e28796545cfbb3887c07c92905f9b48d

8 years agoMerge "Make run-{libcore,jdwp}-tests work with OUT_DIR set."
Alex Light [Fri, 18 Sep 2015 17:37:17 +0000 (17:37 +0000)]
Merge "Make run-{libcore,jdwp}-tests work with OUT_DIR set."

8 years agoMerge "Revert "Revert "Optimize code generation of check-cast and instance-of."""
Nicolas Geoffray [Fri, 18 Sep 2015 14:20:39 +0000 (14:20 +0000)]
Merge "Revert "Revert "Optimize code generation of check-cast and instance-of."""

8 years agoRevert "Revert "Optimize code generation of check-cast and instance-of.""
Nicolas Geoffray [Fri, 18 Sep 2015 13:40:46 +0000 (13:40 +0000)]
Revert "Revert "Optimize code generation of check-cast and instance-of.""

This reverts commit 7537437c6a2f89249a48e30effcc27d4e7c5a04f.

Change-Id: If759cb08646e47b62829bebc3c5b1e2f2969cf84

8 years agoART: Optimize catch phi creation to save memory.
David Brazdil [Fri, 18 Sep 2015 13:58:57 +0000 (14:58 +0100)]
ART: Optimize catch phi creation to save memory.

Catch phis are eagerly created for all vregs and then removed as
throwing instructions with undefined locals are encountered. This can
be optimized since rougly one third of vregs is already undefined with
the first throwing instruction.

Change-Id: Ia4e66f19ea03f9a129b4b64d4193d262fff45224

8 years agoMerge "Fix x64's cmpw."
Nicolas Geoffray [Fri, 18 Sep 2015 13:51:30 +0000 (13:51 +0000)]
Merge "Fix x64's cmpw."

8 years agoFix x64's cmpw.
Nicolas Geoffray [Fri, 18 Sep 2015 13:36:49 +0000 (14:36 +0100)]
Fix x64's cmpw.

Change-Id: If700f2994990864c8b34aa52eb7a767153a1f917

8 years agoMerge "ART: Delete catch phis for undefined vregs."
David Brazdil [Fri, 18 Sep 2015 13:16:03 +0000 (13:16 +0000)]
Merge "ART: Delete catch phis for undefined vregs."

8 years agoART: Delete catch phis for undefined vregs.
David Brazdil [Fri, 18 Sep 2015 09:58:32 +0000 (10:58 +0100)]
ART: Delete catch phis for undefined vregs.

SSA builder assumed that (eagerly created) catch phis for undefined
vregs must be dead and will be deleted by dead phi elimination. This,
however, does not hold for --debuggable because the catch phis might
be revived for their environment uses. This patch modifies the builder
to delete the phis itself.

Bug: 24054676
Change-Id: Iaa5f2487ff1c38353b44cb89c709bbff1ecd73cc

8 years agoMerge "ART: Fix two allocation/deallocation mismatches."
Vladimir Marko [Fri, 18 Sep 2015 08:31:16 +0000 (08:31 +0000)]
Merge "ART: Fix two allocation/deallocation mismatches."

8 years agoMerge "Deoptimization support in optimizing compiler for setting local values"
Sebastien Hertz [Fri, 18 Sep 2015 07:07:01 +0000 (07:07 +0000)]
Merge "Deoptimization support in optimizing compiler for setting local values"

8 years agoART: Decrease dex2oat watchdog timeout
Andreas Gampe [Mon, 14 Sep 2015 22:34:38 +0000 (15:34 -0700)]
ART: Decrease dex2oat watchdog timeout

Keep the dex2oat watchdog timeout lower than the package manager
timeout, so that dex2oat kills itself before the system server
watchdog kills the system because of the long installation.

Bug: 23629410
Change-Id: I5faa23a1715736a1c2ba3f302a6ee41130d3fbae

8 years agoMerge "Add lock around interpreter string init reg map."
Jeff Hao [Fri, 18 Sep 2015 01:58:23 +0000 (01:58 +0000)]
Merge "Add lock around interpreter string init reg map."

8 years agoMake run-{libcore,jdwp}-tests work with OUT_DIR set.
Alex Light [Thu, 17 Sep 2015 23:59:09 +0000 (16:59 -0700)]
Make run-{libcore,jdwp}-tests work with OUT_DIR set.

Change the two scripts to use the value of the OUT_DIR environment
variable if it is set to find the build directory. If OUT_DIR is not
set just fall back to the default 'out/'.

Change-Id: I19824d792d5dcbed32846912fb36654894fcc0ac

8 years agoAdd lock around interpreter string init reg map.
Jeff Hao [Fri, 18 Sep 2015 00:29:01 +0000 (17:29 -0700)]
Add lock around interpreter string init reg map.

Fixes intermittent test failures. Note that locks can't be held
while the verifier is generating the map.

Change-Id: Ie38d6bf0d9c5e81d66b8c167fde0e75a0565cea5

8 years agoMerge "Implement StringGetCharsNoCheck intrinsic for X86"
Andreas Gampe [Fri, 18 Sep 2015 00:10:09 +0000 (00:10 +0000)]
Merge "Implement StringGetCharsNoCheck intrinsic for X86"

8 years agoMerge "ART: Skip image visitor in OatWriter for VerifyAtRuntime"
Andreas Gampe [Thu, 17 Sep 2015 23:26:15 +0000 (23:26 +0000)]
Merge "ART: Skip image visitor in OatWriter for VerifyAtRuntime"

8 years agoMerge "Allow null self only in DecodeWeakGlobalDuringShutdown()."
Hiroshi Yamauchi [Thu, 17 Sep 2015 21:55:46 +0000 (21:55 +0000)]
Merge "Allow null self only in DecodeWeakGlobalDuringShutdown()."

8 years agoMerge "ART: Refactor intrinsics slow-paths"
Andreas Gampe [Thu, 17 Sep 2015 21:43:46 +0000 (21:43 +0000)]
Merge "ART: Refactor intrinsics slow-paths"

8 years agoART: Refactor intrinsics slow-paths
Andreas Gampe [Wed, 9 Sep 2015 20:15:38 +0000 (13:15 -0700)]
ART: Refactor intrinsics slow-paths

Refactor slow paths so that there is a default implementation for
common cases (only arm64 with vixl is special). Write a generic
intrinsic slow-path that can be reused for the specific architectures.
Move helper functions into CodeGenerator so that they are accessible.

Change-Id: Ibd788dce432601c6a9f7e6f13eab31f28dcb8550

8 years agoART: Skip image visitor in OatWriter for VerifyAtRuntime
Andreas Gampe [Thu, 17 Sep 2015 00:12:55 +0000 (17:12 -0700)]
ART: Skip image visitor in OatWriter for VerifyAtRuntime

There's no use running the visitor, and it will force-resolve all
methods. Avoid the overhead. Reduces boot image compile time in
verify-at-runtime mode from 1.25s to 1s (on the host, in -j4 mode).

Bug: 24103765
Change-Id: Icdc3be628fed0c9bda01cf5f24fe377f23c571a9

8 years agoMerge "asan: update condition to work with multiple SANITIZE_TARGET values."
Evgenii Stepanov [Thu, 17 Sep 2015 20:57:34 +0000 (20:57 +0000)]
Merge "asan: update condition to work with multiple SANITIZE_TARGET values."

8 years agoasan: update condition to work with multiple SANITIZE_TARGET values.
Ivan Krasin [Thu, 17 Sep 2015 20:40:19 +0000 (13:40 -0700)]
asan: update condition to work with multiple SANITIZE_TARGET values.

The goal is to enable SANITIZE_TARGET='address coverage', which
will be used by LLVMFuzzer.

Bug: 22850550
Bug: 22233158
Change-Id: I909c6268e5c3d2da0361f2a2216cac080afbee64

8 years agoART: Fix two allocation/deallocation mismatches.
Vladimir Marko [Thu, 17 Sep 2015 19:22:02 +0000 (20:22 +0100)]
ART: Fix two allocation/deallocation mismatches.

Change-Id: I5088126cbd5b5e4b461a449eecd5b3574883f413

8 years agoAllow null self only in DecodeWeakGlobalDuringShutdown().
Hiroshi Yamauchi [Thu, 17 Sep 2015 04:11:44 +0000 (21:11 -0700)]
Allow null self only in DecodeWeakGlobalDuringShutdown().

To follow up CL 169855, allow a null current thread only in
DecodeWeakGlobalDuringShutdown() as a special case rather than
DecodeWeakGlobal(). This is to prevent a bug where null is accidentally
passed to DecodeWeakGlobal().

Bug: 23897251

Change-Id: I5e7bb78ec739b8bfcf77284ed321d507737ee33e

8 years agoMerge "Revert "Optimize code generation of check-cast and instance-of.""
Nicolas Geoffray [Thu, 17 Sep 2015 17:12:37 +0000 (17:12 +0000)]
Merge "Revert "Optimize code generation of check-cast and instance-of.""

8 years agoRevert "Optimize code generation of check-cast and instance-of."
Nicolas Geoffray [Thu, 17 Sep 2015 17:12:19 +0000 (17:12 +0000)]
Revert "Optimize code generation of check-cast and instance-of."

Failures with libcore tests.

This reverts commit 64acf303eaa2f32c0b1d8cfcbf044a822c5eec08.

Change-Id: Ie6f323fcf5d86bae5c334c1352bb21f1bad60a88

8 years agoMerge "Use arc4random_buf instead of getauxval(AT_RANDOM)."
Josh Gao [Thu, 17 Sep 2015 16:46:14 +0000 (16:46 +0000)]
Merge "Use arc4random_buf instead of getauxval(AT_RANDOM)."

8 years agoMerge "Optimizing: Allow storing value objects in containers."
Vladimir Marko [Thu, 17 Sep 2015 15:53:10 +0000 (15:53 +0000)]
Merge "Optimizing: Allow storing value objects in containers."

8 years agoMerge "Optimizing: Do not use range-based loop when inserting elements."
Vladimir Marko [Thu, 17 Sep 2015 15:32:33 +0000 (15:32 +0000)]
Merge "Optimizing: Do not use range-based loop when inserting elements."

8 years agoDeoptimization support in optimizing compiler for setting local values
Mingyao Yang [Mon, 6 Jul 2015 18:10:37 +0000 (11:10 -0700)]
Deoptimization support in optimizing compiler for setting local values

Due to compiler optimizations, we may not always be able to update
the value of a local variable in a compiled frame (like a variable
seen as constant by the compiler). To avoid that situation, we simply
deoptimize compiled frames updated by the debugger so they are
executed by the interpreter with the updated value.

When the debugger attempts to set a local variable (actually a DEX
register or a pair of registers) in a compiled frame, we allocate a
ShadowFrame associated to that frame (using its frame id) and set the
new value in that ShadowFrame. When we know we are about to continue
the execution of the compiled frame, we deoptimize the stack using
the preallocated ShadowFrame (instead of creating a new one). We
initialize it with the current value of all DEX registers except
the ones that have been set by the debugger. Therefore, the
ShadowFrame represent the runtime context modified by the debugger.

Bumps oat version to force recompilation.

Bug: 19944235
Change-Id: I0ebe6241264f7a3be0f14ee4516c1f7436e04da6

8 years agoOptimizing: Do not use range-based loop when inserting elements.
Vladimir Marko [Thu, 17 Sep 2015 14:47:05 +0000 (15:47 +0100)]
Optimizing: Do not use range-based loop when inserting elements.

When we iterate over the elements of a container and we may
insert new elements into that container, it's wrong to use
the range-based loop.

Bug: 24133462
Change-Id: Iee35fbcf88ed3bcd6155cbeba09bd256032a16be