OSDN Git Service

android-x86/art.git
9 years agoMerge "Add JNI trampoline for mips32."
Ian Rogers [Sat, 22 Nov 2014 01:32:30 +0000 (01:32 +0000)]
Merge "Add JNI trampoline for mips32."

9 years agoMerge "Fix possible array access issue"
Ian Rogers [Sat, 22 Nov 2014 00:57:04 +0000 (00:57 +0000)]
Merge "Fix possible array access issue"

9 years agoFix possible array access issue
Vladimir [Mon, 13 Oct 2014 06:41:38 +0000 (13:41 +0700)]
Fix possible array access issue

The issue with possible array access in the DisassembleExtendedInstr
method should be fixed. The input opcode should be extended one.
Additional check for it was added.
Also additional CHECK for memory allocation should be added.

Change-Id: If114572a5bc99587d5effd588e7bd955c16d8318
Signed-off-by: Vladimir <vladimir.a.ivanov@intel.com>
9 years agoMerge "ART: Fix crash with unreachable void check-cast"
Ian Rogers [Sat, 22 Nov 2014 00:45:10 +0000 (00:45 +0000)]
Merge "ART: Fix crash with unreachable void check-cast"

9 years agoMerge "LSRA: Fix X86 shuffle flags"
Ian Rogers [Sat, 22 Nov 2014 00:23:11 +0000 (00:23 +0000)]
Merge "LSRA: Fix X86 shuffle flags"

9 years agoMerge "test: Fix assember_arm_test to compile on gcc"
Igor Murashkin [Sat, 22 Nov 2014 00:19:58 +0000 (00:19 +0000)]
Merge "test: Fix assember_arm_test to compile on gcc"

9 years agotest: Fix assember_arm_test to compile on gcc
Igor Murashkin [Sat, 22 Nov 2014 00:16:53 +0000 (16:16 -0800)]
test: Fix assember_arm_test to compile on gcc

Bug: 18484809
Change-Id: I2677de5fdb418091bc753271ad38972f375c96d8

9 years agoMerge "ART: X86 vectorized reduce may use incorrect extract index"
Ian Rogers [Sat, 22 Nov 2014 00:15:29 +0000 (00:15 +0000)]
Merge "ART: X86 vectorized reduce may use incorrect extract index"

9 years agoART: X86 vectorized reduce may use incorrect extract index
Razvan A Lupusoru [Wed, 29 Oct 2014 02:29:52 +0000 (19:29 -0700)]
ART: X86 vectorized reduce may use incorrect extract index

In the case of reduction to memory VR, the extract index is ignored.
However, it should not be ignored because it is needed for pextr instruction.

Change-Id: I46a0c76218a0553e677225e403786522c079d27d
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoMerge "Clean up MIRGraph pass temporaries."
Vladimir Marko [Fri, 21 Nov 2014 19:05:46 +0000 (19:05 +0000)]
Merge "Clean up MIRGraph pass temporaries."

9 years agoMerge "Fix oatdump to use OatHeader pointer size"
Mathieu Chartier [Fri, 21 Nov 2014 18:15:38 +0000 (18:15 +0000)]
Merge "Fix oatdump to use OatHeader pointer size"

9 years agoFix oatdump to use OatHeader pointer size
Mathieu Chartier [Fri, 21 Nov 2014 01:08:58 +0000 (17:08 -0800)]
Fix oatdump to use OatHeader pointer size

Bug: 18473190
Change-Id: If505b4f62105899f4f1257d3bccda3e6eb0dcd7c

(cherry picked from commit c934e483ceabbd589422beea1fa35f5182ecfa99)

9 years agoClean up MIRGraph pass temporaries.
Vladimir Marko [Fri, 21 Nov 2014 13:41:32 +0000 (13:41 +0000)]
Clean up MIRGraph pass temporaries.

Create a union of pass-specific structs with temporaries
instead of shared temporaries with common names.

Change-Id: Id80d3b12c48139af1580b0839c21e07e7afd0ed5

9 years agoMerge "Add card mark to filled-new-array."
Vladimir Marko [Fri, 21 Nov 2014 10:12:32 +0000 (10:12 +0000)]
Merge "Add card mark to filled-new-array."

