OSDN Git Service

android-x86/art.git
8 years agoFix 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

8 years agoMerge "Disable Homogeneous space for dex2oat"
Mathieu Chartier [Thu, 21 Jan 2016 22:35:05 +0000 (22:35 +0000)]
Merge "Disable Homogeneous space for dex2oat"

8 years agoMerge "Revert "Revert "run-test: Add tests for 1.8 reflection implementations"""
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"""

8 years agoMerge "Use current pid not tid to create a backtrace map."
Christopher Ferris [Thu, 21 Jan 2016 21:01:29 +0000 (21:01 +0000)]
Merge "Use current pid not tid to create a backtrace map."

8 years agoMerge "Support for x86 popcnt."
Aart Bik [Thu, 21 Jan 2016 19:46:20 +0000 (19:46 +0000)]
Merge "Support for x86 popcnt."

8 years agoSupport for x86 popcnt.
Aart Bik [Thu, 21 Jan 2016 16:59:48 +0000 (08:59 -0800)]
Support for x86 popcnt.

Change-Id: I0fc4e745764f1749a6437a199a594f3d8ea53eef

8 years agoMerge "Add a METHOD_SUPER to the MethodType enum."
Alex Light [Thu, 21 Jan 2016 18:48:12 +0000 (18:48 +0000)]
Merge "Add a METHOD_SUPER to the MethodType enum."

8 years agoMerge "Revert "ARM64 Baker's read barrier fast path implementation.""
Mathieu Chartier [Thu, 21 Jan 2016 18:24:58 +0000 (18:24 +0000)]
Merge "Revert "ARM64 Baker's read barrier fast path implementation.""

8 years agoRevert "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

8 years agoRevert "Revert "run-test: Add tests for 1.8 reflection implementations""
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

8 years agoMerge "Implemented BitCount as an intrinsic. With unit test."
Aart Bik [Thu, 21 Jan 2016 16:11:17 +0000 (16:11 +0000)]
Merge "Implemented BitCount as an intrinsic. With unit test."

8 years agoMerge "Some minor simplifications in code and tests."
Aart Bik [Thu, 21 Jan 2016 16:10:43 +0000 (16:10 +0000)]
Merge "Some minor simplifications in code and tests."

8 years agoMerge "Add attribute to fix build."
Nicolas Geoffray [Thu, 21 Jan 2016 15:50:01 +0000 (15:50 +0000)]
Merge "Add attribute to fix build."

8 years agoAdd 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

8 years agoMerge "Move backward branch instrumentation to all branch."
Nicolas Geoffray [Thu, 21 Jan 2016 15:23:29 +0000 (15:23 +0000)]
Merge "Move backward branch instrumentation to all branch."

8 years agoMerge "ARM64 Baker's read barrier fast path implementation."
Roland Levillain [Thu, 21 Jan 2016 15:19:05 +0000 (15:19 +0000)]
Merge "ARM64 Baker's read barrier fast path implementation."

8 years agoMerge "Improves recent changes to art::JDWP::JdwpSocketState::Establish."
Roland Levillain [Thu, 21 Jan 2016 15:16:47 +0000 (15:16 +0000)]
Merge "Improves recent changes to art::JDWP::JdwpSocketState::Establish."

8 years agoMerge "ARM/ARM64: Extend support of instruction combining."
Nicolas Geoffray [Thu, 21 Jan 2016 14:48:12 +0000 (14:48 +0000)]
Merge "ARM/ARM64: Extend support of instruction combining."

8 years agoMove backward branch instrumentation to all branch.
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

8 years agoImproves recent changes to art::JDWP::JdwpSocketState::Establish.
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

8 years agoMerge "Revert "Revert "Write dex files to oat file early."""
Vladimir Marko [Thu, 21 Jan 2016 13:53:02 +0000 (13:53 +0000)]
Merge "Revert "Revert "Write dex files to oat file early."""

8 years agoMerge "Revert "run-test: Add tests for 1.8 reflection implementations""
Nicolas Geoffray [Thu, 21 Jan 2016 13:26:29 +0000 (13:26 +0000)]
Merge "Revert "run-test: Add tests for 1.8 reflection implementations""

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 agoRevert "Revert "Write dex files to oat file early.""
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

8 years agoMerge "Fix JDWP host tests on Trusty."
Roland Levillain [Thu, 21 Jan 2016 12:07:50 +0000 (12:07 +0000)]
Merge "Fix JDWP host tests on Trusty."

8 years agoFix 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

8 years agoMerge "Let Art tests use the default jack version"
Yohann Roussel [Thu, 21 Jan 2016 08:54:26 +0000 (08:54 +0000)]
Merge "Let Art tests use the default jack version"

8 years agoARM/ARM64: Extend support of instruction combining.
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

8 years agoImplemented BitCount as an intrinsic. With unit test.
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

8 years agoMerge "Fix missing case in ARM64 codegen."
Aart Bik [Thu, 21 Jan 2016 03:25:10 +0000 (03:25 +0000)]
Merge "Fix missing case in ARM64 codegen."

8 years agoFix 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

8 years agoMerge "Add stack trace info to hprof completion message"
Mathieu Chartier [Thu, 21 Jan 2016 00:46:20 +0000 (00:46 +0000)]
Merge "Add stack trace info to hprof completion message"

8 years agoSome minor simplifications in code and tests.
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

8 years agoAdd a METHOD_SUPER to the MethodType enum.
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

8 years agoUse current pid not tid to create a backtrace map.
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

8 years agoMerge "JIT: Fix incorrect CHECK"
Aart Bik [Wed, 20 Jan 2016 23:13:23 +0000 (23:13 +0000)]
Merge "JIT: Fix incorrect CHECK"

8 years agoAdd stack trace info to hprof completion message
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

8 years agoMerge "Relax the time interval the profiling data is saved."
Calin Juravle [Wed, 20 Jan 2016 22:10:15 +0000 (22:10 +0000)]
Merge "Relax the time interval the profiling data is saved."

8 years agoRelax 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

8 years agoMerge "Revert "Inline methods with loops.""
Andreas Gampe [Wed, 20 Jan 2016 21:24:20 +0000 (21:24 +0000)]
Merge "Revert "Inline methods with loops.""

8 years agoMerge "Revert "Fix gtests after loop inlining support.""
Andreas Gampe [Wed, 20 Jan 2016 21:24:09 +0000 (21:24 +0000)]
Merge "Revert "Fix gtests after loop inlining support.""

8 years agoRevert "Inline methods with loops."
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

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 agoMerge "Revert "Write dex files to oat file early.""
Vladimir Marko [Wed, 20 Jan 2016 19:13:25 +0000 (19:13 +0000)]
Merge "Revert "Write dex files to oat file early.""

8 years agoRevert "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

8 years agoMerge "Fix gtests after loop inlining support."
Nicolas Geoffray [Wed, 20 Jan 2016 18:31:31 +0000 (18:31 +0000)]
Merge "Fix gtests after loop inlining support."

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 "ART: DCHECK still too strong for String NewInstance"
David Brazdil [Wed, 20 Jan 2016 18:15:38 +0000 (18:15 +0000)]
Merge "ART: DCHECK still too strong for String NewInstance"

8 years agoART: 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

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 agoLet Art tests use the default jack version
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

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 agoARM64 Baker's read barrier fast path implementation.
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

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