OSDN Git Service

android-x86/art.git
8 years agoRevert "run-test: Add tests for 1.8 reflection implementations"
Nicolas Geoffray [Thu, 21 Jan 2016 13:26:08 +0000 (13:26 +0000)]
Revert "run-test: Add tests for 1.8 reflection implementations"

Bug: 24618811

Too many failures on goto/ab

This reverts commit 54c4e0d7adbf9179df04f5ed5d8d5a3ff69add84.

Change-Id: Ic6305c14d78b38e5c13ea42e1777ad197ff2f45c

8 years agorun-test: Add tests for 1.8 reflection implementations
Igor Murashkin [Mon, 11 Jan 2016 23:59:50 +0000 (15:59 -0800)]
run-test: Add tests for 1.8 reflection implementations

Add test for Method#isDefault for now, requires experimental lang-dev
jack version.

Bug: 24618811
Change-Id: If5a796fe5609ea13ec9b1565619a38b932462989

8 years agoMerge "Remove dex_file_verifier test of newly allowed behavior."
Alex Light [Tue, 19 Jan 2016 23:20:04 +0000 (23:20 +0000)]
Merge "Remove dex_file_verifier test of newly allowed behavior."

8 years agoRemove dex_file_verifier test of newly allowed behavior.
Alex Light [Tue, 19 Jan 2016 21:29:45 +0000 (13:29 -0800)]
Remove dex_file_verifier test of newly allowed behavior.

We previously tested that the dex_file_verifier would error out on
interface methods with code but default methods mean this test is no
longer accurate.

Bug: 24618811

Change-Id: I8ec50ebd93b4bb78acacfafcb6c33c92415a68eb

8 years agoMerge "Change space base test to use parameters"
Mathieu Chartier [Tue, 19 Jan 2016 22:48:21 +0000 (22:48 +0000)]
Merge "Change space base test to use parameters"

8 years agoMerge "Fast ART x86 interpreter"
Bill Buzbee [Tue, 19 Jan 2016 22:19:37 +0000 (22:19 +0000)]
Merge "Fast ART x86 interpreter"

8 years agoChange space base test to use parameters
Mathieu Chartier [Sat, 16 Jan 2016 00:44:57 +0000 (16:44 -0800)]
Change space base test to use parameters

Still need to convert remaining space tests to use gtest value
parameters.

Bug: 10245322
Change-Id: Iad3183d46f2fff1ec2aee6923c989433885adf81

8 years agoFast ART x86 interpreter
Serguei Katkov [Thu, 31 Dec 2015 07:05:31 +0000 (13:05 +0600)]
Fast ART x86 interpreter

Port of ART Dalvik-style interpreter for x86.
See Bill's patch for details
https://android-review.googlesource.com/#/c/188977/

Included fixes
https://android-review.googlesource.com/#/c/196153/
ART: Mterp read barrier fix + minor cleanup

https://android-review.googlesource.com/#/c/196501/
ART: Mterp - remove redundant null check

Change-Id: If447e3a14088559e3aa0b82cb2c91721bea586ee
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoMerge "Improve profile processing"
Calin Juravle [Tue, 19 Jan 2016 19:34:40 +0000 (19:34 +0000)]
Merge "Improve profile processing"

8 years agoImprove profile processing
Calin Juravle [Tue, 5 Jan 2016 14:29:29 +0000 (14:29 +0000)]
Improve profile processing

- allow file descriptors in addition to file names for profiles
- fix some minor issues (wrong comparison signs, unhandled errors)
- added gtests for profile_compilation_info, profile_assistant
and compiler_driver

Bug: 26080105
Change-Id: I136039fa1f25858399000049e48b01eafae54eb1

8 years agoMerge "mem_map_test: perform null check before dereferencing a pointer."
Roland Levillain [Tue, 19 Jan 2016 18:18:24 +0000 (18:18 +0000)]
Merge "mem_map_test: perform null check before dereferencing a pointer."

8 years agomem_map_test: perform null check before dereferencing a pointer.
Roland Levillain [Tue, 19 Jan 2016 17:30:33 +0000 (17:30 +0000)]
mem_map_test: perform null check before dereferencing a pointer.

