OSDN Git Service

android-x86/art.git
8 years agoMerge "Yet another python3 dependency."
Nicolas Geoffray [Thu, 14 Jan 2016 22:22:34 +0000 (22:22 +0000)]
Merge "Yet another python3 dependency."

8 years agoYet another python3 dependency.
Nicolas Geoffray [Thu, 14 Jan 2016 22:21:14 +0000 (22:21 +0000)]
Yet another python3 dependency.

Change-Id: Iefdfdef707c028d4bb6087a2d1f424f5503366b2

8 years agoMerge "Don't allow thread suspension in ProfilingInfo::Create"
Mathieu Chartier [Thu, 14 Jan 2016 22:13:47 +0000 (22:13 +0000)]
Merge "Don't allow thread suspension in ProfilingInfo::Create"

8 years agoDon't allow thread suspension in ProfilingInfo::Create
Mathieu Chartier [Thu, 14 Jan 2016 18:24:28 +0000 (10:24 -0800)]
Don't allow thread suspension in ProfilingInfo::Create

AddSamples calls ProfilingInfo::Create which would occasionally
transition to suspended and wait for code cache GC to complete.
This CL removes the thread state change and
WaitForPotentialCollectionToComplete which caused thread suspension.

The thread suspension caused occasional stale object references in
InvokeVirtualOrInterface since moving GC could occur.
If this_object became stale, we would put it's stale class into the
profile info, resulting in a GC crash.

Bug: 26086970
Change-Id: I5a86561098d72b7be80e8a3bcf3d8401403a0b00

8 years agoMerge "Implement irreducible loop support in optimizing."
Nicolas Geoffray [Thu, 14 Jan 2016 21:25:16 +0000 (21:25 +0000)]
Merge "Implement irreducible loop support in optimizing."

8 years agoMerge "Support directly invoking interface default methods"
Alex Light [Thu, 14 Jan 2016 18:43:36 +0000 (18:43 +0000)]
Merge "Support directly invoking interface default methods"

8 years agoMerge "Update `ValidateInvokeRuntime()` and HDivZeroCheck."
Roland Levillain [Thu, 14 Jan 2016 18:29:57 +0000 (18:29 +0000)]
Merge "Update `ValidateInvokeRuntime()` and HDivZeroCheck."

8 years agoMerge "Fix braino in parameters passed."
Nicolas Geoffray [Thu, 14 Jan 2016 16:18:53 +0000 (16:18 +0000)]
Merge "Fix braino in parameters passed."

8 years agoFix braino in parameters passed.
Nicolas Geoffray [Thu, 14 Jan 2016 16:16:35 +0000 (16:16 +0000)]
Fix braino in parameters passed.

Change-Id: I4683586184617bb8ac4f377b873263a339d1d960

8 years agoImplement irreducible loop support in optimizing.
Nicolas Geoffray [Tue, 5 Jan 2016 15:55:41 +0000 (15:55 +0000)]
Implement irreducible loop support in optimizing.

So we don't fallback to the interpreter in the presence of
irreducible loops.

Implications:
- A loop pre-header does not necessarily dominate a loop header.
- Non-constant redundant phis will be kept in loop headers, to
  satisfy our linear scan register allocation algorithm.
- while-graph optimizations, such as gvn, licm, lse, and dce
  need to know when they are dealing with irreducible loops.

Change-Id: I2cea8934ce0b40162d215353497c7f77d6c9137e

8 years agoMerge "MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or with 32-bit...
Roland Levillain [Thu, 14 Jan 2016 13:09:10 +0000 (13:09 +0000)]
Merge "MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or with 32-bit FPUs."

8 years agoMerge "Fix lint error."
Nicolas Geoffray [Thu, 14 Jan 2016 13:08:55 +0000 (13:08 +0000)]
Merge "Fix lint error."

8 years agoFix lint error.
Nicolas Geoffray [Thu, 14 Jan 2016 13:08:12 +0000 (13:08 +0000)]
Fix lint error.

Change-Id: I8584d243a1cf55170e1d7bc1570e4ad1218fde5f

8 years agoMerge "Ignore 141-class-unload failures with JIT and CC."
Roland Levillain [Thu, 14 Jan 2016 12:56:21 +0000 (12:56 +0000)]
Merge "Ignore 141-class-unload failures with JIT and CC."