9 years agoMerge "ART: Fix uninitialized value in arm32 assembler test"
Andreas Gampe [Fri, 21 Nov 2014 04:24:16 +0000 (04:24 +0000)]
Merge "ART: Fix uninitialized value in arm32 assembler test"

9 years agoART: Fix uninitialized value in arm32 assembler test
Andreas Gampe [Fri, 21 Nov 2014 04:22:31 +0000 (20:22 -0800)]
ART: Fix uninitialized value in arm32 assembler test

The first_ field was meant to be initialized for each generation
invocation.

Change-Id: If4d36d84afe24d8ddc6bb9d25b85c764285e166a

9 years agoMerge "ART: Fix arm32 assembler test."
Andreas Gampe [Fri, 21 Nov 2014 01:06:41 +0000 (01:06 +0000)]
Merge "ART: Fix arm32 assembler test."

9 years agoART: Fix arm32 assembler test.
Andreas Gampe [Fri, 21 Nov 2014 01:01:10 +0000 (17:01 -0800)]
ART: Fix arm32 assembler test.

Drop the requested architecture from armv7ve to armv7-a, but tune
for cortex-a15. That allows sdiv and udiv, but has the advantage
that it works on gcc 4.8.

Change-Id: I92cca55ce01334119d8a402103ec295c66d34ca6

9 years agoMerge "Restrict FDO to only apply to target build."
Christopher Ferris [Fri, 21 Nov 2014 00:07:42 +0000 (00:07 +0000)]
Merge "Restrict FDO to only apply to target build."

9 years agoRestrict FDO to only apply to target build.
Dehao Chen [Thu, 13 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Restrict FDO to only apply to target build.

Change-Id: I0ef4199b34c123a17eaf2c2f18bc8a1496e03cf8

9 years agoMerge "dex2oat: Pack likely-dirty objects together when generating the boot image"
Igor Murashkin [Thu, 20 Nov 2014 22:53:58 +0000 (22:53 +0000)]
Merge "dex2oat: Pack likely-dirty objects together when generating the boot image"

9 years agodex2oat: Pack likely-dirty objects together when generating the boot image
Igor Murashkin [Fri, 14 Nov 2014 23:01:59 +0000 (15:01 -0800)]
dex2oat: Pack likely-dirty objects together when generating the boot image

This introduces a new algorithm into image writer which "bins" objects
by how likely they are to be dirtied at runtime. Objects in the same bin
are placed contiguously in memory (i.e. into the same page). We try to
tune the bin selection based on how clean or how dirty the object will
likely be at runtime.

As-is, this saves about 150KB per-process (private-dirty pages) and 700KB in
zygote (shared-dirty).

There is still about 800KB of objects that are clean but located in
dirty pages, so with more analysis we can tune the bin selection and get
even more memory savings.

(cherry picked from commit 3f735bd4f9d09a0f9b2b01321e4c6917879dcae6)

Bug: 17611661
Change-Id: Ia1455e4c56ffd0a36ae2a723d35b7e06502980f7

9 years agoMerge "Tune rosalloc buffer sizes."
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:35:20 +0000 (22:35 +0000)]
Merge "Tune rosalloc buffer sizes."

9 years agoMerge "ART: Assembler_arm_test"
Andreas Gampe [Thu, 20 Nov 2014 22:33:45 +0000 (22:33 +0000)]
Merge "ART: Assembler_arm_test"

9 years agoART: Assembler_arm_test
Andreas Gampe [Tue, 18 Nov 2014 21:46:46 +0000 (13:46 -0800)]
ART: Assembler_arm_test

Add some generic test infrastructure, and update the arm32 test.
Supports many of the GPR instructions.

Change-Id: I8a270ec377f3266d6ab486e636abb50c56b87823

9 years agoTune rosalloc buffer sizes.
Hiroshi Yamauchi [Thu, 20 Nov 2014 22:16:06 +0000 (14:16 -0800)]
Tune rosalloc buffer sizes.

We now use one-page buffers for size brackets 4-7, instead of two-page
buffers, and the first 8 size brackets for thread-local allocations,
instead of 11.

No slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and
BinaryTrees.

(cherrypick commit c4cd95fa37b7138a0fa26d07c235aa409542aecd)

Bug: 18377775
Change-Id: I311f3adf9cab660d258833b17df7e6d905f73c72

