OSDN Git Service

android-x86/art.git
9 years agoMerge "Implement a proper solution for temps."
Nicolas Geoffray [Mon, 30 Mar 2015 14:53:42 +0000 (14:53 +0000)]
Merge "Implement a proper solution for temps."

9 years agoMerge "Please vogar by not giving a vm-command on host."
Nicolas Geoffray [Mon, 30 Mar 2015 14:40:26 +0000 (14:40 +0000)]
Merge "Please vogar by not giving a vm-command on host."

9 years agoMerge "ART: Refactor callbacks_ in common_runtime_test"
Andreas Gampe [Mon, 30 Mar 2015 14:39:32 +0000 (14:39 +0000)]
Merge "ART: Refactor callbacks_ in common_runtime_test"

9 years agoPlease vogar by not giving a vm-command on host.
Nicolas Geoffray [Mon, 30 Mar 2015 14:30:26 +0000 (15:30 +0100)]
Please vogar by not giving a vm-command on host.

If the host is configured with shell (and not bash or mksh), the 'art'
script cannot be run by vogar.

Change-Id: Ib88cea2e45de1ff54477ae8ec3a8e831155d86df

9 years agoMerge "[optimizing] Only print full stats in VLOG(compiler)"
Nicolas Geoffray [Mon, 30 Mar 2015 14:17:10 +0000 (14:17 +0000)]
Merge "[optimizing] Only print full stats in VLOG(compiler)"

9 years ago[optimizing] Only print full stats in VLOG(compiler)
Nicolas Geoffray [Mon, 30 Mar 2015 12:29:08 +0000 (13:29 +0100)]
[optimizing] Only print full stats in VLOG(compiler)

Also add a kCompiledQuick stat.

bug:19956318

Change-Id: I0c6c0ac256362824eb9f1418216ab7e2c289a17b

9 years agoMerge "Fix user-build on fugu."
Nicolas Geoffray [Mon, 30 Mar 2015 13:35:53 +0000 (13:35 +0000)]
Merge "Fix user-build on fugu."

9 years agoFix user-build on fugu.
Nicolas Geoffray [Fri, 27 Mar 2015 10:27:22 +0000 (10:27 +0000)]
Fix user-build on fugu.

Calling Delete on an array shifts the elements, so when iterating
over inactives and removing entries we need to decrement for
the found interval, but also its potential other half. The code
used to not decrement for the other half

Change-Id: Idcb1533643c11a37ed4f459fe88aaef208a4bfd6

9 years agoMerge "Tweak test script while investigating failures."
Nicolas Geoffray [Mon, 30 Mar 2015 11:32:18 +0000 (11:32 +0000)]
Merge "Tweak test script while investigating failures."

9 years agoTweak test script while investigating failures.
Nicolas Geoffray [Mon, 30 Mar 2015 11:28:26 +0000 (12:28 +0100)]
Tweak test script while investigating failures.

- Disable runs on devices failing,
- Add verbose for host failures.

Change-Id: I4efecfbc40f6666e62fd0835257d5b6c3cdcc798

9 years agoMerge "JDWP: more checking for StackFrame commands"
Sebastien Hertz [Mon, 30 Mar 2015 07:44:45 +0000 (07:44 +0000)]
Merge "JDWP: more checking for StackFrame commands"

9 years agoART: Refactor callbacks_ in common_runtime_test
Andreas Gampe [Sun, 29 Mar 2015 20:56:36 +0000 (13:56 -0700)]
ART: Refactor callbacks_ in common_runtime_test

The callback is now important for some runtime checks, and just
resetting callbacks_ is not correct anymore.

Change-Id: I2cb806f1916fd5ea190911a833ce460be557a428

9 years agoMerge "Fix some reflection errors"
Mathieu Chartier [Mon, 30 Mar 2015 01:57:02 +0000 (01:57 +0000)]
Merge "Fix some reflection errors"

9 years agoFix some reflection errors
Mathieu Chartier [Mon, 30 Mar 2015 01:27:50 +0000 (18:27 -0700)]
Fix some reflection errors

Fixed incorrectly using 2nd frame instead of 1st in VerifyAccess.
Added regression test to ART. Fixed broken setShort,
getDeclaredFieldInternal.

Change-Id: I4b21d52d998cb768fe9503b8bccec506b7b972e5

