OSDN Git Service

android-x86/art.git
8 years agoMerge "Revert "Run type propagation after inliner only when needed.""
Calin Juravle [Mon, 26 Oct 2015 12:39:04 +0000 (12:39 +0000)]
Merge "Revert "Run type propagation after inliner only when needed.""

8 years agoRevert "Run type propagation after inliner only when needed."
Calin Juravle [Mon, 26 Oct 2015 12:38:43 +0000 (12:38 +0000)]
Revert "Run type propagation after inliner only when needed."

This reverts commit 4e5dd521063beae1706410419f19c7e224db50fe.

Change-Id: I0de261d14dd3f71abe05f9bc71744820cf23b937

8 years agoMerge "Run type propagation after inliner only when needed."
Calin Juravle [Mon, 26 Oct 2015 12:06:24 +0000 (12:06 +0000)]
Merge "Run type propagation after inliner only when needed."

8 years agoMerge "Fix dependencies when not building with Jack."
Nicolas Geoffray [Mon, 26 Oct 2015 08:57:38 +0000 (08:57 +0000)]
Merge "Fix dependencies when not building with Jack."

8 years agoMerge "Disable store elimination on singleton object."
Mingyao Yang [Sat, 24 Oct 2015 00:44:17 +0000 (00:44 +0000)]
Merge "Disable store elimination on singleton object."

8 years agoDisable store elimination on singleton object.
Mingyao Yang [Sat, 24 Oct 2015 00:08:42 +0000 (17:08 -0700)]
Disable store elimination on singleton object.

Stores into singleton objects that are finalizable need to be kept.
Disable those store eliminations before we have the finalizable info available.

Change-Id: I281e0c442588ec291b1002fdc9b59a144c15dc8e

8 years agoMerge "Add ArenaUniquePtr"
Mathieu Chartier [Fri, 23 Oct 2015 20:28:06 +0000 (20:28 +0000)]
Merge "Add ArenaUniquePtr"

8 years agoAdd ArenaUniquePtr
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Add ArenaUniquePtr

Motivation is to use it for adding arenas in the verifier.
Also added arena tags to prevent double free errors.

Bug: 10921004
Change-Id: I545f3374eceb9a6a35e738cb899d1493098fb760

8 years agoMerge "enum operator<<() script fails with do { } while cond;"
Andreas Gampe [Fri, 23 Oct 2015 18:40:24 +0000 (18:40 +0000)]
Merge "enum operator<<() script fails with do { } while cond;"

8 years agoMerge "Move ArenaBitVector into the runtime"
Mathieu Chartier [Fri, 23 Oct 2015 18:30:26 +0000 (18:30 +0000)]
Merge "Move ArenaBitVector into the runtime"

8 years agoMove ArenaBitVector into the runtime
Mathieu Chartier [Fri, 16 Oct 2015 00:47:48 +0000 (17:47 -0700)]
Move ArenaBitVector into the runtime

Motivation is using arenas in the verifier.

Bug: 10921004
Change-Id: I3c7ed369194b2309a47b12a621e897e0f2f65fcf

8 years agoMerge "ART: Speed up thread stack tracing for ANRs"
Andreas Gampe [Fri, 23 Oct 2015 18:20:20 +0000 (18:20 +0000)]
Merge "ART: Speed up thread stack tracing for ANRs"

8 years agoART: Speed up thread stack tracing for ANRs
Christopher Ferris [Mon, 27 Jan 2014 05:36:13 +0000 (21:36 -0800)]
ART: Speed up thread stack tracing for ANRs

Share a BacktraceMap for all threads being dumped, which speeds up
ANR dumping. Results from Nexus 9 (average of five):

Before: 0.587s
After:  0.206s

Change-Id: Ia70e0dbd39049318c02de561e7b95258d4849467

8 years agoMerge "Revert "Revert "load store elimination."""
Mingyao Yang [Fri, 23 Oct 2015 17:45:57 +0000 (17:45 +0000)]
Merge "Revert "Revert "load store elimination."""

8 years agoFix dependencies when not building with Jack.
Nicolas Geoffray [Fri, 23 Oct 2015 16:27:59 +0000 (17:27 +0100)]
Fix dependencies when not building with Jack.