8 years agoMerge "Ignore GZIPOutputStreamTest failures with concurrent collector."
Roland Levillain [Thu, 14 Jan 2016 12:55:18 +0000 (12:55 +0000)]
Merge "Ignore GZIPOutputStreamTest failures with concurrent collector."

8 years agoIgnore 141-class-unload failures with JIT and CC.
Roland Levillain [Thu, 14 Jan 2016 12:40:41 +0000 (12:40 +0000)]
Ignore 141-class-unload failures with JIT and CC.

This test sometimes fails on ART Builbot's x86-64 concurrent
collector configuration with JIT.

Disable it while we investigate.

Bug: 25866001
Change-Id: I8ed04fc1d9c920ff73032bc3f06ede85044fd925

8 years agoIgnore GZIPOutputStreamTest failures with concurrent collector.
Roland Levillain [Thu, 14 Jan 2016 12:18:10 +0000 (12:18 +0000)]
Ignore GZIPOutputStreamTest failures with concurrent collector.

This test sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's
x86-64 concurrent collector configuration:
* libcore.java.util.zip.GZIPOutputStreamTest#testSyncFlushEnabled

Disable it while we investigate.

Bug: 26507762
Change-Id: I12db20be14dfce8f6f668207bc91d57c2cb24c9f

8 years agoMerge "Don't encode a DexRegisterMap if there is no live register."
Nicolas Geoffray [Thu, 14 Jan 2016 12:22:39 +0000 (12:22 +0000)]
Merge "Don't encode a DexRegisterMap if there is no live register."

8 years agoMerge "Support --perf with jitted code."
Nicolas Geoffray [Thu, 14 Jan 2016 12:22:11 +0000 (12:22 +0000)]
Merge "Support --perf with jitted code."

8 years agoMerge "MIPS: Improve conversion between ints and floats."
Roland Levillain [Thu, 14 Jan 2016 12:01:59 +0000 (12:01 +0000)]
Merge "MIPS: Improve conversion between ints and floats."

8 years agoMerge "MIPS: HRor clean-up"
Roland Levillain [Thu, 14 Jan 2016 10:55:47 +0000 (10:55 +0000)]
Merge "MIPS: HRor clean-up"

8 years agoMIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or
Alexey Frunze [Mon, 11 Jan 2016 23:51:16 +0000 (15:51 -0800)]
MIPS32: don't use R2+ instructions (mthc1, mfhc1) on MIPS32R1 or
with 32-bit FPUs.

Change-Id: If66932fb39cdd5946f6c05c82036191ad405a877

8 years agoMerge "Rosalloc fast path in assembly for MIPS32"
Hans Boehm [Thu, 14 Jan 2016 02:02:22 +0000 (02:02 +0000)]
Merge "Rosalloc fast path in assembly for MIPS32"

8 years agoMIPS: Improve conversion between ints and floats.
Alexey Frunze [Tue, 22 Dec 2015 23:15:03 +0000 (15:15 -0800)]
MIPS: Improve conversion between ints and floats.

Change-Id: I767fe9623cc14e8480c31e305725eb5221cac282

8 years agoMerge "Add test for calling into destroyed JNI env"
Mathieu Chartier [Thu, 14 Jan 2016 01:16:24 +0000 (01:16 +0000)]
Merge "Add test for calling into destroyed JNI env"

8 years agoAdd test for calling into destroyed JNI env
Mathieu Chartier [Thu, 14 Jan 2016 00:20:26 +0000 (16:20 -0800)]
Add test for calling into destroyed JNI env

The test calls into ExceptionCheck with a destroyed JNI env and
expects to never come back out.

Bug: 18577101
Change-Id: I96832c78d20de4a7d8a9ddf2d0636f08fc4ed9f2

8 years agoMIPS: HRor clean-up
Alexey Frunze [Thu, 14 Jan 2016 00:24:25 +0000 (16:24 -0800)]
MIPS: HRor clean-up

This is a follow up to
https://android-review.googlesource.com/#/c/194590/.

Change-Id: Ia37faa02736e5dd54c1e71fd2a4d94e074746757

8 years agoMerge "ART: Mterp read barrier fix + minor cleanup"
Bill Buzbee [Wed, 13 Jan 2016 22:01:53 +0000 (22:01 +0000)]
Merge "ART: Mterp read barrier fix + minor cleanup"