9 years agoMerge "ART: Use enums in Trace"
Andreas Gampe [Mon, 30 Mar 2015 01:04:12 +0000 (01:04 +0000)]
Merge "ART: Use enums in Trace"

9 years agoMerge "Add AccessibleObject and Field to mirror"
Mathieu Chartier [Sun, 29 Mar 2015 22:30:55 +0000 (22:30 +0000)]
Merge "Add AccessibleObject and Field to mirror"

9 years agoART: Use enums in Trace
Andreas Gampe [Sun, 29 Mar 2015 22:26:23 +0000 (15:26 -0700)]
ART: Use enums in Trace

Move away from booleans. Will make introduction of streaming mode
a bit easier / obvious.

Change-Id: Id7ae92f6b97f627e848510d473931537d7db0db8

9 years agoAdd AccessibleObject and Field to mirror
Mathieu Chartier [Tue, 24 Mar 2015 20:30:28 +0000 (13:30 -0700)]
Add AccessibleObject and Field to mirror

Main motivation is to remove all the functionality / field access on
java side to ArtField. Also comes with some reflection speedups /
slowdowns.

Summary results:
getDeclaredField/getField are slower mostly due to JNI overhead.
However, there is a large speedup in getInt, setInt,
GetInstanceField, and GetStaticField.

Before timings (N5 --compiler-filter=everything):

                       benchmark      ns linear runtime
          Class_getDeclaredField  782.86 ===
                  Class_getField  832.77 ===
                    Field_getInt  160.17 =
                    Field_setInt  195.88 =
                GetInstanceField 3214.38 ==============
                  GetStaticField 6809.49 ==============================

After:
          Class_getDeclaredField 1068.15 ============
                  Class_getField 1180.00 ==============
                    Field_getInt  121.85 =
                    Field_setInt  139.98 =
                GetInstanceField 1986.15 =======================
                  GetStaticField 2523.63 ==============================

Bug: 19264997

Change-Id: Ic0d0fc1b56b95cd6d60f8e76f19caeaa23045c77

9 years agoMerge "ART: Some runtime cleanup"
Andreas Gampe [Sun, 29 Mar 2015 20:52:57 +0000 (20:52 +0000)]
Merge "ART: Some runtime cleanup"

9 years agoMerge "Fix typos spotted by Andreas."
Nicolas Geoffray [Sat, 28 Mar 2015 14:04:56 +0000 (14:04 +0000)]
Merge "Fix typos spotted by Andreas."

9 years agoART: Some runtime cleanup
Andreas Gampe [Sat, 28 Mar 2015 06:45:15 +0000 (23:45 -0700)]
ART: Some runtime cleanup

Use an enum for the compiler-callback mode.

Refactor and remove some unnecessary includes in runtime.h.

Change-Id: If2245fa470171311b8e05b677cf6bb28f209585a

9 years agoMerge "ART: Use instrumented Alloc in Class-Linker"
Andreas Gampe [Sat, 28 Mar 2015 06:20:07 +0000 (06:20 +0000)]
Merge "ART: Use instrumented Alloc in Class-Linker"

9 years agoART: Use instrumented Alloc in Class-Linker
Andreas Gampe [Sat, 28 Mar 2015 06:18:07 +0000 (23:18 -0700)]
ART: Use instrumented Alloc in Class-Linker

To support Valgrind over dex2oat and gtests, CreatePathClassLoader
must use instrumented allocation.

Change-Id: I9dc2d009d37bec598c5de67688ebf9810da6e899

9 years agoMerge "ART: PathClassLoader for compiler"
Andreas Gampe [Sat, 28 Mar 2015 04:44:36 +0000 (04:44 +0000)]
Merge "ART: PathClassLoader for compiler"

9 years agoART: PathClassLoader for compiler
Andreas Gampe [Thu, 26 Mar 2015 00:19:53 +0000 (17:19 -0700)]
ART: PathClassLoader for compiler

Use an actual PathClassLoader when compiling apps, instead of a
side structure and cutout.

This CL sets up a minimal object 'cluster' that recreates the Java
side of a regular ClassLoader such that the Class-Linker will
recognize it and use the internal native fast-path.

This CL removes the now unnecessary compile-time-classpath and
replaces it with a single 'compiling-the-boot-image' flag in the
compiler callbacks.

Note: This functionality is *only* intended for the compiler, as
the objects have not been completely initialized.

Bug: 19781184