Change-Id: I6528a835974c4915872974265f2d135f754169b5

8 years agoRun type propagation after inliner only when needed.
Calin Juravle [Mon, 19 Oct 2015 15:19:23 +0000 (16:19 +0100)]
Run type propagation after inliner only when needed.

Currently we run a type propagation pass unconditionally after the
inliner. This change looks at the returned value (if any) and runs a
minimal type propagation only if its type has changed.

Change-Id: I0dd72bd481219081e8a978d2632426afc980d73a

8 years agoMerge "Disable two tests that require IPv6."
Nicolas Geoffray [Fri, 23 Oct 2015 15:15:40 +0000 (15:15 +0000)]
Merge "Disable two tests that require IPv6."

8 years agoDisable two tests that require IPv6.
Nicolas Geoffray [Fri, 23 Oct 2015 15:06:49 +0000 (16:06 +0100)]
Disable two tests that require IPv6.

bug:25178637
Change-Id: I4615cb4d2f2d9cbb050d02cb77b36215c24fd43b

8 years agoMerge "ARM64: Instruction simplification for array accesses."
Roland Levillain [Fri, 23 Oct 2015 15:00:57 +0000 (15:00 +0000)]
Merge "ARM64: Instruction simplification for array accesses."

8 years agoMerge "Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."
Roland Levillain [Fri, 23 Oct 2015 13:09:43 +0000 (13:09 +0000)]
Merge "Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."

8 years agoDisable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning.
Roland Levillain [Fri, 23 Oct 2015 12:25:35 +0000 (13:25 +0100)]
Disable the ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning.

The current heap poisoning instrumentation of this intrinsic
does not always work properly when heap poisoning in
enabled, hence this quick fix to let the build & test
infrastructure turn green again.

Bug: 12687968
Change-Id: I546a392a61e429cd13209261f806d0aed8d1cd86

8 years agoMerge "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic."
Roland Levillain [Fri, 23 Oct 2015 10:09:28 +0000 (10:09 +0000)]
Merge "Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic."

8 years agoMerge "MIPS64: Add tests for rotation, and shift instructions"
Andreas Gampe [Fri, 23 Oct 2015 04:29:26 +0000 (04:29 +0000)]
Merge "MIPS64: Add tests for rotation, and shift instructions"

8 years agoRevert "Revert "load store elimination.""
Mingyao Yang [Thu, 22 Oct 2015 22:40:58 +0000 (15:40 -0700)]
Revert "Revert "load store elimination.""

This reverts commit 8030c4100d2586fac39ed4007c61ee91d4ea4f25.

Change-Id: I79558d85484be5f5d04e4a44bea7201fece440f0

8 years agoMerge "Release ahat version 0.2."
Richard Uhler [Thu, 22 Oct 2015 19:07:58 +0000 (19:07 +0000)]
Merge "Release ahat version 0.2."

8 years agoMerge "MIPS: Initial version of optimizing compiler for MIPS32"
Nicolas Geoffray [Thu, 22 Oct 2015 17:27:50 +0000 (17:27 +0000)]
Merge "MIPS: Initial version of optimizing compiler for MIPS32"

8 years agoMIPS: Initial version of optimizing compiler for MIPS32
Goran Jakovljevic [Tue, 25 Aug 2015 14:11:42 +0000 (16:11 +0200)]
MIPS: Initial version of optimizing compiler for MIPS32

Change-Id: I370388e8d5de52c7001552b513877ef5833aa621

8 years agoMerge "Do not run the verifier when deopting optimized frames."
Nicolas Geoffray [Thu, 22 Oct 2015 13:49:37 +0000 (13:49 +0000)]
Merge "Do not run the verifier when deopting optimized frames."

8 years agoDo not run the verifier when deopting optimized frames.
Nicolas Geoffray [Tue, 20 Oct 2015 14:52:58 +0000 (15:52 +0100)]
Do not run the verifier when deopting optimized frames.

The stack maps contain all the required information.

Change-Id: I709e72b3de0d76a4203a3a004f093071e7865642