9 years agoMerge "ART: Split image and non-image case in dex2oat"
Andreas Gampe [Thu, 20 Nov 2014 21:35:36 +0000 (21:35 +0000)]
Merge "ART: Split image and non-image case in dex2oat"

9 years agoMerge "Re-enable DumpNativeStack."
Ian Rogers [Thu, 20 Nov 2014 18:41:38 +0000 (18:41 +0000)]
Merge "Re-enable DumpNativeStack."

9 years agoRe-enable DumpNativeStack.
Ian Rogers [Thu, 20 Nov 2014 18:29:00 +0000 (10:29 -0800)]
Re-enable DumpNativeStack.

Bug: 15446488
Change-Id: Icdd0b90c8abe2a361a488fc1742c6896605ddc41

9 years agoMerge "Revert "Revert "Revert "Unfortunately, the test still hits too many run failur...
Ian Rogers [Thu, 20 Nov 2014 18:22:08 +0000 (18:22 +0000)]
Merge "Revert "Revert "Revert "Unfortunately, the test still hits too many run failures.""""

9 years agoRevert "Revert "Revert "Unfortunately, the test still hits too many run failures."""
Ian Rogers [Thu, 20 Nov 2014 18:21:52 +0000 (18:21 +0000)]
Revert "Revert "Revert "Unfortunately, the test still hits too many run failures."""

This reverts commit 3cfb0d3421f9e5de782d20d61b011187c7edba1c.

Change-Id: Ifc4c48c45115d5593b0d064574019017c37c1fe7

9 years agoART: Split image and non-image case in dex2oat
Andreas Gampe [Wed, 19 Nov 2014 20:57:42 +0000 (12:57 -0800)]
ART: Split image and non-image case in dex2oat

Explicitly split out the cases (even if there is redundancy). Have
explicit flush and close operations.

Change-Id: I5ffa4c84b4f4a1f42244d4cb7af2b5cf36739c87

9 years agoAdd card mark to filled-new-array.
Vladimir Marko [Wed, 19 Nov 2014 18:52:35 +0000 (18:52 +0000)]
Add card mark to filled-new-array.

Bug: 18032332
Change-Id: I35576b27f9115e4d0b02a11afc5e483b9e93a04a

9 years agoMerge "Prune image cache if the boot marker is still in place."
Narayan Kamath [Thu, 20 Nov 2014 10:47:22 +0000 (10:47 +0000)]
Merge "Prune image cache if the boot marker is still in place."

9 years agoMerge "JDWP: only deoptimize when it is required"
Sebastien Hertz [Thu, 20 Nov 2014 10:20:15 +0000 (10:20 +0000)]
Merge "JDWP: only deoptimize when it is required"

9 years agoMerge "Update arm64/optimizing expectations."
Nicolas Geoffray [Thu, 20 Nov 2014 09:35:39 +0000 (09:35 +0000)]
Merge "Update arm64/optimizing expectations."

9 years agoUpdate arm64/optimizing expectations.
Nicolas Geoffray [Thu, 20 Nov 2014 09:34:51 +0000 (09:34 +0000)]
Update arm64/optimizing expectations.

Change-Id: Ibd8292aa3ec2fb14ad8a4dadbccba23154e1b2d7

9 years agoMerge "Avoid JNI call with pending OOME."
Ian Rogers [Thu, 20 Nov 2014 04:51:49 +0000 (04:51 +0000)]
Merge "Avoid JNI call with pending OOME."

9 years agoAvoid JNI call with pending OOME.
Ian Rogers [Wed, 19 Nov 2014 22:05:21 +0000 (14:05 -0800)]
Avoid JNI call with pending OOME.

If EnsureResolved fails with an exception then FindClassInPathClassLoader may
fall-through to a call to NewStringUTF with a pending exception.
Bug: 15446488

Change-Id: I007f7bee7c50aa588d0b1c776da67a38314dc897

9 years agoMerge "Fix zygote space and non moving space map names"
Mathieu Chartier [Wed, 19 Nov 2014 21:52:30 +0000 (21:52 +0000)]
Merge "Fix zygote space and non moving space map names"

9 years agoFix zygote space and non moving space map names
Mathieu Chartier [Wed, 19 Nov 2014 18:51:42 +0000 (10:51 -0800)]
Fix zygote space and non moving space map names