Change-Id: I7f36af12dd7852d21281110a25c119e8c0669c1d

9 years agoMerge "[MIPS] Refactoring code for quick compiler"
Andreas Gampe [Sat, 28 Mar 2015 04:26:22 +0000 (04:26 +0000)]
Merge "[MIPS] Refactoring code for quick compiler"

9 years agoImplement a proper solution for temps.
Nicolas Geoffray [Fri, 27 Mar 2015 17:15:49 +0000 (17:15 +0000)]
Implement a proper solution for temps.

We used to play some trickery when updating locations of temps. This
change creates a proper use of the temp, and use it for updating
its location.

Change-Id: I53e9447b87a55137a3a79841db21ad3864854825

9 years agoFix typos spotted by Andreas.
Nicolas Geoffray [Fri, 27 Mar 2015 17:21:24 +0000 (17:21 +0000)]
Fix typos spotted by Andreas.

Change-Id: I564b4bc5995d91f4c6c4e4f2427ed7c279cb8740

9 years agoMerge "Re-enable test."
Nicolas Geoffray [Fri, 27 Mar 2015 17:13:49 +0000 (17:13 +0000)]
Merge "Re-enable test."

9 years agoRe-enable test.
Nicolas Geoffray [Fri, 27 Mar 2015 15:49:32 +0000 (15:49 +0000)]
Re-enable test.

The boot image can now be compiled with optimizing.

Change-Id: Idbdec44ccb01e3b0251914da150d9dd0854c61e6

9 years ago[MIPS] Refactoring code for quick compiler
Goran Jakovljevic [Tue, 24 Mar 2015 17:42:56 +0000 (18:42 +0100)]
[MIPS] Refactoring code for quick compiler

Code from compiler/dex/quick/mips64 is merged with code
in mips folder.

Change-Id: I785983c21549141306484647da86a0bb4815daaa

9 years agoMerge "GVN HClinitCheck nodes."
Nicolas Geoffray [Fri, 27 Mar 2015 15:22:53 +0000 (15:22 +0000)]
Merge "GVN HClinitCheck nodes."

9 years agoJDWP: more checking for StackFrame commands
Sebastien Hertz [Thu, 26 Mar 2015 07:47:47 +0000 (08:47 +0100)]
JDWP: more checking for StackFrame commands

Checks thread is suspended and the slot is valid for GetValues and
SetValues command. Also improves error messages when we could not
get or set a local value in the stack or we try to read an invalid
reference from the stack.

Bug: 15680615
Change-Id: I629099fc908e733edb712bd43e141695ed858f4f

9 years agoGVN HClinitCheck nodes.
Nicolas Geoffray [Fri, 27 Mar 2015 15:00:40 +0000 (15:00 +0000)]
GVN HClinitCheck nodes.

Change-Id: I5c79caadd57d10214a44149fda53e9e185ac7eca

9 years agoMerge "Include pid in trace metadata"
John Reck [Fri, 27 Mar 2015 14:13:34 +0000 (14:13 +0000)]
Merge "Include pid in trace metadata"

9 years agoInclude pid in trace metadata
John Reck [Thu, 26 Mar 2015 22:47:54 +0000 (15:47 -0700)]
Include pid in trace metadata

Change-Id: I5d23fc7da94c1a344850833dfbbaa330fdbe28a7

9 years agoMerge "Intrinsify String.compareTo."
Nicolas Geoffray [Fri, 27 Mar 2015 12:20:16 +0000 (12:20 +0000)]
Merge "Intrinsify String.compareTo."

9 years agoIntrinsify String.compareTo.
Nicolas Geoffray [Fri, 27 Mar 2015 09:53:16 +0000 (09:53 +0000)]
Intrinsify String.compareTo.

Change-Id: Ia540df98755ac493fe61bd63f0bd94f6d97fbb57

9 years agoMerge "ART: Fix IsInt when N==32, add tests"
David Brazdil [Fri, 27 Mar 2015 11:14:05 +0000 (11:14 +0000)]
Merge "ART: Fix IsInt when N==32, add tests"

9 years agoART: Fix IsInt when N==32, add tests
David Brazdil [Fri, 27 Mar 2015 10:31:38 +0000 (10:31 +0000)]
ART: Fix IsInt when N==32, add tests

Implicit type conversion caused IsInt to always return true for N==32
on 32-bit platforms. This patch templetizes the function to avoid
the conversion and adds tests of this and similar functions.