8 years agoART: Mterp read barrier fix + minor cleanup
buzbee [Wed, 13 Jan 2016 21:06:22 +0000 (13:06 -0800)]
ART: Mterp read barrier fix + minor cleanup

Read barrier support relies on hooks in common code for loading
object references.  Mterp missed doing this for iget-object-quick.
Also, added missing conditional assembly around debug event logging
for mterp fallback and deleted an unnecessary store.

Bug: 26510411

Change-Id: I2d5b27c4090be58d3cfcb14309d14ccabf04a6f5

8 years agoMerge "Fixed bug with hoisting/deopting in taken-block instead of preheader. With...
Aart Bik [Wed, 13 Jan 2016 20:53:18 +0000 (20:53 +0000)]
Merge "Fixed bug with hoisting/deopting in taken-block instead of preheader. With a fail-before pass-after regression test."

8 years agoMerge "Reduce code size by sharing slow paths."
Aart Bik [Wed, 13 Jan 2016 19:15:15 +0000 (19:15 +0000)]
Merge "Reduce code size by sharing slow paths."

8 years agoMerge "Sort output of a find command in makefile"
Alex Light [Wed, 13 Jan 2016 18:49:30 +0000 (18:49 +0000)]
Merge "Sort output of a find command in makefile"

8 years agoFixed bug with hoisting/deopting in taken-block instead of preheader.
Aart Bik [Tue, 12 Jan 2016 22:12:47 +0000 (14:12 -0800)]
Fixed bug with hoisting/deopting in taken-block instead of preheader.
With a fail-before pass-after regression test.

Rationale:
Hoisting and deopting should be done in the taken-block for safety
of the evaluation *unless* the code was in the original loop header,
and thus always taken.

https://code.google.com/p/android/issues/detail?id=198697

bug: 26506884

Change-Id: I1cf121292559fd2570ad67587ec3bc8e8a85a92a

8 years agoMerge "Add DWARF type information generation."
David Srbecky [Wed, 13 Jan 2016 15:58:42 +0000 (15:58 +0000)]
Merge "Add DWARF type information generation."

8 years agoAdd DWARF type information generation.
Tamas Berghammer [Tue, 5 Jan 2016 14:29:02 +0000 (14:29 +0000)]
Add DWARF type information generation.

Emit native debugging information for types which are used during
compilation.

Change-Id: If28d19f60294494b7c6db8400d179494bebe9e61

8 years agoMerge "Report DWARF debug information for JITed code."
David Srbecky [Wed, 13 Jan 2016 15:53:43 +0000 (15:53 +0000)]
Merge "Report DWARF debug information for JITed code."

8 years agoSupport --perf with jitted code.
Nicolas Geoffray [Tue, 12 Jan 2016 16:41:10 +0000 (16:41 +0000)]
Support --perf with jitted code.

Change-Id: I76f29d815234e9506efc59d4865780e52b2381a1

8 years agoReport DWARF debug information for JITed code.
David Srbecky [Fri, 18 Dec 2015 15:04:48 +0000 (15:04 +0000)]
Report DWARF debug information for JITed code.

Change-Id: Ia5b2133c54386932c76c22774cf3d2ae61e0925f

8 years agoMerge "MIPS64: Fix stub_test"
Vladimir Marko [Wed, 13 Jan 2016 15:14:30 +0000 (15:14 +0000)]
Merge "MIPS64: Fix stub_test"

8 years agoUpdate `ValidateInvokeRuntime()` and HDivZeroCheck.
Alexandre Rames [Wed, 13 Jan 2016 14:34:39 +0000 (14:34 +0000)]
Update `ValidateInvokeRuntime()` and HDivZeroCheck.

Change-Id: I35beab2777a8c83bd508d56966afa1ceff9ee24f

8 years agoMerge "HDeoptimize can also trigger GC."
Nicolas Geoffray [Wed, 13 Jan 2016 14:10:34 +0000 (14:10 +0000)]
Merge "HDeoptimize can also trigger GC."

8 years agoHDeoptimize can also trigger GC.
Nicolas Geoffray [Wed, 13 Jan 2016 13:56:20 +0000 (13:56 +0000)]
HDeoptimize can also trigger GC.

bug:26532563
Change-Id: Idaa294fb500ab820c7b45e37747e96f0b455f663

8 years agoMIPS64: Fix stub_test
Goran Jakovljevic [Wed, 13 Jan 2016 13:41:02 +0000 (14:41 +0100)]
MIPS64: Fix stub_test