8 years agoMerge "Fix art-run-tests dependencies"
Yohann Roussel [Thu, 22 Oct 2015 10:46:36 +0000 (10:46 +0000)]
Merge "Fix art-run-tests dependencies"

8 years agoFix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.
Roland Levillain [Thu, 22 Oct 2015 10:38:49 +0000 (11:38 +0100)]
Fix heap poisoning in UnsafeCASObject x86/x86-64 intrinsic.

Properly handle the case when the same object is passed to
sun.misc.Unsafe.compareAndSwapObject for the `obj` and
`newValue` arguments (named `base` and `value` in the
intrinsic implementation) and re-enable this intrinsic.

Also convert some reinterpret_casts to down_casts.

Bug: 12687968
Change-Id: I82167cfa77840ae2cdb45b9f19f5f530858fe7e8

8 years agoMerge "Use binary search for FindDeclaredInstance/StaticField"
Mathieu Chartier [Wed, 21 Oct 2015 18:01:42 +0000 (18:01 +0000)]
Merge "Use binary search for FindDeclaredInstance/StaticField"

8 years agoMerge "Fix destruction order in Dex2Oat."
Vladimir Marko [Wed, 21 Oct 2015 16:53:55 +0000 (16:53 +0000)]
Merge "Fix destruction order in Dex2Oat."

8 years agoMerge "JDWP: fix possible JdwpEvent memory leak"
Sebastien Hertz [Wed, 21 Oct 2015 16:28:32 +0000 (16:28 +0000)]
Merge "JDWP: fix possible JdwpEvent memory leak"

8 years agoMerge "Block signals before invoking special or user handlers"
Calin Juravle [Wed, 21 Oct 2015 15:56:16 +0000 (15:56 +0000)]
Merge "Block signals before invoking special or user handlers"

8 years agoUse binary search for FindDeclaredInstance/StaticField
Mathieu Chartier [Wed, 21 Oct 2015 01:30:03 +0000 (18:30 -0700)]
Use binary search for FindDeclaredInstance/StaticField

Before:
real  1m18.157s
user  1m8.167s
sys 0m8.071s

After:
real  1m12.943s
user  1m3.223s
sys 0m7.881s

Perf results:
FindDeclaredStaticField: 1.78% -> 0.11%
__GI___strncmp_ssse3: 2.45% -> 0.87%

Bug: 10921004

Change-Id: Ice7d3ce2635d6cd2de5574055375d9e20712d241

8 years agoFix art-run-tests dependencies
Yohann Roussel [Tue, 21 Jul 2015 14:25:44 +0000 (16:25 +0200)]
Fix art-run-tests dependencies

Their classpath dependency was missing

(cherry picked from commit 6c8d5962573e2df393594bbcee80d07f16edafe3)

Change-Id: Id4f489c140585c62b6c105533b97837612c6199c

8 years agoJDWP: fix possible JdwpEvent memory leak
Sebastien Hertz [Wed, 21 Oct 2015 14:18:58 +0000 (16:18 +0200)]
JDWP: fix possible JdwpEvent memory leak

Fixes possible memory leak when registering new JdwpEvent but the
Count modifier is invalid. This is done by using a std::unique_ptr
with a custom delete function. It also allows to easily introduce
more modifier checks in the future.

Bug: 14076832
Change-Id: I339ffb1297165ff85ab924e5e7618d336df5612b

8 years agoMerge "Mark 2 libcore tests as failing."
Nicolas Geoffray [Wed, 21 Oct 2015 13:12:27 +0000 (13:12 +0000)]
Merge "Mark 2 libcore tests as failing."

8 years agoMark 2 libcore tests as failing.
Nicolas Geoffray [Wed, 21 Oct 2015 12:59:28 +0000 (13:59 +0100)]
Mark 2 libcore tests as failing.

bug:25136848
Change-Id: If1cde2f3a0140a5eb9c138a462ecc9a30e73b8eb

8 years agoMerge "Remove the magic 32 constant and ensure alignment."
Nicolas Geoffray [Wed, 21 Oct 2015 11:14:39 +0000 (11:14 +0000)]
Merge "Remove the magic 32 constant and ensure alignment."