Space names:
"non moving space" -> "zygote space"
"alloc space" -> "non moving space"

Bug: 18447855
Change-Id: Ia937b6d046ccf7f66bf1f6bbb9f17a5e0d00c016
(cherry picked from commit c5d085c955244be1743c33227384e5b62076b8bd)

9 years agoMerge "Fix transitive equality error in set."
Mathieu Chartier [Wed, 19 Nov 2014 21:40:58 +0000 (21:40 +0000)]
Merge "Fix transitive equality error in set."

9 years agoFix transitive equality error in set.
Mathieu Chartier [Tue, 18 Nov 2014 22:13:58 +0000 (14:13 -0800)]
Fix transitive equality error in set.

SubstringComparator used to be broken since it didn't have transitive
equality (ex. ab a ac). Now we use normal string comparison with
set.lower_bound saves an additional 12 bytes.

Also up frame size to 2700 to fix build.

Change-Id: Ie8d41faef37591e7feed1f5d2ad6258430b8ffb6

(cherry picked from commit 4b8b4693ee19efbd2d8692ca0b47b71f3b7da663)

9 years agoMerge "Improvements to the ARM64 disassembler."
Ian Rogers [Wed, 19 Nov 2014 21:09:12 +0000 (21:09 +0000)]
Merge "Improvements to the ARM64 disassembler."

9 years agoMerge "Fix the last users of TARGET_CPU_SMP."
Ian Rogers [Wed, 19 Nov 2014 20:28:36 +0000 (20:28 +0000)]
Merge "Fix the last users of TARGET_CPU_SMP."

9 years agoFix the last users of TARGET_CPU_SMP.
Elliott Hughes [Mon, 17 Nov 2014 20:02:05 +0000 (12:02 -0800)]
Fix the last users of TARGET_CPU_SMP.

Everyone else assumes SMP.

Change-Id: I7ff7faef46fbec6c67d6e446812d599e473cba39

9 years agoMerge "AArch64: Addressing Cortex-A53 erratum 835769."
Ian Rogers [Wed, 19 Nov 2014 19:11:19 +0000 (19:11 +0000)]
Merge "AArch64: Addressing Cortex-A53 erratum 835769."

9 years agoMerge "ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case"
Bill Buzbee [Wed, 19 Nov 2014 19:03:48 +0000 (19:03 +0000)]
Merge "ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case"

9 years agoMerge "Fix safepoint bug when computing live registers."
Nicolas Geoffray [Wed, 19 Nov 2014 18:13:22 +0000 (18:13 +0000)]
Merge "Fix safepoint bug when computing live registers."

9 years agoFix safepoint bug when computing live registers.
Nicolas Geoffray [Wed, 19 Nov 2014 15:17:56 +0000 (15:17 +0000)]
Fix safepoint bug when computing live registers.

Change-Id: I8f28dd287c0e04223c49dea6a323058c1b210913

9 years agoMerge "Fix a memory leak in jni_internal_test."
Ian Rogers [Wed, 19 Nov 2014 18:09:32 +0000 (18:09 +0000)]
Merge "Fix a memory leak in jni_internal_test."

9 years agoFix a memory leak in jni_internal_test.
Ian Rogers [Wed, 19 Nov 2014 18:06:46 +0000 (10:06 -0800)]
Fix a memory leak in jni_internal_test.

Caught by valgrind.

Change-Id: I8b3cc0ce946bd457c380655d3e1237b029ed4cc3

9 years agoPrune image cache if the boot marker is still in place.
Narayan Kamath [Fri, 7 Nov 2014 17:46:28 +0000 (17:46 +0000)]
Prune image cache if the boot marker is still in place.

We place a marker in each isa cache dir and have the framework
delete it for us.

This seems like a convenient place to do it given all the other
dalvik-cache related code that hooks in here, and also because
this is the first point where we try to access the cache.

TODO: Add a timeout to the (higher level) zygote code to correctly
kill the surviving zygote if one of them never comes up.

bug: 18280671

(cherry picked from commit c38276177aeeda4326a54f1121790c154df04300)
(partial cherry-pick of 9433ec60b325b708b9fa87e699ab4a6565741494)

Change-Id: I5dbea21b4bf9ca4106a13225946d3f35f8060a43