Bug: 26635783
Change-Id: I0bd29445b322b4c16b4f85a5acd9fac403d4fb6b

8 years agoMerge "Fix various typos in ART's comments and string literals."
Roland Levillain [Tue, 19 Jan 2016 16:13:42 +0000 (16:13 +0000)]
Merge "Fix various typos in ART's comments and string literals."

8 years agoFix various typos in ART's comments and string literals.
Roland Levillain [Tue, 19 Jan 2016 15:59:16 +0000 (15:59 +0000)]
Fix various typos in ART's comments and string literals.

Change-Id: I85d628055b1a61647a77fef730c9631c234e22a2

8 years agoMerge "Some read barrier clean-up in Optimizing."
Roland Levillain [Tue, 19 Jan 2016 15:21:38 +0000 (15:21 +0000)]
Merge "Some read barrier clean-up in Optimizing."

8 years agoSome read barrier clean-up in Optimizing.
Roland Levillain [Tue, 19 Jan 2016 15:07:47 +0000 (15:07 +0000)]
Some read barrier clean-up in Optimizing.

These changes make the read barrier compiler instrumentation
code more uniform among the ARM, ARM64, x86 and x86-64 back
ends.

Bug: 12687968
Change-Id: I6b1c0cf2bc22ed6cd6b14754136bef4a2a036ea5

8 years agoMerge "Disable DCE when there are irreducible loops."
Nicolas Geoffray [Tue, 19 Jan 2016 14:07:47 +0000 (14:07 +0000)]
Merge "Disable DCE when there are irreducible loops."

8 years agoDisable DCE when there are irreducible loops.
Nicolas Geoffray [Tue, 19 Jan 2016 10:52:54 +0000 (10:52 +0000)]
Disable DCE when there are irreducible loops.

Also ensure an instruction that requires an environment
does have one.

Change-Id: I41a8460e05ef320f872197d3be7847e7ffaa6ee8

8 years agoMerge "ART: Optimize out redundant NewInstances of String"
David Brazdil [Tue, 19 Jan 2016 12:03:24 +0000 (12:03 +0000)]
Merge "ART: Optimize out redundant NewInstances of String"

8 years agoART: Optimize out redundant NewInstances of String
David Brazdil [Fri, 15 Jan 2016 09:35:13 +0000 (09:35 +0000)]
ART: Optimize out redundant NewInstances of String

NewInstance of String creates an empty String object before it is
replaced by the result of a StringFactory call (String.<init>). If
the empty object is never used prior to the call, it can be safely
removed (replaced with null in this case).

We do not remove the instruction if:
 - it has a real use (comparison, instanceof, check-cast), or
 - we are compiling with --debuggable and there is an environment use.

If removed and execution deoptimizes before the StringFactory call,
the interpreter will see String.<init> being called on a null object.
Since the verifier guarantees that the call was made on new-instance
in the input bytecode (b/26579108), the interpreter can safely assume
that it was optimized out rather than throw NullPointerException.

Results (all without --debuggable):
 - boot.oat:     563/563 removed
 - Google Maps:  480/480 removed
 - Google Docs:  819/819 removed

Change-Id: I9fdfc50e9dea6299a7327f94327cdfd2b2538079

8 years agoMerge "Keep track of number of JIT compilations."
Nicolas Geoffray [Tue, 19 Jan 2016 10:34:08 +0000 (10:34 +0000)]
Merge "Keep track of number of JIT compilations."

8 years agoKeep track of number of JIT compilations.
Nicolas Geoffray [Tue, 19 Jan 2016 09:34:58 +0000 (09:34 +0000)]
Keep track of number of JIT compilations.

Change-Id: Ic436bc3f939f6236190ddd840955cb72f76e8f85

8 years agoMerge "ART: Public classes never require access checks"
David Brazdil [Tue, 19 Jan 2016 09:43:33 +0000 (09:43 +0000)]
Merge "ART: Public classes never require access checks"

8 years agoMerge "Disable reanmed test due to python3."
Nicolas Geoffray [Tue, 19 Jan 2016 09:18:05 +0000 (09:18 +0000)]
Merge "Disable reanmed test due to python3."