8 years agoRemove the magic 32 constant and ensure alignment.
Nicolas Geoffray [Wed, 21 Oct 2015 11:07:31 +0000 (12:07 +0100)]
Remove the magic 32 constant and ensure alignment.

Change-Id: I383315bf3cd5f0b8634e2982da55d5d864009a91

8 years agoenum operator<<() script fails with do { } while cond;
Bruce Hoult [Mon, 12 Oct 2015 01:12:00 +0000 (10:12 +0900)]
enum operator<<() script fails with do { } while cond;

The script assumes that a line containing a '}' and a ';' will only
and always signal the end of a scope.
Unfortunately, this also matches '} while (myCond);',
thus incorrectly thinking it has reached the end of a scope.

This can result in enums being emitted without scope resolution
(or with insufficient scope resolution), cause compile errors.

Change-Id: I6e1b3453b941bff93ddd0b2a9fd3950182668728
Signed-off-by: randy.jeong <randy.jeong@samsung.com>
8 years agoMerge "Inliner: make sure the returned value is in the outer graph."
Calin Juravle [Wed, 21 Oct 2015 10:15:20 +0000 (10:15 +0000)]
Merge "Inliner: make sure the returned value is in the outer graph."

8 years agoMerge "Use DlMallocSpace for the JIT code cache."
Nicolas Geoffray [Wed, 21 Oct 2015 10:00:34 +0000 (10:00 +0000)]
Merge "Use DlMallocSpace for the JIT code cache."

8 years agoUse DlMallocSpace for the JIT code cache.
Nicolas Geoffray [Thu, 15 Oct 2015 12:53:04 +0000 (13:53 +0100)]
Use DlMallocSpace for the JIT code cache.

- Also tidy up some code in the JIT compiler.
- And mprotect code space to be writable only when allocating.

Change-Id: I46ea5c029aec489f2af63452de31db3736aebc20

8 years agoMerge "ART: Disable Clang for arm"
Stephen Hines [Wed, 21 Oct 2015 06:34:26 +0000 (06:34 +0000)]
Merge "ART: Disable Clang for arm"

8 years agoART: Disable Clang for arm
Andreas Gampe [Wed, 21 Oct 2015 05:10:26 +0000 (22:10 -0700)]
ART: Disable Clang for arm

Disable Clang for arm32 until a fix for the issue is found.

Bug: 25130937
Change-Id: Ia33f387b89ac8d1e8eac9a2782c45f038b9e8a1a

8 years agoMerge "ART: Fix left-shift of negative numbers"
Andreas Gampe [Wed, 21 Oct 2015 04:54:04 +0000 (04:54 +0000)]
Merge "ART: Fix left-shift of negative numbers"

8 years agoART: Fix left-shift of negative numbers
Andreas Gampe [Wed, 21 Oct 2015 04:08:52 +0000 (21:08 -0700)]
ART: Fix left-shift of negative numbers

Shifting negative numbers is undefined.

Change-Id: I0c32a3fcf372eae74507a5f2383edbfaf5c6830c

8 years agoMerge "Fix typos."
Alex Light [Tue, 20 Oct 2015 21:28:27 +0000 (21:28 +0000)]
Merge "Fix typos."

8 years agoMerge "Change dex_location_ from const char* to std::string."
Richard Uhler [Tue, 20 Oct 2015 19:29:14 +0000 (19:29 +0000)]
Merge "Change dex_location_ from const char* to std::string."

8 years agoMerge "Switch ahat test to use core-optimizing-pic.art."
Richard Uhler [Tue, 20 Oct 2015 19:26:52 +0000 (19:26 +0000)]
Merge "Switch ahat test to use core-optimizing-pic.art."

8 years agoInliner: make sure the returned value is in the outer graph.
Calin Juravle [Tue, 20 Oct 2015 13:54:07 +0000 (14:54 +0100)]
Inliner: make sure the returned value is in the outer graph.

The returned value may be a constant or a parameter value. If so, it
will be in the inlined entry_block and (before this CL) we would not
update its block or graph. This CL fixes this and makes sure that the
returned value belongs to the outer graph.

Change-Id: Ie296f0d5a320c33f39eb187df6d328371ccf6500