$t0-$t3 registers are stored on stack, since they may be
used after assembly code even if they are in clobber list.

Change-Id: I26e991e4ecd8a27d6638046266202eeb46a2bbcf

8 years agoMerge "Fix memory fences in the ARM64 UnsafeCas intrinsics."
Roland Levillain [Wed, 13 Jan 2016 13:24:59 +0000 (13:24 +0000)]
Merge "Fix memory fences in the ARM64 UnsafeCas intrinsics."

8 years agoMerge "Disable --generate-debug-info by default in all cases."
David Srbecky [Wed, 13 Jan 2016 12:52:37 +0000 (12:52 +0000)]
Merge "Disable --generate-debug-info by default in all cases."

8 years agoMerge "Set side effects to HNullCheck and HBoundsCheck."
Nicolas Geoffray [Wed, 13 Jan 2016 12:39:41 +0000 (12:39 +0000)]
Merge "Set side effects to HNullCheck and HBoundsCheck."

8 years agoSet side effects to HNullCheck and HBoundsCheck.
Nicolas Geoffray [Wed, 13 Jan 2016 12:09:39 +0000 (12:09 +0000)]
Set side effects to HNullCheck and HBoundsCheck.

Both can trigger GC, as they will call NullPointerException or
IndexOutOfBoundsException constructors.

bug:26532563
Change-Id: Id9e42f0450caaaf365630989e1b36e98add46c89

8 years agoMerge "MIPS: Implement HRor"
Vladimir Marko [Wed, 13 Jan 2016 10:39:05 +0000 (10:39 +0000)]
Merge "MIPS: Implement HRor"

8 years agoReduce code size by sharing slow paths.
Aart Bik [Thu, 7 Jan 2016 23:33:50 +0000 (15:33 -0800)]
Reduce code size by sharing slow paths.

Rationale:
Sharing identical slow path code reduces code size.

Background:
Currently, slow paths with the same dex-pc, same physical register
spilling code, and identical stack maps are shared (making this
only useful for deopt slow paths). The newly introduced mechanism
is sufficiently general to allow future improvements by e.g.
allowing different dex-pc (by passing this to runtime) or even
the kind of slow paths (by passing runtime addresses to the slowpath).

Change-Id: I819615c47b4fd98440a241f681f93e4fc22d12e0

8 years agoSort output of a find command in makefile
Alex Light [Tue, 12 Jan 2016 19:10:23 +0000 (11:10 -0800)]
Sort output of a find command in makefile

This should mean that there will be fewer spurious kati rebuilds of
the ninja files due to the output changing.

Change-Id: I26beb4ae1d95fe591c3854772b804718b41fe53c

8 years agoMerge "Disable mterp for the read barrier config."
Hiroshi Yamauchi [Tue, 12 Jan 2016 23:45:26 +0000 (23:45 +0000)]
Merge "Disable mterp for the read barrier config."

8 years agoSupport directly invoking interface default methods
Alex Light [Mon, 21 Sep 2015 18:36:30 +0000 (11:36 -0700)]
Support directly invoking interface default methods

With the Java 8 Language one is allowed to directly call default
interface methods of interfaces one (directly) implements through the
use of the super keyword. We support this behavior through the
invoke-super opcode with the target being an interface.

We add 3 tests for this behavior.

Currently only supports slow-path interpreter.

Invoke-super is currently extremely slow.

Bug: 24618811

Change-Id: I7e06e17326f7dbae0116bd7dfefca151f0092bd2

8 years agoMerge "Correct value_type for some TrackingAllocators."
Dan Albert [Tue, 12 Jan 2016 23:02:00 +0000 (23:02 +0000)]
Merge "Correct value_type for some TrackingAllocators."

8 years agoMerge "Do not leave intermediate addresses across Java calls."
Mathieu Chartier [Tue, 12 Jan 2016 22:38:30 +0000 (22:38 +0000)]
Merge "Do not leave intermediate addresses across Java calls."

8 years agoCorrect value_type for some TrackingAllocators.
Dan Albert [Tue, 12 Jan 2016 22:23:14 +0000 (14:23 -0800)]
Correct value_type for some TrackingAllocators.

The standard says that the value_type for the allocator of a
map/multimap must be std::pair<const Key, T>. These instances were not
properly carrying the const, and the updated version of libc++ has a
static_assert to make sure that map::allocator_type and
allocator::value_type really do match (as mismatches will tickle
undefined behavior in libc++).