8 years agoDisable reanmed test due to python3.
Nicolas Geoffray [Tue, 19 Jan 2016 09:17:25 +0000 (09:17 +0000)]
Disable reanmed test due to python3.

Change-Id: I75781af509933d85ed56dde2defa350c2c636f49

8 years agoART: Public classes never require access checks
David Brazdil [Mon, 18 Jan 2016 17:13:41 +0000 (17:13 +0000)]
ART: Public classes never require access checks

CompilerDriver's CanAccess(Instantiable)TypeWithoutChecks will always
return false if the referrer class is unresolved. This is too
conservative when the target class is resolved and known public.

Change-Id: Ibf95f43f13a7295e85671e3b71e28b5d88b4ca3b

8 years agoMerge "Ignore OldAndroidZipStreamTest#testZipStream failures with CC."
Roland Levillain [Mon, 18 Jan 2016 18:09:15 +0000 (18:09 +0000)]
Merge "Ignore OldAndroidZipStreamTest#testZipStream failures with CC."

8 years agoIgnore OldAndroidZipStreamTest#testZipStream failures with CC.
Roland Levillain [Mon, 18 Jan 2016 17:54:30 +0000 (17:54 +0000)]
Ignore OldAndroidZipStreamTest#testZipStream failures with CC.

This test sometimes fails with a
java.util.concurrent.TimeoutException on ART Builbot's
x86 concurrent collector configuration:
* libcore.java.util.zip.OldAndroidZipStreamTest#testZipStream

Disable it while we investigate.

Bug: 26507762
Change-Id: I3c0860a1573b2f221634b5d28d82c01c35628867

8 years agoMerge "Pass --generate-debug-info only when --perf is passed."
Nicolas Geoffray [Mon, 18 Jan 2016 17:18:10 +0000 (17:18 +0000)]
Merge "Pass --generate-debug-info only when --perf is passed."

8 years agoMerge "ART: Remove Baseline compiler"
David Brazdil [Mon, 18 Jan 2016 17:13:14 +0000 (17:13 +0000)]
Merge "ART: Remove Baseline compiler"

8 years agoPass --generate-debug-info only when --perf is passed.
Nicolas Geoffray [Mon, 18 Jan 2016 16:57:06 +0000 (16:57 +0000)]
Pass --generate-debug-info only when --perf is passed.

Change-Id: I7ea275aced8c514d5a1b4ac979964481ef643eaa

8 years agoART: Remove Baseline compiler
David Brazdil [Thu, 14 Jan 2016 12:45:10 +0000 (12:45 +0000)]
ART: Remove Baseline compiler

We don't need Baseline any more and it hasn't been maintained for
a while anyway. Let's remove it.

Change-Id: I442ed26855527be2df3c79935403a25b1ee55df6

8 years agoMerge "Optimizing: Improve floating point comparisons on arm and arm64."
Vladimir Marko [Mon, 18 Jan 2016 16:31:07 +0000 (16:31 +0000)]
Merge "Optimizing: Improve floating point comparisons on arm and arm64."

8 years agoMerge "Do HFieldGet first to avoid explicit null check."
Nicolas Geoffray [Mon, 18 Jan 2016 16:01:17 +0000 (16:01 +0000)]
Merge "Do HFieldGet first to avoid explicit null check."

8 years agoMerge "Rename test case to avoid test filename too long."
Nicolas Geoffray [Mon, 18 Jan 2016 15:42:45 +0000 (15:42 +0000)]
Merge "Rename test case to avoid test filename too long."

8 years agoRename test case to avoid test filename too long.
Nicolas Geoffray [Mon, 18 Jan 2016 15:40:54 +0000 (15:40 +0000)]
Rename test case to avoid test filename too long.

Change-Id: I3e5101cd20f669a27449bcaf117c916abb791044

8 years agoDo HFieldGet first to avoid explicit null check.
Nicolas Geoffray [Mon, 18 Jan 2016 15:24:53 +0000 (15:24 +0000)]
Do HFieldGet first to avoid explicit null check.