8 years agoMIPS64: Add tests for rotation, and shift instructions
Chris Larsen [Mon, 19 Oct 2015 21:17:16 +0000 (14:17 -0700)]
MIPS64: Add tests for rotation, and shift instructions

Change-Id: I5611cb5c638c6be193739cbe859cb4ff4074a5fa

8 years agoFix typos.
Alex Light [Tue, 20 Oct 2015 17:49:48 +0000 (10:49 -0700)]
Fix typos.

Change-Id: Ie2198e3bb4b978c638de12db34547b4311d85eb5

8 years agoMerge "Disable the x86 & x86-64 UnsafeCASObject intrinsic with heap poisoning."
Roland Levillain [Tue, 20 Oct 2015 17:48:04 +0000 (17:48 +0000)]
Merge "Disable the x86 & x86-64 UnsafeCASObject intrinsic with heap poisoning."

8 years agoMerge "Disable test 961-default-iface-resolution-generated with gcstress"
Alex Light [Tue, 20 Oct 2015 17:37:11 +0000 (17:37 +0000)]
Merge "Disable test 961-default-iface-resolution-generated with gcstress"

8 years agoMerge "MIPS64: Disassembler support for rotate instructions."
Andreas Gampe [Tue, 20 Oct 2015 17:23:45 +0000 (17:23 +0000)]
Merge "MIPS64: Disassembler support for rotate instructions."

8 years agoDisable test 961-default-iface-resolution-generated with gcstress
Alex Light [Tue, 20 Oct 2015 17:23:32 +0000 (10:23 -0700)]
Disable test 961-default-iface-resolution-generated with gcstress

The test takes too long with gcstress and can cause timeouts.

Change-Id: I99d16e882650ea73d07f4292fcfba0869f5b7ed1

8 years agoRelease ahat version 0.2.
Richard Uhler [Tue, 20 Oct 2015 17:03:38 +0000 (10:03 -0700)]
Release ahat version 0.2.

* Update ahat to use perflib studio-1.4
* Add some help tips.

Change-Id: I5aeafb27ff9e55f2ad1a6316184b8d3838e1df7c

8 years agoDisable the x86 & x86-64 UnsafeCASObject intrinsic with heap poisoning.
Roland Levillain [Tue, 20 Oct 2015 16:55:06 +0000 (17:55 +0100)]
Disable the x86 & x86-64 UnsafeCASObject intrinsic with heap poisoning.

The current heap poisoning instrumentation of this intrinsic
does not always work properly when heap poisoning in
enabled, hence this quick fix to let the build & test
infrastructure turn green again.

Bug: 12687968
Change-Id: I03702a057fb6f07134e926e2c1c2780f47e3a50a

8 years agoFix destruction order in Dex2Oat.
Vladimir Marko [Tue, 20 Oct 2015 10:20:09 +0000 (11:20 +0100)]
Fix destruction order in Dex2Oat.

In case of a failure (say, --image= pointing to non-existent
directory), the image_writer_ may not be destroyed in
CreateImageFile() and it will be destroyed in Dex2Oat's
destructor instead. However, ImageWriter owns a MemMap, so
it must be destroyed before MemMap::Shutdown() called from
Runtime's destructor. In release builds without leak checks,
we intentionally leak the runtime, so we don't hit the
destruction order issue. However, debug build was crashing
on the DCHECK(maps_ != nullptr) in MemMap destructor.

This change cleans up the destruction order and deliberately
leaks even more owned data in release builds without leak
checks.

Change-Id: Ib7f305bb676589d0379ecaafe6a53eeae208beaa

8 years agoMerge "New attempt at fixing mac build."
Nicolas Geoffray [Tue, 20 Oct 2015 12:36:24 +0000 (12:36 +0000)]
Merge "New attempt at fixing mac build."

8 years agoNew attempt at fixing mac build.
Nicolas Geoffray [Tue, 20 Oct 2015 12:35:38 +0000 (13:35 +0100)]
New attempt at fixing mac build.

Change-Id: I00e3df55e65eb5edb4e8dd244bb7f8918dd942d4

8 years agoMerge "Fix mac build."
Nicolas Geoffray [Tue, 20 Oct 2015 11:56:02 +0000 (11:56 +0000)]
Merge "Fix mac build."

