OSDN Git Service
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
Nicolas Geoffray [Wed, 20 Jan 2016 18:30:24 +0000 (18:30 +0000)]
Fix gtests after loop inlining support.
Change-Id: Id6288fff8911ec9545e83d97f90ae566e13a75af
Vladimir Marko [Wed, 20 Jan 2016 17:40:37 +0000 (17:40 +0000)]
Merge "Write dex files to oat file early."
David Brazdil [Wed, 20 Jan 2016 16:48:30 +0000 (16:48 +0000)]
Merge "ART: Cannot assume String.<init> called on NewInstance"
Nicolas Geoffray [Wed, 20 Jan 2016 16:41:40 +0000 (16:41 +0000)]
Merge "Inline methods with loops."
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
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
Roland Levillain [Wed, 20 Jan 2016 12:22:44 +0000 (12:22 +0000)]
Merge "Disable 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
Calin Juravle [Wed, 20 Jan 2016 04:03:25 +0000 (04:03 +0000)]
Merge "Make 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
Igor Murashkin [Tue, 19 Jan 2016 23:47:13 +0000 (23:47 +0000)]
Merge "run-test: Add tests for 1.8 reflection implementations"
Bill Buzbee [Tue, 19 Jan 2016 23:43:22 +0000 (23:43 +0000)]
Merge "Revert "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
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
Alex Light [Tue, 19 Jan 2016 23:20:04 +0000 (23:20 +0000)]
Merge "Remove 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
Mathieu Chartier [Tue, 19 Jan 2016 22:48:21 +0000 (22:48 +0000)]
Merge "Change space base test to use parameters"
Bill Buzbee [Tue, 19 Jan 2016 22:19:37 +0000 (22:19 +0000)]
Merge "Fast ART x86 interpreter"
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
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>
Calin Juravle [Tue, 19 Jan 2016 19:34:40 +0000 (19:34 +0000)]
Merge "Improve 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
Roland Levillain [Tue, 19 Jan 2016 18:18:24 +0000 (18:18 +0000)]
Merge "mem_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
Roland Levillain [Tue, 19 Jan 2016 16:13:42 +0000 (16:13 +0000)]
Merge "Fix 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
Roland Levillain [Tue, 19 Jan 2016 15:21:38 +0000 (15:21 +0000)]
Merge "Some 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
Nicolas Geoffray [Tue, 19 Jan 2016 14:07:47 +0000 (14:07 +0000)]
Merge "Disable 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
David Brazdil [Tue, 19 Jan 2016 12:03:24 +0000 (12:03 +0000)]
Merge "ART: 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
Nicolas Geoffray [Tue, 19 Jan 2016 10:34:08 +0000 (10:34 +0000)]
Merge "Keep 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
David Brazdil [Tue, 19 Jan 2016 09:43:33 +0000 (09:43 +0000)]
Merge "ART: Public classes never require access checks"
Nicolas Geoffray [Tue, 19 Jan 2016 09:18:05 +0000 (09:18 +0000)]
Merge "Disable 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
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
Roland Levillain [Mon, 18 Jan 2016 18:09:15 +0000 (18:09 +0000)]
Merge "Ignore 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
Nicolas Geoffray [Mon, 18 Jan 2016 17:18:10 +0000 (17:18 +0000)]
Merge "Pass --generate-debug-info only when --perf is passed."
David Brazdil [Mon, 18 Jan 2016 17:13:14 +0000 (17:13 +0000)]
Merge "ART: Remove Baseline compiler"
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
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
Vladimir Marko [Mon, 18 Jan 2016 16:31:07 +0000 (16:31 +0000)]
Merge "Optimizing: Improve floating point comparisons on arm and arm64."
Nicolas Geoffray [Mon, 18 Jan 2016 16:01:17 +0000 (16:01 +0000)]
Merge "Do HFieldGet first to avoid explicit null check."
Nicolas Geoffray [Mon, 18 Jan 2016 15:42:45 +0000 (15:42 +0000)]
Merge "Rename 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
Nicolas Geoffray [Mon, 18 Jan 2016 15:24:53 +0000 (15:24 +0000)]
Do HFieldGet first to avoid explicit null check.
Change-Id: If22f85d502e1dce428f8d341fcb64e27a886fb89
Nicolas Geoffray [Mon, 18 Jan 2016 14:50:28 +0000 (14:50 +0000)]
Merge "Move --dump-cfg and dump-cfg-append to CompilerOptions."
David Srbecky [Mon, 18 Jan 2016 14:47:32 +0000 (14:47 +0000)]
Merge "Report 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
David Srbecky [Mon, 18 Jan 2016 14:29:20 +0000 (14:29 +0000)]
Merge "Emit 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
David Srbecky [Mon, 18 Jan 2016 14:15:10 +0000 (14:15 +0000)]
Merge "Report 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
Roland Levillain [Mon, 18 Jan 2016 13:56:37 +0000 (13:56 +0000)]
Merge "Ignore 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
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
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
David Brazdil [Mon, 18 Jan 2016 11:37:20 +0000 (11:37 +0000)]
Merge "ART: 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
Nicolas Geoffray [Mon, 18 Jan 2016 11:07:09 +0000 (11:07 +0000)]
Merge "Also print to error stream."
Roland Levillain [Mon, 18 Jan 2016 09:59:05 +0000 (09:59 +0000)]
Merge "Do 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
Jeff Hao [Fri, 15 Jan 2016 20:58:14 +0000 (20:58 +0000)]
Merge "Add 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
Mathieu Chartier [Fri, 15 Jan 2016 20:32:17 +0000 (20:32 +0000)]
Merge "Add 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
Hiroshi Yamauchi [Fri, 15 Jan 2016 18:41:10 +0000 (18:41 +0000)]
Merge "Revert "Disable mterp for the read barrier config.""
Vladimir Marko [Fri, 15 Jan 2016 15:28:02 +0000 (15:28 +0000)]
Merge "MIPS64: 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
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
Vladimir Marko [Fri, 15 Jan 2016 11:37:38 +0000 (11:37 +0000)]
Merge "ART: 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
David Brazdil [Fri, 15 Jan 2016 09:19:12 +0000 (09:19 +0000)]
Merge "ART: Remove incorrect HFakeString optimization"
Bill Buzbee [Fri, 15 Jan 2016 01:09:35 +0000 (01:09 +0000)]
Merge "ART: Mterp - remove redundant null check"
Nicolas Geoffray [Fri, 15 Jan 2016 01:04:14 +0000 (01:04 +0000)]
Merge "New 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
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
Jeff Hao [Thu, 14 Jan 2016 23:07:11 +0000 (23:07 +0000)]
Merge "Allow multi-image dex2oat to tolerate missing dex files."
Mathieu Chartier [Thu, 14 Jan 2016 22:53:26 +0000 (22:53 +0000)]
Merge "Add 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>
Mathieu Chartier [Thu, 14 Jan 2016 22:47:15 +0000 (22:47 +0000)]
Merge "Revert "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
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
Nicolas Geoffray [Thu, 14 Jan 2016 22:22:34 +0000 (22:22 +0000)]
Merge "Yet another python3 dependency."
Nicolas Geoffray [Thu, 14 Jan 2016 22:21:14 +0000 (22:21 +0000)]
Yet another python3 dependency.
Change-Id: Iefdfdef707c028d4bb6087a2d1f424f5503366b2
Mathieu Chartier [Thu, 14 Jan 2016 22:13:47 +0000 (22:13 +0000)]
Merge "Don'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
Nicolas Geoffray [Thu, 14 Jan 2016 21:25:16 +0000 (21:25 +0000)]
Merge "Implement irreducible loop support in optimizing."
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
Alex Light [Thu, 14 Jan 2016 18:43:36 +0000 (18:43 +0000)]
Merge "Support directly invoking interface default methods"
Roland Levillain [Thu, 14 Jan 2016 18:29:57 +0000 (18:29 +0000)]
Merge "Update `ValidateInvokeRuntime()` and HDivZeroCheck."
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
Nicolas Geoffray [Thu, 14 Jan 2016 16:18:53 +0000 (16:18 +0000)]
Merge "Fix 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
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
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."