Change-Id: If22f85d502e1dce428f8d341fcb64e27a886fb89

8 years agoMerge "Move --dump-cfg and dump-cfg-append to CompilerOptions."
Nicolas Geoffray [Mon, 18 Jan 2016 14:50:28 +0000 (14:50 +0000)]
Merge "Move --dump-cfg and dump-cfg-append to CompilerOptions."

8 years agoMerge "Report types loaded during init to the native debugger"
David Srbecky [Mon, 18 Jan 2016 14:47:32 +0000 (14:47 +0000)]
Merge "Report types loaded during init to the native debugger"

8 years agoReport types loaded during init to the native debugger
Tamas Berghammer [Fri, 15 Jan 2016 13:09:34 +0000 (13:09 +0000)]
Report types loaded during init to the native debugger

The runtime loads a lot of type before it creates the jit from the
boot image and from hard coded source code (e.g. primitive arrays).
This change emits type information for these types after the jit has
been created. At the same time we remove the type info generation
that happens during AOT compilation because that type information can
be modified by a class loader at runtime.

Change-Id: Ie5b3b3df9d01c7200a1f670a98d9cbee796234e9

8 years agoMerge "Emit some additional debug info for java.lang.String"
David Srbecky [Mon, 18 Jan 2016 14:29:20 +0000 (14:29 +0000)]
Merge "Emit some additional debug info for java.lang.String"

8 years agoEmit some additional debug info for java.lang.String
Tamas Berghammer [Fri, 15 Jan 2016 13:39:57 +0000 (13:39 +0000)]
Emit some additional debug info for java.lang.String

The value part of java.lang.String is not a proper ArtField so the
default debug info writing code don't emit debug info about that. This
CL add logic to emit debug info for a new member what represents the
first element of the underlying string data what can be used by the
consumer of the debug info to display the value of the string.

Change-Id: Ibc11b143e79aa8866000d02922bcd6069cfcd4c2

8 years agoMerge "Report loaded classes to native debugger."
David Srbecky [Mon, 18 Jan 2016 14:15:10 +0000 (14:15 +0000)]
Merge "Report loaded classes to native debugger."

8 years agoReport loaded classes to native debugger.
Tamas Berghammer [Tue, 5 Jan 2016 14:29:02 +0000 (14:29 +0000)]
Report loaded classes to native debugger.

Change-Id: Iee902a9ed8fa7545ba3e6afc32f285aa350a5383

8 years agoMerge "Ignore more libcore.java.util.zip test failures with CC."
Roland Levillain [Mon, 18 Jan 2016 13:56:37 +0000 (13:56 +0000)]
Merge "Ignore more libcore.java.util.zip test failures with CC."

8 years agoIgnore more libcore.java.util.zip test failures with CC.
Roland Levillain [Mon, 18 Jan 2016 13:51:12 +0000 (13:51 +0000)]
Ignore more libcore.java.util.zip test failures with CC.

These tests sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's
x86-64 concurrent collector configuration:
* libcore.java.util.zip.DeflaterOutputStreamTest#testSyncFlushDisabled
* libcore.java.util.zip.OldAndroidGZIPStreamTest#testGZIPStream

Disable them while we investigate.

Bug: 26507762
Change-Id: If62d5d6491c2808a37dabc6f5c48464d5ed1dfbd

8 years agoOptimizing: Improve floating point comparisons on arm and arm64.
Vladimir Marko [Mon, 18 Jan 2016 11:11:01 +0000 (11:11 +0000)]
Optimizing: Improve floating point comparisons on arm and arm64.

Avoid the extra check for unordered inputs by using the
appropriate arm/arm64 condition.

Change-Id: Ib5e775a90428db7a2cf377ad9fd6a3192d670617

8 years agoMove --dump-cfg and dump-cfg-append to CompilerOptions.
Nicolas Geoffray [Mon, 18 Jan 2016 12:56:06 +0000 (12:56 +0000)]
Move --dump-cfg and dump-cfg-append to CompilerOptions.

It simplifies passing the option to the JIT.

Change-Id: Iee1b722362899e5809ef97be90961e3dda1e16cc