8 years agoFix mac build.
Nicolas Geoffray [Tue, 20 Oct 2015 11:55:20 +0000 (12:55 +0100)]
Fix mac build.

Change-Id: I7229a628a619164eea22735bcaed507428ab054a

8 years agoMerge "Remove ArtCode."
Nicolas Geoffray [Tue, 20 Oct 2015 11:41:49 +0000 (11:41 +0000)]
Merge "Remove ArtCode."

8 years agoRemove ArtCode.
Nicolas Geoffray [Fri, 16 Oct 2015 16:13:34 +0000 (17:13 +0100)]
Remove ArtCode.

- Instead use OatQuickMethodHeader.
- Various cleanups now that we don't have all those
  ArtMethod -> ArtCode -> OatQuickMethodHeader indirections.

As a consequence of this cleanup, exception handling got a bit
faster.

ParserCombinators benchmark (exception intensive) on x64: (lower is better)
Before:
ParserCombinators(RunTime): 1062500.0 us.
After:
ParserCombinators(RunTime): 833000.0 us.

Change-Id: Idac917b6f1b0dc254ad68fb3781cd61bccadb0f3

8 years agoMerge "Fix induction_var_range_test."
Calin Juravle [Tue, 20 Oct 2015 10:32:22 +0000 (10:32 +0000)]
Merge "Fix induction_var_range_test."

8 years agoFix induction_var_range_test.
Calin Juravle [Tue, 20 Oct 2015 10:29:36 +0000 (11:29 +0100)]
Fix induction_var_range_test.

Change-Id: I43101c5e35f4c516ea4ba3137631508f12703412

8 years agoMerge "Revert "Revert "optimizing: propagate type information of arguments"""
Calin Juravle [Tue, 20 Oct 2015 09:38:07 +0000 (09:38 +0000)]
Merge "Revert "Revert "optimizing: propagate type information of arguments"""

8 years agoMIPS64: Disassembler support for rotate instructions.
Chris Larsen [Mon, 19 Oct 2015 22:17:16 +0000 (15:17 -0700)]
MIPS64: Disassembler support for rotate instructions.

Also, tighten the tests for recognizing the various shift commands. The
tests, previously, would be unable to distinguish between "shift right
logical" and "rotate right" commands. In particular:

- SRLV vs. ROTRV
- DSRLV vs. DROTRV,
- DSRL vs. DROTR, and
- DSRL32 vs. DROTR32

Change-Id: I7a6df8ab0d76fd3d34b1207da9915369ad84fa97

8 years agoMerge "MIPS64: Add intrinsic support for bit rotation"
Andreas Gampe [Mon, 19 Oct 2015 22:06:00 +0000 (22:06 +0000)]
Merge "MIPS64: Add intrinsic support for bit rotation"

8 years agoMIPS64: Add intrinsic support for bit rotation
Chris Larsen [Sat, 3 Oct 2015 00:25:58 +0000 (17:25 -0700)]
MIPS64: Add intrinsic support for bit rotation

- int java.lang.Integer.rotateLeft(int i, int distance)
- int java.lang.Long.rotateLeft(long i, int distance)

Change-Id: I048ebf310265c6b20a80108673a7931cbeee0513

8 years agoMerge "Added ability to generate induction range code."
Aart Bik [Mon, 19 Oct 2015 20:52:50 +0000 (20:52 +0000)]
Merge "Added ability to generate induction range code."

8 years agoMerge "Keep dex files live in class table"
Mathieu Chartier [Mon, 19 Oct 2015 19:54:44 +0000 (19:54 +0000)]
Merge "Keep dex files live in class table"

8 years agoAdded ability to generate induction range code.
Aart Bik [Thu, 15 Oct 2015 00:44:55 +0000 (17:44 -0700)]
Added ability to generate induction range code.

Rationale: used by dynamic BCE (done in another CL).

Change-Id: Ia6ce75da57b5298fba74622822ae0bae69c74188

8 years agoKeep dex files live in class table
Mathieu Chartier [Sat, 17 Oct 2015 19:46:42 +0000 (12:46 -0700)]
Keep dex files live in class table