Change-Id: I7a3a49fccea4ecc4579929d9ddd7872c62b60f5f

8 years agoMerge "Revert "Disable flaky test on host.""
Mathieu Chartier [Tue, 12 Jan 2016 21:47:56 +0000 (21:47 +0000)]
Merge "Revert "Disable flaky test on host.""

8 years agoMerge "Disable mterp if unstarted runtime"
Bill Buzbee [Tue, 12 Jan 2016 21:23:35 +0000 (21:23 +0000)]
Merge "Disable mterp if unstarted runtime"

8 years agoDisable mterp if unstarted runtime
buzbee [Tue, 12 Jan 2016 20:45:51 +0000 (12:45 -0800)]
Disable mterp if unstarted runtime

Mterp uses entrypoints that assume the runtime is started.  If it isn't,
revert to the fallback interpreter.

Bug: 26510411

Change-Id: I08278981ee1e7bc21163c6584426cc18a5e261fc

8 years agoRevert "Disable flaky test on host."
Mathieu Chartier [Tue, 12 Jan 2016 21:13:29 +0000 (13:13 -0800)]
Revert "Disable flaky test on host."

Bug: 26483935

This reverts commit 72f7236cbc00e3a3f93dffb627417d666ee22518.

Change-Id: I57eb2b8315d274ad751aa2054a298a556c7b0cd9

8 years agoMerge "Add sleep in SuspendAllDaemonThreadsForShutdown"
Mathieu Chartier [Tue, 12 Jan 2016 21:10:06 +0000 (21:10 +0000)]
Merge "Add sleep in SuspendAllDaemonThreadsForShutdown"

8 years agoDisable mterp for the read barrier config.
Hiroshi Yamauchi [Tue, 12 Jan 2016 20:05:08 +0000 (12:05 -0800)]
Disable mterp for the read barrier config.

For now. Volantis boots with this.

Bug: 26510411
Bug: 12687968
Change-Id: Ifc9799404306c973ad1085c42c399d6eef05dcc6

8 years agoMerge "Disable tests while investigating."
Nicolas Geoffray [Tue, 12 Jan 2016 18:21:51 +0000 (18:21 +0000)]
Merge "Disable tests while investigating."

8 years agoDisable tests while investigating.
Nicolas Geoffray [Tue, 12 Jan 2016 18:21:05 +0000 (18:21 +0000)]
Disable tests while investigating.

Change-Id: Idc7b81df6e41794728e6cf990f64dcb1b0544289

8 years agoAdd sleep in SuspendAllDaemonThreadsForShutdown
Mathieu Chartier [Mon, 11 Jan 2016 18:19:06 +0000 (10:19 -0800)]
Add sleep in SuspendAllDaemonThreadsForShutdown

Only sleep if there are still daemon threads. Since we have already
shutdown the runtime daemons, this is a rare case. The goal of the
sleep is to leave daemon threads time to become blocked in a place
where they ideally will not touch runtime state.

Bug: 26483935
Bug: 18577101

Change-Id: Iad12209e771720523620e0a3829a75ec4647f58b

8 years agoMerge "Ignore ZipFileTest and ZipInputStreamTest failures with CC."
Roland Levillain [Tue, 12 Jan 2016 16:39:37 +0000 (16:39 +0000)]
Merge "Ignore ZipFileTest and ZipInputStreamTest failures with CC."

8 years agoIgnore ZipFileTest and ZipInputStreamTest failures with CC.
Roland Levillain [Tue, 12 Jan 2016 16:24:52 +0000 (16:24 +0000)]
Ignore ZipFileTest and ZipInputStreamTest failures with CC.

These tests sometimes fail with a
java.util.concurrent.TimeoutException on ART Builbot's x86
and x86-64 concurrent collector configurations:
* libcore.java.util.zip.ZipFileTest#testZipFileWithLotsOfEntries
* libcore.java.util.zip.ZipInputStreamTest#testLongMessage

Bug: 26507762
Change-Id: I344d3ce4fbb4709025861ef2f009d768cc7524b8

8 years agoDo not leave intermediate addresses across Java calls.
Nicolas Geoffray [Tue, 12 Jan 2016 16:03:16 +0000 (16:03 +0000)]
Do not leave intermediate addresses across Java calls.