Change-Id: Ie526b68b7c3e7cb7b658253d51840794224785fe

9 years agoMerge "Fix run-all-tests script when --always-clean is used"
Nicolas Geoffray [Fri, 27 Mar 2015 10:54:41 +0000 (10:54 +0000)]
Merge "Fix run-all-tests script when --always-clean is used"

9 years agoMerge "Quick: Finding upper half of kMirOpCheckPart2 should passthough empty blocks"
Vladimir Marko [Fri, 27 Mar 2015 10:52:11 +0000 (10:52 +0000)]
Merge "Quick: Finding upper half of kMirOpCheckPart2 should passthough empty blocks"

9 years agoFix run-all-tests script when --always-clean is used
Goran Jakovljevic [Fri, 27 Mar 2015 10:48:25 +0000 (11:48 +0100)]
Fix run-all-tests script when --always-clean is used

Change-Id: Icd44776e77c00f789bb579b6e55241abdfc0e68d

9 years agoQuick: Finding upper half of kMirOpCheckPart2 should passthough empty blocks
Pavel Vyssotski [Fri, 27 Mar 2015 09:23:02 +0000 (15:23 +0600)]
Quick: Finding upper half of kMirOpCheckPart2 should passthough empty blocks

Mir2Lir::InitReferenceVRegs trying to find throwing instruction for
kMirOpCheckPart2 should traverse possible empty blocks which compiler
optimizations could generate between them.

Change-Id: I2ab29dd36635fd4c4ef2dd81b51e571e206775e6
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoMerge "[optimizing] Implement X86 intrinsic support"
Nicolas Geoffray [Fri, 27 Mar 2015 09:29:06 +0000 (09:29 +0000)]
Merge "[optimizing] Implement X86 intrinsic support"

9 years ago[optimizing] Implement X86 intrinsic support
Mark Mendell [Wed, 25 Mar 2015 12:30:06 +0000 (08:30 -0400)]
[optimizing] Implement X86 intrinsic support

Implement the supported intrinsics for X86.

Enhance the graph visualizer to print <U> for unallocated locations, to
allow calling the graph dumper from within register allocation for
debugging purposes.

Change-Id: I3b0319eb70a9a4ea228f67065b4c52d13a1ae775
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "ART: Change RETURN_OBJECT verification for arrays"
Andreas Gampe [Thu, 26 Mar 2015 22:44:03 +0000 (22:44 +0000)]
Merge "ART: Change RETURN_OBJECT verification for arrays"

9 years agoMerge "Fix ClassLinker::MayBeCalledWithDirectCodePointer for JIT"
Mathieu Chartier [Thu, 26 Mar 2015 22:34:57 +0000 (22:34 +0000)]
Merge "Fix ClassLinker::MayBeCalledWithDirectCodePointer for JIT"

9 years agoART: Change RETURN_OBJECT verification for arrays
Andreas Gampe [Mon, 23 Mar 2015 17:10:20 +0000 (10:10 -0700)]
ART: Change RETURN_OBJECT verification for arrays

Arrays appear to be valid (as according to spec), even if their
components are erroneous. If a component is erroneous, it may not
have loaded superclass or interface information, and so fail a
direct check for assignability.

Add a cutout that checks whether the declared return-type or the
actual return-type are arrays with erroneous components (and if so,
have the same 'depth'). In that case, generate a soft instead of a
hard error.

Also includes a fix to DumpClass.

Bug: 19683465
Change-Id: Ie73de03adeb0af7e939370d7363684fe125d7994

9 years agoFix ClassLinker::MayBeCalledWithDirectCodePointer for JIT
Mathieu Chartier [Thu, 26 Mar 2015 16:41:50 +0000 (09:41 -0700)]
Fix ClassLinker::MayBeCalledWithDirectCodePointer for JIT

Currently, we don't know if another method has a direct code
pointer or not. This should fix the case where breakpoints
occasionally don't work with JIT.

The JIT now also checks that a method doesn't have any breakpoints
before starting to compile it.

Bug: 17950037

Change-Id: I17cfe874fe4825beba23903a5053d5cb27e106cb

9 years agoMerge "New localhost failures...."
Nicolas Geoffray [Thu, 26 Mar 2015 18:12:55 +0000 (18:12 +0000)]
Merge "New localhost failures...."