The DexFile.loadClass API allows callers to load classes using a
dex file without having that dex file owned by the specified class
loader. We now add the dex file to the class table to make sure it
stays live until the class loader is unreachable.

Fixes interpreter gcstress test 087 with 64 bit.

Bug: 22720414
Change-Id: Ia4341149f45b6293312f8b275c7a68cea179f718

8 years agoMerge "Generalize codegen and simplification of deopt."
Aart Bik [Mon, 19 Oct 2015 18:42:59 +0000 (18:42 +0000)]
Merge "Generalize codegen and simplification of deopt."

8 years agoGeneralize codegen and simplification of deopt.
Aart Bik [Mon, 19 Oct 2015 18:05:03 +0000 (11:05 -0700)]
Generalize codegen and simplification of deopt.

Rationale: the de-opt instruction is very similar to an if,
           so the existing assumption that it always has a
           conditional "under the hood" is very unsafe, since
           optimizations may have replaced conditionals with
           actual values; this CL generalizes handling of deopt.

Change-Id: I1c6cb71fdad2af869fa4714b38417dceed676459

8 years agoMerge "ART: Replace an "ALWAYS_INLINE" with "inline" to fix build."
Vladimir Marko [Mon, 19 Oct 2015 17:20:53 +0000 (17:20 +0000)]
Merge "ART: Replace an "ALWAYS_INLINE" with "inline" to fix build."

8 years agoART: Replace an "ALWAYS_INLINE" with "inline" to fix build.
Vladimir Marko [Mon, 19 Oct 2015 17:18:27 +0000 (18:18 +0100)]
ART: Replace an "ALWAYS_INLINE" with "inline" to fix build.

Change-Id: I61e6806737589266b36ab7a33561da7e1f8c02ca

8 years agoMerge "Clean up OatFile."
Vladimir Marko [Mon, 19 Oct 2015 16:57:22 +0000 (16:57 +0000)]
Merge "Clean up OatFile."

8 years agoMerge "MIPS64: Add intrinsic support for bit rotation"
Andreas Gampe [Mon, 19 Oct 2015 15:45:55 +0000 (15:45 +0000)]
Merge "MIPS64: Add intrinsic support for bit rotation"

8 years agoClean up OatFile.
Vladimir Marko [Fri, 16 Oct 2015 10:23:41 +0000 (11:23 +0100)]
Clean up OatFile.

In Setup(), avoid reading beyond the end and use the %zu
format specifier instead of %zd for size_t output.

Make the .bss section pointers non-const.

Change-Id: Ic8f066effe8037b552d8e911c6a5d17370d79ff4

8 years agoMIPS64: Add intrinsic support for bit rotation
Chris Larsen [Wed, 23 Sep 2015 00:54:15 +0000 (17:54 -0700)]
MIPS64: Add intrinsic support for bit rotation

- int java.lang.Integer.rotateRight(int i, int distance)
- int java.lang.Long.rotateRight(long i, int distance)

Assembler tests for new MIPS instructions will be provided in a
separate patch.

Change-Id: I6dd4786e2d5f674bf56ff3d5afd321bb1bef589e

8 years agoMerge "MIPS64: Add intrinsics support for trailing zeros"
Andreas Gampe [Mon, 19 Oct 2015 15:12:57 +0000 (15:12 +0000)]
Merge "MIPS64: Add intrinsics support for trailing zeros"

8 years agoMIPS64: Add intrinsics support for trailing zeros
Chris Larsen [Tue, 22 Sep 2015 23:02:40 +0000 (16:02 -0700)]
MIPS64: Add intrinsics support for trailing zeros

- int java.lang.Integer.numberOfTrailingZeros(int i)
- int java.lang.Long.numberOfTrailingZeros(long i)

Change-Id: I0fc1c2629738de9047313b6511b490639eef68f3

8 years agoARM64: Instruction simplification for array accesses.
Alexandre Rames [Mon, 19 Oct 2015 09:10:41 +0000 (10:10 +0100)]
ARM64: Instruction simplification for array accesses.