9 years agoMerge "Use HOptimization abstraction for running optimizations."
Nicolas Geoffray [Wed, 19 Nov 2014 14:41:15 +0000 (14:41 +0000)]
Merge "Use HOptimization abstraction for running optimizations."

9 years agoMerge "Remove file added after bad cherry pick."
Nicolas Geoffray [Wed, 19 Nov 2014 14:35:26 +0000 (14:35 +0000)]
Merge "Remove file added after bad cherry pick."

9 years agoUse HOptimization abstraction for running optimizations.
Nicolas Geoffray [Tue, 18 Nov 2014 16:53:35 +0000 (16:53 +0000)]
Use HOptimization abstraction for running optimizations.

Move existing optimizations to it.

Change-Id: I3b43f9997faf4ed8875162e3a3abdf99375478dd

9 years agoRemove file added after bad cherry pick.
Nicolas Geoffray [Wed, 19 Nov 2014 14:27:56 +0000 (14:27 +0000)]
Remove file added after bad cherry pick.

Cherr-pick being: https://android-review.googlesource.com/#/c/115165.

Change-Id: If86ce4472fd1260477817cc380cd52755924094f

9 years agoMerge "Quick compiler: fix x86 special identity"
buzbee [Wed, 19 Nov 2014 14:11:19 +0000 (14:11 +0000)]
Merge "Quick compiler: fix x86 special identity"

9 years agoART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case
Pavel Vyssotski [Tue, 18 Nov 2014 05:51:24 +0000 (11:51 +0600)]
ART: X86Mir2Lir::OpRegRegReg should expect kOpMul for r_dest == r_src2 case

OpRegRegReg in case of r_dest == r_src2 does not expect kOpMul as valid operation.
This provokes abort compiling instruction like "mul-int v0, v1, v0" if both
operands are arriving in registers.

The fix is to expect kOpMul as comutative operation.

Change-Id: I259e49edea4b8b08ca4ed1c61033bbc2b2229078
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoJDWP: only deoptimize when it is required
Sebastien Hertz [Mon, 17 Nov 2014 18:00:37 +0000 (19:00 +0100)]
JDWP: only deoptimize when it is required

We don't need to deoptimize anything when we forced the use of the
interpreter (-Xint). In this case, no compiled code is executed
(except native methods which are not concerned by deoptimization).
Therefore we even don't need to enable/disable deoptimization support
in instrumentation.

We also don't need to deoptimize a method that hasn't been compiled.
Since it will run with interpreter, there is no point deoptimizing
it. However this method may be inlined in a compiled caller method
so we still need to deoptimize everything in this case.

This CL updates breakpoint support by storing the required kind of
deoptimization for a particular method. There are 3 cases:
- kNothing: the method does not require deoptimization.
- kSelectiveDeoptimization: the method needs to be deoptimized.
- kFullDeoptimization: we must deoptimize everythinig.
When uninstalling a breakpoint, we need to do the reverse operation.

Also fixes the SanityCheckExistingBreakpoints function to control
breakpoints related to the given method only and adds extra verbose
logs when choosing the appropriate deoptimization kind.

Bug: 18407046
Change-Id: I5212c1fd2f72e06c79e7871db15696824d37dc0b

9 years agoQuick compiler: fix x86 special identity
buzbee [Wed, 19 Nov 2014 13:26:05 +0000 (05:26 -0800)]
Quick compiler: fix x86 special identity

The Quick compiler recognizes and specially handles a set of
small methods - including those that simply return one of their
arguments.  For x86, special identity was broken if the returned
argument was a double that was passed half in register and half
in memory.

internal b/17325447

Change-Id: I3a766977cdc0b4216d8ad65a9870c3250b32471e

9 years agoMerge "Consistently use k{InstructionSet}WordSize."
Nicolas Geoffray [Wed, 19 Nov 2014 09:08:54 +0000 (09:08 +0000)]
Merge "Consistently use k{InstructionSet}WordSize."

9 years agoMerge "Use cross-compilation helper."
Nicolas Geoffray [Wed, 19 Nov 2014 09:07:47 +0000 (09:07 +0000)]
Merge "Use cross-compilation helper."

9 years agoConsistently use k{InstructionSet}WordSize.
Nicolas Geoffray [Wed, 19 Nov 2014 08:47:18 +0000 (08:47 +0000)]
Consistently use k{InstructionSet}WordSize.