9 years agoNew localhost failures....
Nicolas Geoffray [Thu, 26 Mar 2015 18:08:59 +0000 (18:08 +0000)]
New localhost failures....

Change-Id: Id3992f3c04dfa8fad130073ee9ea4f4d715c8432

9 years agoMerge "Add a script to run jdwp tests on the chrome buildbot."
Nicolas Geoffray [Thu, 26 Mar 2015 18:03:00 +0000 (18:03 +0000)]
Merge "Add a script to run jdwp tests on the chrome buildbot."

9 years agoAdd a script to run jdwp tests on the chrome buildbot.
Nicolas Geoffray [Thu, 26 Mar 2015 16:48:29 +0000 (16:48 +0000)]
Add a script to run jdwp tests on the chrome buildbot.

Change-Id: Ia702fd884f10abcb0887f4964c7df3c04a508984

9 years agoMerge "ART: Define IsInt when N==kBitsPerIntPtrT"
David Brazdil [Thu, 26 Mar 2015 15:18:57 +0000 (15:18 +0000)]
Merge "ART: Define IsInt when N==kBitsPerIntPtrT"

9 years agoART: Define IsInt when N==kBitsPerIntPtrT
David Brazdil [Thu, 26 Mar 2015 15:11:45 +0000 (15:11 +0000)]
ART: Define IsInt when N==kBitsPerIntPtrT

'utils.h' contains two implementations of the IsInt query, one of
which is defined for bit sizes <= kBitsPerIntPtrT, while the other
only for sizes < kBitsPerIntPtrT. This patch unifies the behaviour
and fixes the breakage caused by it.

Change-Id: I4f5589b1a36b6c24926e50574fbca528c33d701f

9 years agoMerge "Store odex files in oat/<isa>/ directory."
Richard Uhler [Thu, 26 Mar 2015 14:57:37 +0000 (14:57 +0000)]
Merge "Store odex files in oat/<isa>/ directory."

9 years agoMerge "ART: Force constants into the entry block"
David Brazdil [Thu, 26 Mar 2015 14:11:53 +0000 (14:11 +0000)]
Merge "ART: Force constants into the entry block"

9 years agoART: Force constants into the entry block
David Brazdil [Tue, 24 Mar 2015 10:51:52 +0000 (10:51 +0000)]
ART: Force constants into the entry block

Optimizations such as GVN and BCE make the assumption that all
constants are located in the entry block of the CFG, but not all
passes adhere to this rule.

This patch makes constructors of constants private and only accessible
to friend classes - HGraph for int/long constants and SsaBuilder for
float/double - which ensure that they are placed correctly and not
duplicated.

Note that the ArenaAllocatorAdapter was modified to not increment
the ArenaAllocator's internal reference counter in order to allow
for use of ArenaSafeMap inside an arena-allocated objects. Because
their destructor is not called, the counter does not get decremented.

Change-Id: I36a4fa29ae34fb905cdefd482ccbf386cff14166

9 years agoMerge "Use the original invoke type when inlining."
Nicolas Geoffray [Thu, 26 Mar 2015 10:45:51 +0000 (10:45 +0000)]
Merge "Use the original invoke type when inlining."

9 years agoUse the original invoke type when inlining.
Nicolas Geoffray [Thu, 26 Mar 2015 10:05:54 +0000 (10:05 +0000)]
Use the original invoke type when inlining.

When resolving a method through the compiler driver, the code makes
sure the call in the DEX bytecode matches the kind of method found,
to check for IncompatibleClassChangeError. Because when we sharpen
an invoke virtual, we transform the invoke kind to direct, we must not
use the new kind, but the one in DEX.

Change-Id: Iaf77b27b529c659ea48ffb19f46427552c9e3654

9 years agoStore odex files in oat/<isa>/ directory.
Richard Uhler [Mon, 16 Mar 2015 21:32:16 +0000 (14:32 -0700)]
Store odex files in oat/<isa>/ directory.

Previously odex files were stored alongside the dex location as:
  dex location: /foo/bar/base.apk
  odex location: /foo/bar/<isa>/base.odex

This changes where odex files are stored, adding an "oat" directory:
  dex location: /foo/bar/base.apk
  odex location: /foo/bar/oat/<isa>/base.odex

See also the corresponding change in platform/build and
platform/frameworks/native.

Bug: 19550105
Change-Id: I4c6be4f0c41ff175904846db8e360c4af815b265