bug:26472446
Change-Id: Ie4a9b5fe6f1d61a76c71eceaa2299fe55512c612

8 years agoDisable --generate-debug-info by default in all cases.
David Srbecky [Tue, 12 Jan 2016 14:54:03 +0000 (14:54 +0000)]
Disable --generate-debug-info by default in all cases.

The option is disabled by default unless explicitly enabled.
In particular, it is no longer enabled in debug builds,
and the --debuggable option does not affect it.

I want to use this flag to control the debug data generated
by the JIT as well.  Since this takes run-time memory,
I want to avoid enabling it unless explicitly requested.

Change-Id: I2e2afa2f56bb0a113e92cc2e26e00dceac1689ca

8 years agoMerge "Revert "Change condition to opposite if lhs is constant""
Nicolas Geoffray [Tue, 12 Jan 2016 14:01:41 +0000 (14:01 +0000)]
Merge "Revert "Change condition to opposite if lhs is constant""

8 years agoRevert "Change condition to opposite if lhs is constant"
Nicolas Geoffray [Tue, 12 Jan 2016 14:00:24 +0000 (14:00 +0000)]
Revert "Change condition to opposite if lhs is constant"

Breaks arm64

This reverts commit f9f196c55f3b25c3b09350cd8ed5d7ead31f1757.

Change-Id: Ie1027a218154b8ded6c1c8f0007720f5be68780d

8 years agoMerge "Change condition to opposite if lhs is constant"
Nicolas Geoffray [Tue, 12 Jan 2016 13:09:59 +0000 (13:09 +0000)]
Merge "Change condition to opposite if lhs is constant"

8 years agoChange condition to opposite if lhs is constant
Anton Shamin [Tue, 8 Sep 2015 11:33:16 +0000 (17:33 +0600)]
Change condition to opposite if lhs is constant

Swap operands if lhs is constant. Handeled unsigned comparison
in insruction simplifier. Fixed NaN comparison: no matter what
bias is set result of Equal and NotEqual operations should not
depend on it. Added checker tests.

Change-Id: I5a9ac25fb10f2705127a52534867cee43368ed1b
Signed-off-by: Anton Shamin <anton.shamin@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
8 years agoMerge "Optimizing/ARM: Fix CmpConstant()."
Vladimir Marko [Tue, 12 Jan 2016 12:19:19 +0000 (12:19 +0000)]
Merge "Optimizing/ARM: Fix CmpConstant()."

8 years agoMerge "Clean up SwapSpace."
Vladimir Marko [Tue, 12 Jan 2016 12:19:03 +0000 (12:19 +0000)]
Merge "Clean up SwapSpace."

8 years agoFix memory fences in the ARM64 UnsafeCas intrinsics.
Roland Levillain [Tue, 12 Jan 2016 12:01:04 +0000 (12:01 +0000)]
Fix memory fences in the ARM64 UnsafeCas intrinsics.

Also add some comments for the ARM UnsafeCas intrinsics.

Change-Id: Ic6e4f2c37e468db4582ac8709496a80f3c1f9a6b

8 years agoMerge "Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC."
Roland Levillain [Tue, 12 Jan 2016 11:42:52 +0000 (11:42 +0000)]
Merge "Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC."

8 years agoIgnore libcore.java.lang.OldSystemTest#test_gc failures with CC.
Roland Levillain [Tue, 12 Jan 2016 11:10:06 +0000 (11:10 +0000)]
Ignore libcore.java.lang.OldSystemTest#test_gc failures with CC.

This test is sometimes failing on ART Builbot's ARMv8
concurrent collector configuration.

Bug: 26155567
Change-Id: I0a6ead8e9136d4125b58c86e13ce9a359bcb113e

8 years agoMerge "Fast Art interpreter"
Bill Buzbee [Mon, 11 Jan 2016 21:06:06 +0000 (21:06 +0000)]
Merge "Fast Art interpreter"

8 years agoFast Art interpreter
buzbee [Fri, 6 Mar 2015 22:43:04 +0000 (14:43 -0800)]
Fast Art interpreter

Add a Dalvik-style fast interpreter to Art.
Three primary deficiencies in the existing Art interpreter
will be addressed:

1.  Structural inefficiencies (primarily the bloated
    fetch/decode/execute overhead of the C++ interpreter
    implementation).