8 years agoMerge "ART: Change merge(uninitialized, null) to produce conflict"
David Brazdil [Mon, 18 Jan 2016 11:37:20 +0000 (11:37 +0000)]
Merge "ART: Change merge(uninitialized, null) to produce conflict"

8 years agoART: Change merge(uninitialized, null) to produce conflict
David Brazdil [Fri, 15 Jan 2016 14:55:13 +0000 (14:55 +0000)]
ART: Change merge(uninitialized, null) to produce conflict

The verifier would treat the result of merge(uninitialized, null) as
an uninitialized value, allowing a constructor to be called on null.
This patch conservatively prevents any usage of the merged register
by treating it as conflicting. Note that this could be relaxed with
a new common type for initialized and uninitialized references.

Bug: 26579108
Bug: 22411633

Change-Id: Ic5a1a3909c80287deece92dbb3254f437074e9b6

8 years agoMerge "Also print to error stream."
Nicolas Geoffray [Mon, 18 Jan 2016 11:07:09 +0000 (11:07 +0000)]
Merge "Also print to error stream."

8 years agoMerge "Do not use HArm64IntermediateAddress with read barriers."
Roland Levillain [Mon, 18 Jan 2016 09:59:05 +0000 (09:59 +0000)]
Merge "Do not use HArm64IntermediateAddress with read barriers."

8 years agoDo not use HArm64IntermediateAddress with read barriers.
Roland Levillain [Fri, 15 Jan 2016 19:26:48 +0000 (19:26 +0000)]
Do not use HArm64IntermediateAddress with read barriers.

This ARM64 instruction simplification does not yet work
correctly with the read barrier compiler instrumentation.

Bug: 26601270
Bug: 12687968
Change-Id: I0c3c5d0043ebd936e00984740efbae8b3025c7ca

8 years agoMerge "Add oat location to oatdump."
Jeff Hao [Fri, 15 Jan 2016 20:58:14 +0000 (20:58 +0000)]
Merge "Add oat location to oatdump."

8 years agoAdd oat location to oatdump.
Jeff Hao [Fri, 15 Jan 2016 20:50:44 +0000 (12:50 -0800)]
Add oat location to oatdump.

Change-Id: Idc0da67e04048a00c4ce4b524103be0925f66e71

8 years agoMerge "Add value parameterized test support for runtime tests"
Mathieu Chartier [Fri, 15 Jan 2016 20:32:17 +0000 (20:32 +0000)]
Merge "Add value parameterized test support for runtime tests"

8 years agoAdd value parameterized test support for runtime tests
Mathieu Chartier [Fri, 15 Jan 2016 17:48:15 +0000 (09:48 -0800)]
Add value parameterized test support for runtime tests

Usage is demonstrated in type_lookup_table_test.

Bug: 10245322

Change-Id: Ife6eb1ed57cb12edecce9ef101215ff15ae032e1

8 years agoMerge "Revert "Disable mterp for the read barrier config.""
Hiroshi Yamauchi [Fri, 15 Jan 2016 18:41:10 +0000 (18:41 +0000)]
Merge "Revert "Disable mterp for the read barrier config.""

8 years agoMerge "MIPS64: Fix stub_test in a proper way"
Vladimir Marko [Fri, 15 Jan 2016 15:28:02 +0000 (15:28 +0000)]
Merge "MIPS64: Fix stub_test in a proper way"

8 years agoMIPS64: Fix stub_test in a proper way
Goran Jakovljevic [Fri, 15 Jan 2016 13:08:47 +0000 (14:08 +0100)]
MIPS64: Fix stub_test in a proper way

This reverts commit dc2388f9e7929faecaea9446c6ebd522445ac915 and
fixes stub_test in a proper way. Register names $12-$15 has been
used in the clobber list instead aliases t0-t3 because they are
ambiguous.

Change-Id: Idf8c866267a169c00046cc0a8191ec9712a5f937

8 years agoMerge "ART: Fix CompilerDriver::AreInSameOatFile()."
Vladimir Marko [Fri, 15 Jan 2016 11:37:38 +0000 (11:37 +0000)]
Merge "ART: Fix CompilerDriver::AreInSameOatFile()."