9 years agoMerge "Mark the tests as failing for now."
Nicolas Geoffray [Wed, 25 Mar 2015 21:14:16 +0000 (21:14 +0000)]
Merge "Mark the tests as failing for now."

9 years agoMark the tests as failing for now.
Nicolas Geoffray [Wed, 25 Mar 2015 21:13:05 +0000 (21:13 +0000)]
Mark the tests as failing for now.

Need to investigate what is going on with the network on
the devices...

Change-Id: Ic308e768989bfbdbb086a4d09e31a7cc9a327d70

9 years agoMerge "Make sure localhost is enabled on testing devices."
Nicolas Geoffray [Wed, 25 Mar 2015 17:56:53 +0000 (17:56 +0000)]
Merge "Make sure localhost is enabled on testing devices."

9 years agoMake sure localhost is enabled on testing devices.
Nicolas Geoffray [Wed, 25 Mar 2015 17:22:34 +0000 (17:22 +0000)]
Make sure localhost is enabled on testing devices.

Change-Id: I9057dd77a8c760cc5881f3b2eaeb14a0d9910b51

9 years agoMerge "Revert "Revert "Inline across dex files."""
Nicolas Geoffray [Wed, 25 Mar 2015 17:19:07 +0000 (17:19 +0000)]
Merge "Revert "Revert "Inline across dex files."""

9 years agoMerge changes I4b3b4d90,I70e0d78f,I2848636f
Calin Juravle [Wed, 25 Mar 2015 17:15:21 +0000 (17:15 +0000)]
Merge changes I4b3b4d90,I70e0d78f,I2848636f

* changes:
  Forbid the use of shifts in ShifterOperand in Thumb2
  Make subs and adds alter flags when rn is an immediate
  Inline long shift code

9 years agoRevert "Revert "Inline across dex files.""
Nicolas Geoffray [Wed, 25 Mar 2015 10:08:51 +0000 (10:08 +0000)]
Revert "Revert "Inline across dex files.""

This reverts commit 6a816cf624ba56bf2872916d7b65b18fd9a411ef.

Change-Id: I36cb524108786dd7996f2aea0443675be1f1b859

9 years agoMerge "Support relative encoded dex locations in oat files."
Richard Uhler [Wed, 25 Mar 2015 17:10:11 +0000 (17:10 +0000)]
Merge "Support relative encoded dex locations in oat files."

9 years agoMerge "Share dex register maps between stack maps when possible."
Calin Juravle [Wed, 25 Mar 2015 14:10:12 +0000 (14:10 +0000)]
Merge "Share dex register maps between stack maps when possible."

9 years agoShare dex register maps between stack maps when possible.
Calin Juravle [Wed, 18 Mar 2015 16:31:28 +0000 (16:31 +0000)]
Share dex register maps between stack maps when possible.

If two stack maps have the same dex register map then one of them will
reference the register map from the other instead of owning an
independent copy.

This saves around 1.5% of space.

Change-Id: Ic2c2c81210c6c45a5c5f650f7ba82a46ff6f45e4

9 years agoMerge "Quick: Fix "select" pattern to update data used for GC maps."
Vladimir Marko [Wed, 25 Mar 2015 12:49:56 +0000 (12:49 +0000)]
Merge "Quick: Fix "select" pattern to update data used for GC maps."

9 years agoMerge "ART: Formatting and comments in BooleanSimplifier"
David Brazdil [Wed, 25 Mar 2015 12:31:22 +0000 (12:31 +0000)]
Merge "ART: Formatting and comments in BooleanSimplifier"

9 years agoART: Formatting and comments in BooleanSimplifier
David Brazdil [Wed, 25 Mar 2015 11:17:37 +0000 (11:17 +0000)]
ART: Formatting and comments in BooleanSimplifier

Change-Id: I9a5aa3f2aa8b0a29d7b0f1e5e247397cf8e9e379

9 years agoQuick: Fix "select" pattern to update data used for GC maps.
Vladimir Marko [Wed, 25 Mar 2015 11:13:39 +0000 (11:13 +0000)]
Quick: Fix "select" pattern to update data used for GC maps.

Follow-up to
    https://android-review.googlesource.com/143222

Change-Id: I1c12af9a19f76e64fd209f6cc2eaec5587b3083b