These constants were defined prior to k{InstructionSet}PointerSize. So
use them consistently in optimizing as a first step. We can discuss
whether we should remove them in a second step.

Change-Id: If129de1a3bb8b65f8d9c816a8ad466815fb202e6

9 years agoUse cross-compilation helper.
Nicolas Geoffray [Wed, 19 Nov 2014 08:35:17 +0000 (08:35 +0000)]
Use cross-compilation helper.

The default method uses the current pointer size. We should
use the pointer size given to the compiler.

Change-Id: I4d6bacad6c17ac715455cabfc89cc651368d07a5

9 years agoMerge "ART: Track Flush & Close in FdFile"
Andreas Gampe [Wed, 19 Nov 2014 01:28:48 +0000 (01:28 +0000)]
Merge "ART: Track Flush & Close in FdFile"

9 years agoART: Track Flush & Close in FdFile
Andreas Gampe [Thu, 6 Nov 2014 09:00:46 +0000 (01:00 -0800)]
ART: Track Flush & Close in FdFile

Implement a check that aborts when a file hasn't been explicitly
flushed and closed when it is destructed.

Add WARN_UNUSED to FdFile methods.

Update dex2oat, patchoat, scoped_flock and some gtests to pass with
this.

(cherry picked from commit 9433ec60b325b708b9fa87e699ab4a6565741494)

Change-Id: I9ab03b1653e69f44cc98946dc89d764c3e045dd4

9 years agoMerge "Fix no relocate host tests"
Mathieu Chartier [Tue, 18 Nov 2014 23:39:24 +0000 (23:39 +0000)]
Merge "Fix no relocate host tests"

9 years agoFix no relocate host tests
Mathieu Chartier [Tue, 18 Nov 2014 23:34:09 +0000 (15:34 -0800)]
Fix no relocate host tests

Change-Id: I905bf0327685d2119a2a5d157795e0e3f16286a7

9 years agoMerge "ART: Build fix"
Andreas Gampe [Tue, 18 Nov 2014 21:49:52 +0000 (21:49 +0000)]
Merge "ART: Build fix"

9 years agoART: Build fix
Andreas Gampe [Tue, 18 Nov 2014 21:48:34 +0000 (13:48 -0800)]
ART: Build fix

Change-Id: I0c4d1c2981bdfb95e12c8c624826349281ada0cf

9 years agoMerge "Change 64 bit ArtMethod fields to be pointer sized"
Mathieu Chartier [Tue, 18 Nov 2014 21:05:53 +0000 (21:05 +0000)]
Merge "Change 64 bit ArtMethod fields to be pointer sized"

9 years agoChange 64 bit ArtMethod fields to be pointer sized
Mathieu Chartier [Mon, 10 Nov 2014 19:08:06 +0000 (11:08 -0800)]
Change 64 bit ArtMethod fields to be pointer sized

Changed the 64 bit entrypoint and gc map fields in ArtMethod to be
pointer sized. This saves a large amount of memory on 32 bit systems.
Reduces ArtMethod size by 16 bytes on 32 bit.

Total number of ArtMethod on low memory mako: 169957
Image size: 49203 methods -> 787248 image size reduction.
Zygote space size: 1070 methods -> 17120 size reduction.
App methods: ~120k -> 2 MB savings.

Savings per app on low memory mako: 125K+ per app
(less active apps -> more image methods per app).

Savings depend on how often the shared methods are on dirty pages vs
shared.

TODO in another CL, delete gc map field from ArtMethod since we
should be able to get it from the Oat method header.

Bug: 17643507

Change-Id: Ie9508f05907a9f693882d4d32a564460bf273ee8

(cherry picked from commit e832e64a7e82d7f72aedbd7d798fb929d458ee8f)

9 years agoMerge "Do not try to sharpen super calls to abstract methods."
Vladimir Marko [Tue, 18 Nov 2014 18:14:07 +0000 (18:14 +0000)]
Merge "Do not try to sharpen super calls to abstract methods."

9 years agoDo not try to sharpen super calls to abstract methods.
Vladimir Marko [Tue, 18 Nov 2014 14:47:31 +0000 (14:47 +0000)]
Do not try to sharpen super calls to abstract methods.