8 years agoART: Fix CompilerDriver::AreInSameOatFile().
Vladimir Marko [Thu, 14 Jan 2016 22:06:23 +0000 (22:06 +0000)]
ART: Fix CompilerDriver::AreInSameOatFile().

Bug: 26317072
Change-Id: I4279ef6559a43b5d59188616712a867f864b5d79

8 years agoMerge "ART: Remove incorrect HFakeString optimization"
David Brazdil [Fri, 15 Jan 2016 09:19:12 +0000 (09:19 +0000)]
Merge "ART: Remove incorrect HFakeString optimization"

8 years agoMerge "ART: Mterp - remove redundant null check"
Bill Buzbee [Fri, 15 Jan 2016 01:09:35 +0000 (01:09 +0000)]
Merge "ART: Mterp - remove redundant null check"

8 years agoMerge "New failures due to linker issue."
Nicolas Geoffray [Fri, 15 Jan 2016 01:04:14 +0000 (01:04 +0000)]
Merge "New failures due to linker issue."

8 years agoNew failures due to linker issue.
Nicolas Geoffray [Fri, 15 Jan 2016 01:02:25 +0000 (01:02 +0000)]
New failures due to linker issue.

Change-Id: I52a9ad2a9db0c966766d8b513bd5b31f3c318ba1

8 years agoART: Mterp - remove redundant null check
buzbee [Thu, 14 Jan 2016 13:34:34 +0000 (05:34 -0800)]
ART: Mterp - remove redundant null check

Noted in cl 196153, but failed to fix.

Change-Id: Ib19ce3832eeffa7188b592d62c66df801f27f07c

8 years agoMerge "Allow multi-image dex2oat to tolerate missing dex files."
Jeff Hao [Thu, 14 Jan 2016 23:07:11 +0000 (23:07 +0000)]
Merge "Allow multi-image dex2oat to tolerate missing dex files."

8 years agoMerge "Add test for bad linkage of overriden package-private method."
Mathieu Chartier [Thu, 14 Jan 2016 22:53:26 +0000 (22:53 +0000)]
Merge "Add test for bad linkage of overriden package-private method."

8 years agoAdd test for bad linkage of overriden package-private method.
Pavel Vyssotski [Tue, 29 Dec 2015 08:13:34 +0000 (14:13 +0600)]
Add test for bad linkage of overriden package-private method.

Test for AOT compiler bad linkage of overriden package-private method
with a secondary dex file.

Change-Id: I5d60c409c9912762fbb47ae8aeebb988c9b3cebc
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
8 years agoMerge "Revert "Create parent class loader for dex2oat""
Mathieu Chartier [Thu, 14 Jan 2016 22:47:15 +0000 (22:47 +0000)]
Merge "Revert "Create parent class loader for dex2oat""

8 years agoRevert "Create parent class loader for dex2oat"
Mathieu Chartier [Thu, 14 Jan 2016 22:33:29 +0000 (14:33 -0800)]
Revert "Create parent class loader for dex2oat"

Bug: 22858531

This reverts commit d37d364c27e74a7b49970a8c970482e273aa7b1a.

Change-Id: Id71a6f3bb9a29c04a5c13210633674e05d798114

8 years agoAllow multi-image dex2oat to tolerate missing dex files.
Jeff Hao [Wed, 13 Jan 2016 00:36:50 +0000 (16:36 -0800)]
Allow multi-image dex2oat to tolerate missing dex files.

Bug: 26317072

(cherry-picked from commit 9c25dfafaf479b2f3593a6b51b85ab21fb9c45c9)

Change-Id: I786dae69b0680cf619368894842b21d39d64ab97

8 years agoMerge "Yet another python3 dependency."
Nicolas Geoffray [Thu, 14 Jan 2016 22:22:34 +0000 (22:22 +0000)]
Merge "Yet another python3 dependency."

8 years agoYet another python3 dependency.
Nicolas Geoffray [Thu, 14 Jan 2016 22:21:14 +0000 (22:21 +0000)]
Yet another python3 dependency.

Change-Id: Iefdfdef707c028d4bb6087a2d1f424f5503366b2

