OSDN Git Service
Bill Buzbee [Fri, 22 Jan 2016 14:18:14 +0000 (14:18 +0000)]
Merge "Revert "Revert "Fast ART x86 interpreter"""
Nicolas Geoffray [Fri, 22 Jan 2016 13:35:19 +0000 (13:35 +0000)]
Merge "Revert "Revert "Inline methods with loops."""
Nicolas Geoffray [Fri, 22 Jan 2016 12:41:38 +0000 (12:41 +0000)]
Revert "Revert "Inline methods with loops.""
Bug:
26689526
This reverts commit
451ad8d1be9a1949ea3c3e3a713a9e76198a8b2d.
Change-Id: If484fe4c0744254dd7568fd5006e574d621a1855
Nicolas Geoffray [Fri, 22 Jan 2016 12:36:39 +0000 (12:36 +0000)]
Merge "Revert "Revert "Revert "Change condition to opposite if lhs is constant""""
Nicolas Geoffray [Fri, 22 Jan 2016 12:35:26 +0000 (12:35 +0000)]
Revert "Revert "Revert "Change condition to opposite if lhs is constant"""
Fails two checker tests:
458-checker-instruction-simplification
537-checker-jump-over-jump
This reverts commit
884e54c8a45e49b58cb1127c8ed890f79f382601.
Change-Id: I22553e4e77662736b8b453d911a2f4e601f3a27e
Nicolas Geoffray [Fri, 22 Jan 2016 11:46:50 +0000 (11:46 +0000)]
Merge "With irreducible loops, we can have a null destination."
Nicolas Geoffray [Thu, 21 Jan 2016 18:22:23 +0000 (18:22 +0000)]
With irreducible loops, we can have a null destination.
bug:
26684047
Change-Id: I23d1c74caec4aaebc05362a588f6cfec2132bdc8
Nicolas Geoffray [Fri, 22 Jan 2016 10:59:20 +0000 (10:59 +0000)]
Merge "Disable flaky test."
Nicolas Geoffray [Fri, 22 Jan 2016 10:57:59 +0000 (10:57 +0000)]
Disable flaky test.
Change-Id: I003c2ab9ed0b0629a4b44c42a2139a99b05f40ae
Nicolas Geoffray [Fri, 22 Jan 2016 10:44:39 +0000 (10:44 +0000)]
Merge "Revert "Revert "Change condition to opposite if lhs is constant"""
Nicolas Geoffray [Fri, 22 Jan 2016 10:43:57 +0000 (10:43 +0000)]
Merge "Revert "Some minor simplifications in code and tests.""
Nicolas Geoffray [Fri, 22 Jan 2016 10:43:39 +0000 (10:43 +0000)]
Revert "Some minor simplifications in code and tests."
Fails 530-checker-loops on arm
This reverts commit
bf03fcd10a3ffa15468d335f26697b0473e45b36.
Change-Id: I739aaaccd0509d02a62ef01e797a6d45bfe941df
Nicolas Geoffray [Fri, 22 Jan 2016 09:32:30 +0000 (09:32 +0000)]
Merge "Revert "ARM/ARM64: Extend support of instruction combining.""
Nicolas Geoffray [Fri, 22 Jan 2016 09:31:52 +0000 (09:31 +0000)]
Revert "ARM/ARM64: Extend support of instruction combining."
The test fails its checker parts.
This reverts commit
debeb98aaa8950caf1a19df490f2ac9bf563075b.
Change-Id: I49929e15950c7814da6c411ecd2b640d12de80df
Nicolas Geoffray [Fri, 22 Jan 2016 08:59:04 +0000 (08:59 +0000)]
Revert "Revert "Change condition to opposite if lhs is constant""
This reverts commit
a05cacc11fa075246c38497c01b949745fadc54b.
Change-Id: Ifdc261fd4dfb2c538017fe1d69af723aafd4afef
Nicolas Geoffray [Fri, 22 Jan 2016 08:53:31 +0000 (08:53 +0000)]
Merge "Update to INFO to not confuse adb logcat readers."
Aart Bik [Fri, 22 Jan 2016 00:45:31 +0000 (00:45 +0000)]
Merge "Fix cpu-info/cpp-defines mismatch."
Aart Bik [Thu, 21 Jan 2016 23:52:58 +0000 (15:52 -0800)]
Fix cpu-info/cpp-defines mismatch.
Rationale:
__POPCNT__ is the right way to cpp-test for popcnt support
Change-Id: I3dac215f862701e04519e89ca97c159b1e4385c8
Mathieu Chartier [Thu, 21 Jan 2016 22:35:05 +0000 (22:35 +0000)]
Merge "Disable Homogeneous space for dex2oat"
Alex Light [Thu, 21 Jan 2016 22:22:39 +0000 (22:22 +0000)]
Merge "Revert "Revert "run-test: Add tests for 1.8 reflection implementations"""
Christopher Ferris [Thu, 21 Jan 2016 21:01:29 +0000 (21:01 +0000)]
Merge "Use current pid not tid to create a backtrace map."
Aart Bik [Thu, 21 Jan 2016 19:46:20 +0000 (19:46 +0000)]
Merge "Support for x86 popcnt."
Bill Buzbee [Wed, 20 Jan 2016 20:46:01 +0000 (20:46 +0000)]
Revert "Revert "Fast ART x86 interpreter""
This reverts commit
2d093a1213cc2f85b5e5e02782332657c479eb94.
Disable x86 mterp compilation on Mac host builds (but keep enabled
for all target builds).
Change-Id: Ie355279f166d2964a786646ee53f065b7e0f5ede
Aart Bik [Thu, 21 Jan 2016 16:59:48 +0000 (08:59 -0800)]
Support for x86 popcnt.
Change-Id: I0fc4e745764f1749a6437a199a594f3d8ea53eef
Alex Light [Thu, 21 Jan 2016 18:48:12 +0000 (18:48 +0000)]
Merge "Add a METHOD_SUPER to the MethodType enum."
Mathieu Chartier [Thu, 21 Jan 2016 18:24:58 +0000 (18:24 +0000)]
Merge "Revert "ARM64 Baker's read barrier fast path implementation.""
Mathieu Chartier [Thu, 21 Jan 2016 18:21:59 +0000 (18:21 +0000)]
Revert "ARM64 Baker's read barrier fast path implementation."
This reverts commit
c8f1df9965ca7f97ba9e6289f8c7a717765a59a9.
This breaks master.
Change-Id: Ic07f602af8732e2835bd11f65e3b9e766d3349c7
Alex Light [Thu, 21 Jan 2016 18:10:03 +0000 (10:10 -0800)]
Revert "Revert "run-test: Add tests for 1.8 reflection implementations""
This reverts commit
6a52d29eadb9d0a882439202303e8eae9f13bd26.
Change-Id: I05310a6e07ddcc9b2777b7df8f23e02498775256
Aart Bik [Thu, 21 Jan 2016 16:11:17 +0000 (16:11 +0000)]
Merge "Implemented BitCount as an intrinsic. With unit test."
Aart Bik [Thu, 21 Jan 2016 16:10:43 +0000 (16:10 +0000)]
Merge "Some minor simplifications in code and tests."
Nicolas Geoffray [Thu, 21 Jan 2016 15:50:01 +0000 (15:50 +0000)]
Merge "Add attribute to fix build."
Nicolas Geoffray [Thu, 21 Jan 2016 15:47:37 +0000 (15:47 +0000)]
Add attribute to fix build.
Change-Id: I833b2e55ae7cc312404bd07b98ddf89a357bc786
Nicolas Geoffray [Thu, 21 Jan 2016 15:23:29 +0000 (15:23 +0000)]
Merge "Move backward branch instrumentation to all branch."
Roland Levillain [Thu, 21 Jan 2016 15:19:05 +0000 (15:19 +0000)]
Merge "ARM64 Baker's read barrier fast path implementation."
Roland Levillain [Thu, 21 Jan 2016 15:16:47 +0000 (15:16 +0000)]
Merge "Improves recent changes to art::JDWP::JdwpSocketState::Establish."
Nicolas Geoffray [Thu, 21 Jan 2016 14:48:12 +0000 (14:48 +0000)]
Merge "ARM/ARM64: Extend support of instruction combining."
Nicolas Geoffray [Wed, 20 Jan 2016 16:25:19 +0000 (16:25 +0000)]
Move backward branch instrumentation to all branch.
This is in preparation for osr, and later dead branch profiling.
Change-Id: I4597c0784c894c310f295dd534967d67dcefa419
Roland Levillain [Thu, 21 Jan 2016 14:01:10 +0000 (14:01 +0000)]
Improves recent changes to art::JDWP::JdwpSocketState::Establish.
(This is a follow-up CL to
https://android-review.googlesource.com/#/c/197630.)
Capture the size of the work buffer passed to
gethostbyname_r in a constant and document it.
Also wrap long lines in runtime/jdwp/jdwp_socket.cc.
Change-Id: Ieb0694c56611a491c5f949ce8ed22ab3795f1883
Vladimir Marko [Thu, 21 Jan 2016 13:53:02 +0000 (13:53 +0000)]
Merge "Revert "Revert "Write dex files to oat file early."""
Nicolas Geoffray [Thu, 21 Jan 2016 13:26:29 +0000 (13:26 +0000)]
Merge "Revert "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
Vladimir Marko [Thu, 21 Jan 2016 12:15:52 +0000 (12:15 +0000)]
Revert "Revert "Write dex files to oat file early.""
This reverts commit
919f5536182890d2e03f59b961acf8f7c836ff61.
Fix linker error (Mac build):
Replace inline definition of art::ZipArchive::~ZipArchive()
with an out-of-line definition in zip_archive.cc to avoid
direct reference to CloseArchive() from libart-compiler due
to inlining. Note that libart is linked against -lziparchive
but libart-compiler is not.
Change-Id: I92620ea0200282ca7ba9b7f61a592cb6468d90d8
Roland Levillain [Thu, 21 Jan 2016 12:07:50 +0000 (12:07 +0000)]
Merge "Fix JDWP host tests on Trusty."
Roland Levillain [Thu, 21 Jan 2016 11:19:51 +0000 (11:19 +0000)]
Fix JDWP host tests on Trusty.
The buffer passed by art::JDWP::JdwpSocketState::Establish
to gethostbyname_r on Trusty was too small, leading to the
following error message during JDWP host testing:
art/runtime/jdwp/jdwp_socket.cc:283] gethostbyname_r('localhost') failed: Resolver internal error
This CL doubles the size of this buffer to avoid this
failure.
Change-Id: Ie7bb1ea8c755d869f2cc50cc2f6cc82828499706
Yohann Roussel [Thu, 21 Jan 2016 08:54:26 +0000 (08:54 +0000)]
Merge "Let Art tests use the default jack version"
Ilmir Usmanov [Fri, 11 Dec 2015 08:39:44 +0000 (11:39 +0300)]
ARM/ARM64: Extend support of instruction combining.
Combine multiply instructions in the following way:
ARM64:
MUL/NEG -> MNEG
ARM32 (32-bit integers only):
MUL/ADD -> MLA
MUL/SUB -> MLS
Change-Id: If20f2d8fb060145ab6fbceeb5a8f1a3d02e0ecdb
Aart Bik [Fri, 15 Jan 2016 22:35:12 +0000 (14:35 -0800)]
Implemented BitCount as an intrinsic. With unit test.
Rationale:
Recognizing this important operation as an intrinsic has
various advantages:
(1) having the no-side-effects/no-throw allows for
much more GVN/LICM/BCE.
(2) Some architectures, like x86_64, provide direct
support for this operation.
Performance improvements on X86_64:
CheckersEvalBench (32-bit bitboard): 27,210KNS -> 36,798KNS = + 35%
ReversiEvalBench (64-bit bitboard): 52,562KNS -> 89,086KNS = + 69%
Change-Id: I65d549b0469b7909b12c6611cdc34a8640a5751f
Aart Bik [Thu, 21 Jan 2016 03:25:10 +0000 (03:25 +0000)]
Merge "Fix missing case in ARM64 codegen."
Aart Bik [Thu, 21 Jan 2016 01:02:00 +0000 (17:02 -0800)]
Fix missing case in ARM64 codegen.
Rationale:
Rather than excluding conditions that are not handled,
changed the right-hand-side is zero optimized code
to list handled conditions explicitly instead.
bug=
26689526
Change-Id: I636e01548659c579d9e318f07bda2c24a12371e5
Mathieu Chartier [Thu, 21 Jan 2016 00:46:20 +0000 (00:46 +0000)]
Merge "Add stack trace info to hprof completion message"
Aart Bik [Mon, 4 Jan 2016 20:32:24 +0000 (12:32 -0800)]
Some minor simplifications in code and tests.
Rationale: fell through the cracks of previous "intrinsics" CL.
Change-Id: If8ada79dfd70bea991c11d2b18661b951b6c4cd4
Alex Light [Wed, 20 Jan 2016 23:50:01 +0000 (15:50 -0800)]
Add a METHOD_SUPER to the MethodType enum.
This makes some of the code simpler by disambiguating between regular
invoke-virtual and invoke-super, which have slightly different
requirements.
Change-Id: I50e86e681bb63c617c043367feb5b89e2ddbfc00
tony.ys_liu [Wed, 20 Jan 2016 10:05:31 +0000 (18:05 +0800)]
Use current pid not tid to create a backtrace map.
The BacktraceMap::Create() function assumes that the passed in
parameter is the current pid not tid. If a tid is passed in, then
the logic that creates the local map in libunwind is not used
and can bypass all of the special handling of local maps. The result
can be crashes if this map data gets out of sync with the real maps
found in the process.
Bug:
26676205
Bug: https://code.google.com/p/android/issues/detail?id=199219
Change-Id: Ibab9f7a7b99648a2cdaa185958bf6ffc368079ce
Aart Bik [Wed, 20 Jan 2016 23:13:23 +0000 (23:13 +0000)]
Merge "JIT: Fix incorrect CHECK"
Mathieu Chartier [Wed, 20 Jan 2016 22:48:36 +0000 (14:48 -0800)]
Add stack trace info to hprof completion message
Bug:
25795907
Change-Id: Iba39ac9467ed57ee37c7dd17f1b21e28c7e556c7
Calin Juravle [Wed, 20 Jan 2016 22:10:15 +0000 (22:10 +0000)]
Merge "Relax the time interval the profiling data is saved."
Calin Juravle [Tue, 19 Jan 2016 22:32:26 +0000 (14:32 -0800)]
Relax the time interval the profiling data is saved.
Bug:
26080105
Change-Id: I7c19e25760f26a4750ccdf60b33762ab3aa45e7c
Andreas Gampe [Wed, 20 Jan 2016 21:24:20 +0000 (21:24 +0000)]
Merge "Revert "Inline methods with loops.""
Andreas Gampe [Wed, 20 Jan 2016 21:24:09 +0000 (21:24 +0000)]
Merge "Revert "Fix gtests after loop inlining support.""
Andreas Gampe [Wed, 20 Jan 2016 21:23:30 +0000 (21:23 +0000)]
Revert "Inline methods with loops."
This reverts commit
82fc9bb45dbf8ff728122fb7ab72d1eb7b2f4869.
Loop inlining exposes issues with BCE.
Bug:
26689526
Change-Id: Id9983d7f9d3c5579d91e56e4699d4d939517b2dc
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
Vladimir Marko [Wed, 20 Jan 2016 19:13:25 +0000 (19:13 +0000)]
Merge "Revert "Write dex files to oat file early.""
Vladimir Marko [Wed, 20 Jan 2016 19:13:01 +0000 (19:13 +0000)]
Revert "Write dex files to oat file early."
This reverts commit
625a64aad13905d8a2454bf3cc0e874487b110d5.
Breaks the Mac build:
Undefined symbols for architecture i386:
"_CloseArchive", referenced from:
... in oat_writer.o
ld: symbol(s) not found for architecture i386
Change-Id: I21608bc51437834e1e6abde9bcbe5e7d9998197e
Nicolas Geoffray [Wed, 20 Jan 2016 18:31:31 +0000 (18:31 +0000)]
Merge "Fix 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
David Brazdil [Wed, 20 Jan 2016 18:15:38 +0000 (18:15 +0000)]
Merge "ART: DCHECK still too strong for String NewInstance"
David Brazdil [Wed, 20 Jan 2016 17:00:19 +0000 (17:00 +0000)]
ART: DCHECK still too strong for String NewInstance
Even though the presence of a irreducible loop phi is the reason why
String.<init> may see its first input not being the NewInstance, it
may see a different phi from the same cycle. We have to relax the
corresponding DCHECK.
Bug:
26676472
Change-Id: Iba6fffa74833c57aad8aa07dc382ff6b93838de1
Vladimir Marko [Wed, 20 Jan 2016 17:40:37 +0000 (17:40 +0000)]
Merge "Write dex files to oat file early."
Yohann Roussel [Tue, 19 Jan 2016 22:29:29 +0000 (23:29 +0100)]
Let Art tests use the default jack version
(cherry picked from commit
261cf1b14a06c86e4a19972eabb5b43bc82bb717)
Change-Id: I7184a752b067e59fc28804cba92df62e713a0785
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."
Roland Levillain [Wed, 20 Jan 2016 16:38:05 +0000 (16:38 +0000)]
ARM64 Baker's read barrier fast path implementation.
Introduce an ARM64 fast path implementation in Optimizing
for Baker's read barriers (for both heap reference loads and
GC root loads). The marking phase of the read barrier is
performed by a slow path, invoking the runtime entry point
artReadBarrierMark.
Other read barrier algorithms continue to use the original
slow path based implementation, which has been renamed as
GenerateReadBarrierSlow/GenerateReadBarrierForRootSlow.
Bug:
12687968
Bug:
26601270
Change-Id: I60da15249b58a8ee1a065ed9be2c4e438ee17150
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