Bug: 18380491

(cherry picked from commit 474123dccc5aa9a0dfe566d332174877fd5b7040)

Change-Id: I6637aaa562115f6b07d8637f0cc6658f1a6739bb

9 years agoMerge "Fix typo."
Nicolas Geoffray [Tue, 18 Nov 2014 15:56:18 +0000 (15:56 +0000)]
Merge "Fix typo."

9 years agoFix typo.
Nicolas Geoffray [Tue, 18 Nov 2014 15:55:32 +0000 (15:55 +0000)]
Fix typo.

Change-Id: Iac3b6b2206bfacf5133775b706893fc80dcad5ec

9 years agoMerge "Opt compiler: Add support for more IRs on arm64."
Nicolas Geoffray [Tue, 18 Nov 2014 15:37:50 +0000 (15:37 +0000)]
Merge "Opt compiler: Add support for more IRs on arm64."

9 years agoOpt compiler: Add support for more IRs on arm64.
Alexandre Rames [Tue, 18 Nov 2014 10:55:16 +0000 (10:55 +0000)]
Opt compiler: Add support for more IRs on arm64.

Change-Id: I4b6425135d1af74912a206411288081d2516f8bf

9 years agoLSRA: Fix X86 shuffle flags
Dmitry Petrochenko [Fri, 14 Nov 2014 11:32:56 +0000 (17:32 +0600)]
LSRA: Fix X86 shuffle flags

The shuffle opcodes for X86 have incorrect flags.  Fix them.

Clean up a couple of the printable string names too to remove an extra
"kX86".

Change-Id: I52a0ebdb1334cf0904bc2399eaf28b7cda041112
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoAArch64: Addressing Cortex-A53 erratum 835769.
Matteo Franchin [Mon, 27 Oct 2014 13:29:30 +0000 (13:29 +0000)]
AArch64: Addressing Cortex-A53 erratum 835769.

Some early revisions of the Cortex-A53 have an erratum (835769) whereby
it is possible for a 64-bit multiply-accumulate instruction in AArch64
state to generate an incorrect result. The conditions which a portion
of code must satisfy in order for the issue to be observed are somewhat
complex, but all cases end with a memory (load, store, or prefetch)
instruction followed immediately by the multiply-accumulate operation.

This commit makes sure to insert a nop instruction before a 64-bit msub
instruction, whenever the latter is preceded by a memory instruction.
This behaviour should make it impossible for the Arm64 backend to
generate a sequence of instructions which matches the erratum
conditions.

Change-Id: I0022eccd41180183c20231dab6e2671d001a204c

9 years agoMerge "Fix a bug in the type propagation phase of optimizing."
Nicolas Geoffray [Tue, 18 Nov 2014 10:15:18 +0000 (10:15 +0000)]
Merge "Fix a bug in the type propagation phase of optimizing."

9 years agoMerge "Add support for int-to-float & int-to-double in optimizing."
Roland Levillain [Tue, 18 Nov 2014 09:59:13 +0000 (09:59 +0000)]
Merge "Add support for int-to-float & int-to-double in optimizing."

9 years agoMerge "Enable the hspace compaction on OOM by default."
Hiroshi Yamauchi [Tue, 18 Nov 2014 02:22:09 +0000 (02:22 +0000)]
Merge "Enable the hspace compaction on OOM by default."

9 years agoEnable the hspace compaction on OOM by default.
Hiroshi Yamauchi [Tue, 18 Nov 2014 02:05:44 +0000 (18:05 -0800)]
Enable the hspace compaction on OOM by default.

(cherrypick commit d3f228062a1d71ce6ace2f31ecf369ae247633c2)

Bug: 18377775
Change-Id: I4a0998c7f35b6418004e92bc07926abc9b74962a

9 years agoMerge "Add denver64 as a known ARM64 variant."
Ian Rogers [Tue, 18 Nov 2014 01:40:22 +0000 (01:40 +0000)]
Merge "Add denver64 as a known ARM64 variant."

9 years agoAdd denver64 as a known ARM64 variant.
Ian Rogers [Tue, 18 Nov 2014 00:43:15 +0000 (16:43 -0800)]
Add denver64 as a known ARM64 variant.

Other bits of instruction_set_features_test clean up.
Bug: 18385422