HArrayGet and HArraySet with variable indexes generate two
instructions on arm64, like

    add temp, obj, #data_offset
    ldr out, [temp, index LSL #shift_amount]

When we have multiple accesses to the same array, the initial `add`
instruction is redundant.

This patch introduces the first instruction simplification in the
arm64-specific instruction simplification pass. It splits HArrayGet
and HArraySet using the new arm64-specific IR HIntermediateAddress.
After that we run GVN again to squash the multiple occurrences of
HIntermediateAddress.

Change-Id: I2e3d12fbb07fed07b2cb2f3f47f99f5a032f8312

8 years agoBlock signals before invoking special or user handlers
jgu21 [Tue, 22 Sep 2015 07:47:43 +0000 (03:47 -0400)]
Block signals before invoking special or user handlers

1. Block signals marked in sa_mask before invoking user handler
   if not in old style.
2. Block all signals before invoking special signal handler.

Change-Id: Ie1283e97ed28ee3421df584352cd62cb107264bc
Signed-off-by: jgu21 <jinghui.gu@intel.com>
8 years agoMerge "MIPS64: Implement intrinsics from sun.misc.Unsafe:"
Andreas Gampe [Sat, 17 Oct 2015 00:17:20 +0000 (00:17 +0000)]
Merge "MIPS64: Implement intrinsics from sun.misc.Unsafe:"

8 years agoMIPS64: Implement intrinsics from sun.misc.Unsafe:
Chris Larsen [Sat, 5 Sep 2015 06:38:16 +0000 (23:38 -0700)]
MIPS64: Implement intrinsics from sun.misc.Unsafe:

- int getInt(Object, long)
- int getIntVolatile(Object, long)
- long getLong(Object, long)
- long getLongVolatile(Object, long)
- Object getObject(Object, long)
- Object getObjectVolatile(Object, long)
- void putInt(Object, long, int)
- void putOrderedInt(Object, long, int)
- void putIntVolatile(Object, long, int)
- void putObject(Object, long, Object)
- void putOrderedObject(Object, long, Object)
- void putObjectVolatile(Object, long, Object)
- void putLong(Object, long, long)
- void putOrderedLong(Object, long, long)
- void putLongVolatile(Object, long, long)

The compareAndSwap*() functions will be delivered in a separate patch.

Change-Id: I94238254b2f9df017d58fa9a4bb38632f6479472

8 years agoMerge "Allow changing the optimization level of a build with env variable."
Alex Light [Sat, 17 Oct 2015 00:00:30 +0000 (00:00 +0000)]
Merge "Allow changing the optimization level of a build with env variable."

8 years agoMerge "MIPS64: Additional assember tests:"
Andreas Gampe [Fri, 16 Oct 2015 22:17:56 +0000 (22:17 +0000)]
Merge "MIPS64: Additional assember tests:"

8 years agoMerge "MIPS64: Implement intrinsics from java.lang.String:"
Andreas Gampe [Fri, 16 Oct 2015 21:42:10 +0000 (21:42 +0000)]
Merge "MIPS64: Implement intrinsics from java.lang.String:"

8 years agoChange dex_location_ from const char* to std::string.
Richard Uhler [Thu, 15 Oct 2015 22:12:23 +0000 (15:12 -0700)]
Change dex_location_ from const char* to std::string.

Because we tend to use the dex_location_ as an std::string fairly
often.

Change-Id: Ida9624c9cb12c8ad30577146f1e6e97e25edc155

8 years agoMerge "Revert "Revert "Implement rosalloc fast path in assembly for 32 bit arm."""
Hiroshi Yamauchi [Fri, 16 Oct 2015 17:18:53 +0000 (17:18 +0000)]
Merge "Revert "Revert "Implement rosalloc fast path in assembly for 32 bit arm."""

8 years agoMerge "Fix mips64 cfi test"
Mathieu Chartier [Fri, 16 Oct 2015 16:34:26 +0000 (16:34 +0000)]
Merge "Fix mips64 cfi test"

8 years agoFix mips64 cfi test
Mathieu Chartier [Fri, 16 Oct 2015 16:29:31 +0000 (09:29 -0700)]
Fix mips64 cfi test

Change-Id: I93224f29b23473fb9f2f6631a62949fdf2e8f888