8 years agoMerge "Don't allow thread suspension in ProfilingInfo::Create"
Mathieu Chartier [Thu, 14 Jan 2016 22:13:47 +0000 (22:13 +0000)]
Merge "Don't allow thread suspension in ProfilingInfo::Create"

8 years agoDon't allow thread suspension in ProfilingInfo::Create
Mathieu Chartier [Thu, 14 Jan 2016 18:24:28 +0000 (10:24 -0800)]
Don't allow thread suspension in ProfilingInfo::Create

AddSamples calls ProfilingInfo::Create which would occasionally
transition to suspended and wait for code cache GC to complete.
This CL removes the thread state change and
WaitForPotentialCollectionToComplete which caused thread suspension.

The thread suspension caused occasional stale object references in
InvokeVirtualOrInterface since moving GC could occur.
If this_object became stale, we would put it's stale class into the
profile info, resulting in a GC crash.

Bug: 26086970
Change-Id: I5a86561098d72b7be80e8a3bcf3d8401403a0b00

8 years agoMerge "Implement irreducible loop support in optimizing."
Nicolas Geoffray [Thu, 14 Jan 2016 21:25:16 +0000 (21:25 +0000)]
Merge "Implement irreducible loop support in optimizing."

8 years agoRevert "Disable mterp for the read barrier config."
Hiroshi Yamauchi [Thu, 14 Jan 2016 03:32:28 +0000 (19:32 -0800)]
Revert "Disable mterp for the read barrier config."

Now that cl 196153 is in.

This reverts commit 987e44e6b65677587f37c26e630ddc4d4c563382.

Bug: 26510411
Change-Id: I006d7532973a6e26adde99e04f8b3eab491b3901

8 years agoMerge "Support directly invoking interface default methods"
Alex Light [Thu, 14 Jan 2016 18:43:36 +0000 (18:43 +0000)]
Merge "Support directly invoking interface default methods"

8 years agoMerge "Update `ValidateInvokeRuntime()` and HDivZeroCheck."
Roland Levillain [Thu, 14 Jan 2016 18:29:57 +0000 (18:29 +0000)]
Merge "Update `ValidateInvokeRuntime()` and HDivZeroCheck."

8 years agoART: Remove incorrect HFakeString optimization
David Brazdil [Fri, 8 Jan 2016 17:37:10 +0000 (17:37 +0000)]
ART: Remove incorrect HFakeString optimization

Simplification of HFakeString assumes that it cannot be used until
String.<init> is called which is not true and causes different
behaviour between the compiler and the interpreter. This patch
removes the optimization together with the HFakeString instruction.

Instead, HNewInstance is generated and an empty String allocated
until it is replaced with the result of the StringFactory call. This
is consistent with the behaviour of the interpreter but is too
conservative. A follow-up CL will attempt to optimize out the initial
allocation when possible.

Bug: 26457745
Bug: 26486014

Change-Id: I7139e37ed00a880715bfc234896a930fde670c44

8 years agoMerge "Fix braino in parameters passed."
Nicolas Geoffray [Thu, 14 Jan 2016 16:18:53 +0000 (16:18 +0000)]
Merge "Fix braino in parameters passed."

8 years agoFix braino in parameters passed.
Nicolas Geoffray [Thu, 14 Jan 2016 16:16:35 +0000 (16:16 +0000)]
Fix braino in parameters passed.

Change-Id: I4683586184617bb8ac4f377b873263a339d1d960

8 years agoImplement irreducible loop support in optimizing.
Nicolas Geoffray [Tue, 5 Jan 2016 15:55:41 +0000 (15:55 +0000)]
Implement irreducible loop support in optimizing.

So we don't fallback to the interpreter in the presence of
irreducible loops.

Implications:
- A loop pre-header does not necessarily dominate a loop header.
- Non-constant redundant phis will be kept in loop headers, to
  satisfy our linear scan register allocation algorithm.
- while-graph optimizations, such as gvn, licm, lse, and dce
  need to know when they are dealing with irreducible loops.

Change-Id: I2cea8934ce0b40162d215353497c7f77d6c9137e

