OSDN Git Service

android-x86/art.git
8 years agoRevert "Fix gtests after loop inlining support."
Andreas Gampe [Wed, 20 Jan 2016 21:23:10 +0000 (21:23 +0000)]
Revert "Fix gtests after loop inlining support."

This reverts commit 0e342cd5ccf0f648e165fa4fd270b44dfbea8be6.

Loop inlining exposes BCE issues.

Bug: 26689526
Change-Id: Iab0f8f502d8b389af4efc2e99e28cae59c00ee9b

8 years agoFix gtests after loop inlining support.
Nicolas Geoffray [Wed, 20 Jan 2016 18:30:24 +0000 (18:30 +0000)]
Fix gtests after loop inlining support.

Change-Id: Id6288fff8911ec9545e83d97f90ae566e13a75af

8 years agoMerge "Write dex files to oat file early."
Vladimir Marko [Wed, 20 Jan 2016 17:40:37 +0000 (17:40 +0000)]
Merge "Write dex files to oat file early."

8 years agoMerge "ART: Cannot assume String.<init> called on NewInstance"
David Brazdil [Wed, 20 Jan 2016 16:48:30 +0000 (16:48 +0000)]
Merge "ART: Cannot assume String.<init> called on NewInstance"

8 years agoMerge "Inline methods with loops."
Nicolas Geoffray [Wed, 20 Jan 2016 16:41:40 +0000 (16:41 +0000)]
Merge "Inline methods with loops."

8 years agoART: Cannot assume String.<init> called on NewInstance
David Brazdil [Wed, 20 Jan 2016 14:50:19 +0000 (14:50 +0000)]
ART: Cannot assume String.<init> called on NewInstance

Irreducible loops create uneliminatable phis for all live vregs. This
breaks the StringFactory optimization which assumes that the first
input is always a NewInstance instruction.

Bug: 26676472

Change-Id: Ib7dfdadbafbbfef89e1f5b1a80eb75ecf792621a

8 years agoInline methods with loops.
Nicolas Geoffray [Tue, 19 Jan 2016 14:08:02 +0000 (14:08 +0000)]
Inline methods with loops.

Compiling Gms/Fb/Framework/Docs:
- Overall compilation-time increase: 2.2%
- Overall code size increase: 1.1%

Performance improvements:
- Richards with jit: +6%
- Takl: +11%

Change-Id: I0a6fcf2a360e5ad193cd95b5c4fe92227ac6bd96

8 years agoMerge "Disable MemMapTest.MapAnonymousExactAddr32bitHighAddr on MIPS32."
Roland Levillain [Wed, 20 Jan 2016 12:22:44 +0000 (12:22 +0000)]
Merge "Disable MemMapTest.MapAnonymousExactAddr32bitHighAddr on MIPS32."

8 years agoDisable MemMapTest.MapAnonymousExactAddr32bitHighAddr on MIPS32.
Roland Levillain [Wed, 20 Jan 2016 12:13:57 +0000 (12:13 +0000)]
Disable MemMapTest.MapAnonymousExactAddr32bitHighAddr on MIPS32.

This test case is failing on a Creator Ci20 development
board because of memory allocation limitations.

Bug: 26635783
Change-Id: I02f1012f8005fd516aac82412c71af7a4652a80c

8 years agoMerge "Make sure that OfflineCompilationInfo is set to nullptr when needed."
Calin Juravle [Wed, 20 Jan 2016 04:03:25 +0000 (04:03 +0000)]
Merge "Make sure that OfflineCompilationInfo is set to nullptr when needed."

8 years agoMake sure that OfflineCompilationInfo is set to nullptr when needed.
Calin Juravle [Wed, 20 Jan 2016 03:56:12 +0000 (03:56 +0000)]
Make sure that OfflineCompilationInfo is set to nullptr when needed.

Local variables weren't initialized when in tests and the early
return in ProcessProfiles didn't make sure that the output
parameter is set to nullptr.

Bug: 26080105
Change-Id: Id88a6abb515c3ab9a6ebac56bc9dac7920c3d58f

8 years agoMerge "run-test: Add tests for 1.8 reflection implementations"
Igor Murashkin [Tue, 19 Jan 2016 23:47:13 +0000 (23:47 +0000)]
Merge "run-test: Add tests for 1.8 reflection implementations"

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

8 years agoRevert "Fast ART x86 interpreter"
Bill Buzbee [Tue, 19 Jan 2016 23:42:50 +0000 (23:42 +0000)]
Revert "Fast ART x86 interpreter"

This reverts commit 99229c71efda9363faa571017c52a215c6e28f83.

Assembly syntax issue with the Mac build.

Change-Id: I271d18d31963fae46e4077ddd39313bec0b3a39e

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 agoWrite dex files to oat file early.
Vladimir Marko [Thu, 26 Nov 2015 14:44:16 +0000 (14:44 +0000)]
Write dex files to oat file early.

Write dex files to oat file before we actually open and
verify them. Instead, open and verify the copies from the
oat file and use these. This way, in the most common case
of zipped dex files, we have mmapped dex files instead of
inflated dex files. That reduces the number of dirty pages
used by dex2oat.

Reading /proc/self/statm after we write the oat file for
a compilation of a certain large app on Nexus 5 AOSP build
with -j1, three attempts before and after this CL gave
    before: 346061 189462 6269 26 0 140723 0
            346189 189450 6269 26 0 140851 0
            346061 189463 6269 26 0 140723 0
    after:  346186 185808 23040 27 0 140468 0
            346186 185819 23040 27 0 140468 0
            346186 185822 23040 27 0 140468 0
These values are in pages (4KiB), so while the "size"
(=VmSize) is essentially unchanged, the "resident" (=VmRSS)
is over 14MiB less and the "shared" (i.e. backed by a file)
is 65.5MiB more. That is, the amount of dirty non-pageable
memory used is reduced by about 80MiB.

The oat file format has changed slightly, the class offset
table has been moved from the OatDexFile to its own section.
This actually fixes the alignment of these offsets as they
could have been unaligned previously, yet accessed as normal
with significant performance impact if the kernel has to
emulate the unaligned access (say, mips).

Change-Id: I0f4799bb1f1ca28e3533156a3494f55345c3e10a

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."