2.  Stack memory wastage.  Each managed-language invoke
    adds a full copy of the interpreter's compiler-generated
    locals on the shared stack.  We're at the mercy of
    the compiler now in how much memory is wasted here.  An
    assembly based interpreter can manage memory usage more
    effectively.
3.  Shadow frame model, which not only spends twice the memory
    to store the Dalvik virtual registers, but causes vreg stores
    to happen twice.

This CL mostly deals with #1 (but does provide some stack memory
savings).  Subsequent CLs will address the other issues.

Current status:
   Passes all run-tests.
   Phone boots interpret-only.
   2.5x faster than Clang-compiled Art goto interpreter on fetch/decode/execute
       microbenchmark, 5x faster than gcc-compiled goto interpreter.
   1.6x faster than Clang goto on Caffeinemark overall
   2.0x faster than Clang switch on Caffeinemark overall
   68% of Dalvik interpreter performance on Caffeinemark (still much slower,
       primarily because of poor invoke performance and lack of execute-inline)
   Still nearly an order of magnitude slower than Dalvik on invokes
       (but slightly better than Art Clang goto interpreter.
   Importantly, saves ~200 bytes of stack memory per invoke (but still
       wastes ~400 relative to Dalvik).

What's needed:
   Remove the (large quantity of) bring-up hackery in place.
   Integrate into the build mechanism.  I'm still using the old Dalvik manual
       build step to generate assembly code from the stub files.
   Remove the suspend check hack.  For bring-up purposes, I'm using an explicit
       suspend check (like the other Art interpreters).  However, we should be
       doing a Dalvik style suspend check via the table base switch mechanism.
       This should be done during the alternative interpreter activation.
   General cleanup.
   Add CFI info.
   Update the new target bring-up README documentation.
   Add other targets.

In later CLs:
   Consolidate mterp handlers for expensive operations (such as new-instance) with
       the code used by the switch interpreter.  No need to duplicate the code for
       heavyweight operations (but will need some refactoring to align).
   Tuning - some fast paths needs to be moved down to the assembly handlers,
       rather than being dealt with in the out-of-line code.
   JIT profiling.  Currently, the fast interpreter is used only in the fast
       case - no instrumentation, no transactions and no access checks. We
       will want to implement fast + JIT-profiling as the alternate fast
       interpreter.  All other cases can still fall back to the reference
       interpreter.
   Improve invoke performance.  We're nearly an order of magnitude slower than
       Dalvik here.  Some of that is unavoidable, but I suspect we can do
       better.
   Add support for our other targets.

Change-Id: I43e25dc3d786fb87245705ac74a87274ad34fedc

8 years agoMerge "Isolate concurrent collector related libcore failures."
Roland Levillain [Mon, 11 Jan 2016 16:54:52 +0000 (16:54 +0000)]
Merge "Isolate concurrent collector related libcore failures."

8 years agoMerge "Remove ElfFile::GdbJITSupport"
David Srbecky [Mon, 11 Jan 2016 16:46:17 +0000 (16:46 +0000)]
Merge "Remove ElfFile::GdbJITSupport"

8 years agoMerge "ART: Use libopenjdkd"
Andreas Gampe [Mon, 11 Jan 2016 16:34:49 +0000 (16:34 +0000)]
Merge "ART: Use libopenjdkd"

8 years agoIsolate concurrent collector related libcore failures.
Roland Levillain [Mon, 11 Jan 2016 15:51:00 +0000 (15:51 +0000)]
Isolate concurrent collector related libcore failures.

Expect CC-related failures on the CC configuration only.

Bug: 25883050
Change-Id: I326f727fef3eb8048a08d195ddcee85e1319810b

8 years agoRemove ElfFile::GdbJITSupport
David Srbecky [Mon, 11 Jan 2016 15:25:22 +0000 (15:25 +0000)]
Remove ElfFile::GdbJITSupport

This method notified gdb about loaded ELF file.
Since we use dlopen to load the ELF file now, it should not be needed.

Note that the method had nothing to do with JIT compiler.

Change-Id: I967495c39e42112023a495ce5fac25b97669d1d5

8 years agoRosalloc fast path in assembly for MIPS32
Pavle Batuta [Wed, 2 Dec 2015 17:39:01 +0000 (18:39 +0100)]
Rosalloc fast path in assembly for MIPS32

Tested with GCBench (http://hboehm.info/gc/gc_bench/GCBench.java):

Measurements (less is better):
11546 -> 10730 [ms] (7.1%)

Change-Id: Ie00442314b18295e68c2e91251e6dcf8c2a8eae2

8 years agoMerge "Generate Nops to ensure that debug stack maps have distinct PC."
David Srbecky [Mon, 11 Jan 2016 14:47:37 +0000 (14:47 +0000)]
Merge "Generate Nops to ensure that debug stack maps have distinct PC."

8 years agoMerge "Fix brainos in makefiles."
Nicolas Geoffray [Mon, 11 Jan 2016 14:25:03 +0000 (14:25 +0000)]
Merge "Fix brainos in makefiles."

8 years agoFix brainos in makefiles.
Nicolas Geoffray [Mon, 11 Jan 2016 14:23:36 +0000 (14:23 +0000)]
Fix brainos in makefiles.

Change-Id: If6f9aae6fc18bf5a28e7804303dcdb319dea0cb2

8 years agoMerge "Don't use std::abs on INT_MIN/LONG_MIN, it's undefined."
Nicolas Geoffray [Mon, 11 Jan 2016 14:20:52 +0000 (14:20 +0000)]
Merge "Don't use std::abs on INT_MIN/LONG_MIN, it's undefined."

8 years agoMerge "Fix "check" file, and mark test as failing on device."
Nicolas Geoffray [Mon, 11 Jan 2016 14:20:11 +0000 (14:20 +0000)]
Merge "Fix "check" file, and mark test as failing on device."

8 years agoFix "check" file, and mark test as failing on device.
Nicolas Geoffray [Mon, 11 Jan 2016 14:18:52 +0000 (14:18 +0000)]
Fix "check" file, and mark test as failing on device.

Change-Id: Ie1f9a2e86f94ccc3c9859ac172ee4b3da0f85d63

8 years agoGenerate Nops to ensure that debug stack maps have distinct PC.
David Srbecky [Fri, 8 Jan 2016 18:13:53 +0000 (18:13 +0000)]
Generate Nops to ensure that debug stack maps have distinct PC.

Change-Id: I5740ec958a20d236634b66df0e675382ed5c16fc

8 years agoMerge "Emit an error message when looking for String#offset."
Nicolas Geoffray [Mon, 11 Jan 2016 12:01:16 +0000 (12:01 +0000)]
Merge "Emit an error message when looking for String#offset."

8 years agoMerge "Disable flaky test on host."
Nicolas Geoffray [Mon, 11 Jan 2016 11:56:22 +0000 (11:56 +0000)]
Merge "Disable flaky test on host."

8 years agoDisable flaky test on host.
Nicolas Geoffray [Mon, 11 Jan 2016 11:45:27 +0000 (11:45 +0000)]
Disable flaky test on host.

bug:26483935
Change-Id: I6e1f7b2d33182969d08d75d217ff0891920dc35b

8 years agoMerge "ART: Do not build Checker tests with `dx --no-optimize`"
David Brazdil [Mon, 11 Jan 2016 11:37:52 +0000 (11:37 +0000)]
Merge "ART: Do not build Checker tests with `dx --no-optimize`"

8 years agoDon't use std::abs on INT_MIN/LONG_MIN, it's undefined.
Nicolas Geoffray [Mon, 4 Jan 2016 08:39:49 +0000 (08:39 +0000)]
Don't use std::abs on INT_MIN/LONG_MIN, it's undefined.

bug:25494265

Change-Id: I560a3a589b92440020285f9adfdf7c9efb06217c

8 years agoMerge "Revert "Disable test while investigating.""
Shubham Ajmera [Mon, 11 Jan 2016 10:29:59 +0000 (10:29 +0000)]
Merge "Revert "Disable test while investigating.""

8 years agoART: Do not build Checker tests with `dx --no-optimize`
David Brazdil [Mon, 11 Jan 2016 10:27:13 +0000 (10:27 +0000)]
ART: Do not build Checker tests with `dx --no-optimize`

Change-Id: Ice9298b92cde5486db40ccdef43cca6d36179d2c

8 years agoRevert "Disable test while investigating."
Shubham Ajmera [Sun, 10 Jan 2016 00:00:25 +0000 (00:00 +0000)]
Revert "Disable test while investigating."

Change #195560 fixes the test.
This reverts commit 1c58d6980541eb469f4860f00a77ba8c729efef9.

Change-Id: Idbfb0c5d2fbc1796f7dd1056181b5fc912a065a3