8 years agoMerge "MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or with 32-bit...
Roland Levillain [Thu, 14 Jan 2016 13:09:10 +0000 (13:09 +0000)]
Merge "MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or with 32-bit FPUs."

8 years agoMerge "Fix lint error."
Nicolas Geoffray [Thu, 14 Jan 2016 13:08:55 +0000 (13:08 +0000)]
Merge "Fix lint error."

8 years agoFix lint error.
Nicolas Geoffray [Thu, 14 Jan 2016 13:08:12 +0000 (13:08 +0000)]
Fix lint error.

Change-Id: I8584d243a1cf55170e1d7bc1570e4ad1218fde5f

8 years agoMerge "Ignore 141-class-unload failures with JIT and CC."
Roland Levillain [Thu, 14 Jan 2016 12:56:21 +0000 (12:56 +0000)]
Merge "Ignore 141-class-unload failures with JIT and CC."

8 years agoMerge "Ignore GZIPOutputStreamTest failures with concurrent collector."
Roland Levillain [Thu, 14 Jan 2016 12:55:18 +0000 (12:55 +0000)]
Merge "Ignore GZIPOutputStreamTest failures with concurrent collector."

8 years agoIgnore 141-class-unload failures with JIT and CC.
Roland Levillain [Thu, 14 Jan 2016 12:40:41 +0000 (12:40 +0000)]
Ignore 141-class-unload failures with JIT and CC.

This test sometimes fails on ART Builbot's x86-64 concurrent
collector configuration with JIT.

Disable it while we investigate.

Bug: 25866001
Change-Id: I8ed04fc1d9c920ff73032bc3f06ede85044fd925

8 years agoIgnore GZIPOutputStreamTest failures with concurrent collector.
Roland Levillain [Thu, 14 Jan 2016 12:18:10 +0000 (12:18 +0000)]
Ignore GZIPOutputStreamTest failures with concurrent collector.

This test sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's
x86-64 concurrent collector configuration:
* libcore.java.util.zip.GZIPOutputStreamTest#testSyncFlushEnabled

Disable it while we investigate.

Bug: 26507762
Change-Id: I12db20be14dfce8f6f668207bc91d57c2cb24c9f

8 years agoMerge "Don't encode a DexRegisterMap if there is no live register."
Nicolas Geoffray [Thu, 14 Jan 2016 12:22:39 +0000 (12:22 +0000)]
Merge "Don't encode a DexRegisterMap if there is no live register."

8 years agoMerge "Support --perf with jitted code."
Nicolas Geoffray [Thu, 14 Jan 2016 12:22:11 +0000 (12:22 +0000)]
Merge "Support --perf with jitted code."

8 years agoMerge "MIPS: Improve conversion between ints and floats."
Roland Levillain [Thu, 14 Jan 2016 12:01:59 +0000 (12:01 +0000)]
Merge "MIPS: Improve conversion between ints and floats."

8 years agoMerge "MIPS: HRor clean-up"
Roland Levillain [Thu, 14 Jan 2016 10:55:47 +0000 (10:55 +0000)]
Merge "MIPS: HRor clean-up"

8 years agoMIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or
Alexey Frunze [Mon, 11 Jan 2016 23:51:16 +0000 (15:51 -0800)]
MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or
with 32-bit FPUs.

Change-Id: If66932fb39cdd5946f6c05c82036191ad405a877

8 years agoMerge "Rosalloc fast path in assembly for MIPS32"
Hans Boehm [Thu, 14 Jan 2016 02:02:22 +0000 (02:02 +0000)]
Merge "Rosalloc fast path in assembly for MIPS32"

8 years agoMIPS: Improve conversion between ints and floats.
Alexey Frunze [Tue, 22 Dec 2015 23:15:03 +0000 (15:15 -0800)]
MIPS: Improve conversion between ints and floats.

Change-Id: I767fe9623cc14e8480c31e305725eb5221cac282

8 years agoMerge "Add test for calling into destroyed JNI env"
Mathieu Chartier [Thu, 14 Jan 2016 01:16:24 +0000 (01:16 +0000)]
Merge "Add test for calling into destroyed JNI env"