Change-Id: Ic48cfa0564b41ea140805a700de7c1e51addf49d

9 years agoMerge "Change IsZygote test to !IsCompiler"
Mathieu Chartier [Mon, 17 Nov 2014 23:37:34 +0000 (23:37 +0000)]
Merge "Change IsZygote test to !IsCompiler"

9 years agoChange IsZygote test to !IsCompiler
Mathieu Chartier [Mon, 17 Nov 2014 22:52:44 +0000 (14:52 -0800)]
Change IsZygote test to !IsCompiler

Enables test coverage through run test 118.

Change-Id: I21ce32e83629eb507b8440cebdd721d29171a984

9 years agoMerge "Combine image string char arrays into single array"
Mathieu Chartier [Mon, 17 Nov 2014 22:44:16 +0000 (22:44 +0000)]
Merge "Combine image string char arrays into single array"

9 years agoCombine image string char arrays into single array
Mathieu Chartier [Sat, 15 Nov 2014 03:34:18 +0000 (19:34 -0800)]
Combine image string char arrays into single array

Having one giant char array shared between all the strings saves memory
since it avoids the 12 bytes of array overhead per image string. Also
added substring finding based on prefixes, strings are added into the
array in reverse sorted length.

Image size goes from 11767808 -> 11100160.

Bug: 17643507

Change-Id: I2a7f177b40d0458d5c50640643d8f16b0030bdce

(cherry picked from commit 23c1d0ca7ab63f4adad88631bddefb769d0dcc2c)

9 years agoMerge "Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running...
Mathieu Chartier [Mon, 17 Nov 2014 21:55:28 +0000 (21:55 +0000)]
Merge "Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless"

9 years agoDon't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless
Mathieu Chartier [Mon, 17 Nov 2014 20:36:24 +0000 (12:36 -0800)]
Don't call AddImageStringsToTable or MoveImageClassesToClassTable if running imageless

If we fail to create the image we use imageless running, this was
breaking AddImageStringsToTable since we didn't check for this
case. Added a check which avoids calling AddImageStringsToTable and
MoveImageClassesToClassTable if we don't have an image.

Bug: 18412472

(cherry picked from commit ab1953f35880f94752e1fcde3f6b3f0d3532125b)

Change-Id: Ida18e1fcd04d752d55923e65c3122c0ac0bde728

9 years agoMerge "ART: copy dalvikInsn back on throw instruction processing"
Bill Buzbee [Mon, 17 Nov 2014 21:15:57 +0000 (21:15 +0000)]
Merge "ART: copy dalvikInsn back on throw instruction processing"

9 years agoMerge "Add stress test for field offset assignment sorting."
Vladimir Marko [Mon, 17 Nov 2014 20:50:41 +0000 (20:50 +0000)]
Merge "Add stress test for field offset assignment sorting."

9 years agoAdd stress test for field offset assignment sorting.
Vladimir Marko [Mon, 17 Nov 2014 20:22:16 +0000 (20:22 +0000)]
Add stress test for field offset assignment sorting.

Bug: 18211592
Change-Id: If6303a9d2b16b7242a90ffc11f5e87b5b4003267

9 years agoMerge "Change 512 to kLocalsMax."
Mathieu Chartier [Mon, 17 Nov 2014 19:28:27 +0000 (19:28 +0000)]
Merge "Change 512 to kLocalsMax."

9 years agoFix a bug in the type propagation phase of optimizing.
Nicolas Geoffray [Mon, 17 Nov 2014 17:50:33 +0000 (17:50 +0000)]
Fix a bug in the type propagation phase of optimizing.

The compiler was placing phis (and their floating point equivalent),
in a way that it did not expect.

Change-Id: I974be1ee4aae5d27d68c6bba171db0ed25377b70

9 years agoChange 512 to kLocalsMax.
Mathieu Chartier [Mon, 17 Nov 2014 18:24:04 +0000 (10:24 -0800)]
Change 512 to kLocalsMax.

Clean up after cherry pick.

Change-Id: I39308ed1497a94b2a47bba8806e494d066d5f6fc

9 years agoMerge "Fix ordering of fields with the same name."
Vladimir Marko [Mon, 17 Nov 2014 18:24:08 +0000 (18:24 +0000)]
Merge "Fix ordering of fields with the same name."