9 years agoForbid the use of shifts in ShifterOperand in Thumb2
Guillaume "Vermeille" Sanchez [Wed, 11 Mar 2015 14:00:30 +0000 (14:00 +0000)]
Forbid the use of shifts in ShifterOperand in Thumb2

Change-Id: I4b3b4d90f11f2dd0c9a274b724051fa98982fb19

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

Change-Id: I70e0d78f155bf806222ad12a324dbd8c8fe575a1

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: I2848636f892e276507d04f4313987b9f4c80686b

9 years agoMerge "Emit 4 byte UTF-sequences in place of encoded surrogate pairs."
Narayan Kamath [Wed, 25 Mar 2015 08:47:02 +0000 (08:47 +0000)]
Merge "Emit 4 byte UTF-sequences in place of encoded surrogate pairs."

9 years agoEmit 4 byte UTF-sequences in place of encoded surrogate pairs.
Narayan Kamath [Fri, 13 Feb 2015 11:49:22 +0000 (11:49 +0000)]
Emit 4 byte UTF-sequences in place of encoded surrogate pairs.

Symmetric with a5afcfc73141e5e378d79a326d0 which converts 4 byte UTF-8
sequences to surrogate pairs.

bug: 18848397

Change-Id: I42adc275b7e0df0cbbd9d8a799e8b0447d8f5cae

9 years agoSupport relative encoded dex locations in oat files.
Richard Uhler [Wed, 18 Mar 2015 15:21:11 +0000 (08:21 -0700)]
Support relative encoded dex locations in oat files.

Now when opening an oat file, the caller can pass an absolute dex
location used to resolve the absolute path for any relative
encoded dex locations in the oat file.

Bug: 19550105
Change-Id: I6e9559afe4d86ac12cf0b90176b5ea696a83d0e7

9 years agoMerge "ART: Fix crash in gtests"
David Brazdil [Tue, 24 Mar 2015 19:24:09 +0000 (19:24 +0000)]
Merge "ART: Fix crash in gtests"

9 years agoART: Fix crash in gtests
David Brazdil [Tue, 24 Mar 2015 18:49:14 +0000 (18:49 +0000)]
ART: Fix crash in gtests

SsaLivenessAnalysis was crashing after change of iteration order in
142377 because gtests do not always build reverse post order.

Change-Id: If5ad5b7c52040b119c4415f0b942988049fa3c16

9 years agoMerge "Share the runtime arena for faster compile times."
Nicolas Geoffray [Tue, 24 Mar 2015 17:45:19 +0000 (17:45 +0000)]
Merge "Share the runtime arena for faster compile times."

9 years agoMerge "ART: Boolean simplifier"
David Brazdil [Tue, 24 Mar 2015 17:31:29 +0000 (17:31 +0000)]
Merge "ART: Boolean simplifier"

9 years agoShare the runtime arena for faster compile times.
Nicolas Geoffray [Tue, 24 Mar 2015 17:28:38 +0000 (17:28 +0000)]
Share the runtime arena for faster compile times.

Using a shared arena has the downside of getting more contentions
when requesting memory, but saves on compilation times because
we don't free the memory it allocated util the end of dex2oat.

Change-Id: I353ced1db34539850ec639b6b228451b455a48ec

9 years agoART: Boolean simplifier
David Brazdil [Mon, 16 Mar 2015 17:31:52 +0000 (17:31 +0000)]
ART: Boolean simplifier

The optimization recognizes the negation pattern generated by 'javac'
and replaces it with a single condition. To this end, boolean values
are now consistently assumed to be represented by an integer.

This is a first optimization which deletes blocks from the HGraph and
does so by replacing the corresponding entries with null. Hence,
existing code can continue indexing the list of blocks with the block
ID, but must check for null when iterating over the list.

Change-Id: I7779da69cfa925c6521938ad0bcc11bc52335583

9 years agoMerge "Unify ART's various implementations of bit_cast."
Roland Levillain [Tue, 24 Mar 2015 17:00:58 +0000 (17:00 +0000)]
Merge "Unify ART's various implementations of bit_cast."

9 years agoMerge "Revert "Inline across dex files.""
Nicolas Geoffray [Tue, 24 Mar 2015 16:24:51 +0000 (16:24 +0000)]
Merge "Revert "Inline across dex files.""

9 years agoRevert "Inline across dex files."
Nicolas Geoffray [Tue, 24 Mar 2015 16:17:56 +0000 (16:17 +0000)]
Revert "Inline across dex files."

bug: 19904089
bug: 19903495

This reverts commit 7e4c3508e4f5512650b63c41f7872a749e99aee9.

Change-Id: I15df746b5f1882cce78eedde6c05c0d3b69bfa4a

9 years agoUnify ART's various implementations of bit_cast.
Roland Levillain [Tue, 24 Mar 2015 14:36:11 +0000 (14:36 +0000)]
Unify ART's various implementations of bit_cast.

ART had several implementations of art::bit_cast:

1. one in runtime/base/casts.h, declared as:

   template <class Dest, class Source>
   inline Dest bit_cast(const Source& source);

2. another one in runtime/utils.h, declared as:

   template<typename U, typename V>
   static inline V bit_cast(U in);

3. and a third local version, in runtime/memory_region.h,
   similar to the previous one:

   template<typename Source, typename Destination>
   static Destination MemoryRegion::local_bit_cast(Source in);

This CL removes versions 2. and 3. and changes their callers
to use 1. instead.  That version was chosen over the others
as:
- it was the oldest one in the code base; and
- its syntax was closer to the standard C++ cast operators,
  as it supports the following use:

    bit_cast<Destination>(source)

  since `Source' can be deduced from `source'.

Change-Id: I7334fd5d55bf0b8a0c52cb33cfbae6894ff83633

9 years agoMerge "JDWP: Optimized single step during debugging"
Sebastien Hertz [Tue, 24 Mar 2015 14:12:35 +0000 (14:12 +0000)]
Merge "JDWP: Optimized single step during debugging"

9 years agoJDWP: Optimized single step during debugging
Daniel Mihalyi [Fri, 22 Aug 2014 15:33:31 +0000 (17:33 +0200)]
JDWP: Optimized single step during debugging

For single stepping full deoptimization and undeoptimizations were
performed with significant overhead, because every code will be
executed in interpreted mode during a single step, even if it is not
strictly required.

For example, if we have a computation heavy method call and we would
like to step over it, that method (and all the methods called from it)
will run in interpreter mode. This can take so long in some cases
(e.g. multiple minutes) that it makes debugging process unusable.

The solution for this limitation is not using full deoptimizations for
single steps and force interpreter only for those methods that we are
about to step into, and require stack deoptimization before step outs.

Bug: 17750566
Bug: 18094282
Bug: https://code.google.com/p/android/issues/detail?id=77984

Change-Id: I683c52465883146c4c84ec47bf96f8efd920527f
Signed-off-by: Daniel Mihalyi <daniel.mihalyi@mattakis.com>
9 years agoMerge "Quick: Clean up Mir2Lir codegen."
Vladimir Marko [Tue, 24 Mar 2015 11:58:59 +0000 (11:58 +0000)]
Merge "Quick: Clean up Mir2Lir codegen."

9 years agoQuick: Clean up Mir2Lir codegen.
Vladimir Marko [Mon, 23 Mar 2015 17:05:14 +0000 (17:05 +0000)]
Quick: Clean up Mir2Lir codegen.

Clean up WrapPointer()/UnwrapPointer() and OpPcRelLoad().

Change-Id: I1a91f01e1e779599c77f3f6efcac2a6ad34629cf

9 years agoMerge "Quick: Create GC map based on compiler data."
Vladimir Marko [Tue, 24 Mar 2015 11:26:17 +0000 (11:26 +0000)]
Merge "Quick: Create GC map based on compiler data."

9 years agoMerge "Revert "Deoptimization-based bce.""
Andreas Gampe [Tue, 24 Mar 2015 02:40:55 +0000 (02:40 +0000)]
Merge "Revert "Deoptimization-based bce.""

9 years agoRevert "Deoptimization-based bce."
Andreas Gampe [Tue, 24 Mar 2015 02:39:46 +0000 (02:39 +0000)]
Revert "Deoptimization-based bce."

This breaks compiling the core image:

 Error after BCE: art::SSAChecker: Instruction 219 in block 1 does not dominate use 221 in block 1.

This reverts commit e295e6ec5beaea31be5d7d3c996cd8cfa2053129.

Change-Id: Ieeb48797d451836ed506ccb940872f1443942e4e

9 years agoMerge "Deoptimization-based bce."
Mingyao Yang [Mon, 23 Mar 2015 23:56:36 +0000 (23:56 +0000)]
Merge "Deoptimization-based bce."