OSDN Git Service

android-x86/art.git
9 years agoMerge "ART: Added Checker, a pattern matching test engine"
David Brazdil [Wed, 17 Dec 2014 16:05:08 +0000 (16:05 +0000)]
Merge "ART: Added Checker, a pattern matching test engine"

9 years agoART: Added Checker, a pattern matching test engine
David Brazdil [Mon, 1 Dec 2014 17:04:16 +0000 (17:04 +0000)]
ART: Added Checker, a pattern matching test engine

This patch adds a Python script which implements a domain-specific
mini-language similar to that of LLVM's FileCheck. It is primarily
intended for writing tests for the optimizing compiler but could be
configured for other use cases too. It is implemented from scratch in
order to avoid dependency on LLVM.

Checker tests are written in Java and dex2oat is invoked with a flag
which dumps the CFG before and after each pass of the optimizing
compiler. The output is then compared against assertions in the
test's comments parsed by Checker. See comments in tools/checker.py
for more details about the currently supported language features.

This initial CL implements only one type of assertion - whether the
output contains lines matching a desired pattern in the given order -
but supports both plain text and regex matching and allows for
equivalency testing by matching for the outcome of a previous match.
See the tests in compiler/optimizing/test/ConstantFolding.java for
examples.

Change-Id: I1ad7431b399c38dc0391ccee74d2c643ba0b0675

9 years agoMerge "Test sometimes timeouts with vogar."
Nicolas Geoffray [Wed, 17 Dec 2014 15:33:21 +0000 (15:33 +0000)]
Merge "Test sometimes timeouts with vogar."

9 years agoTest sometimes timeouts with vogar.
Nicolas Geoffray [Wed, 17 Dec 2014 15:27:14 +0000 (15:27 +0000)]
Test sometimes timeouts with vogar.

Change-Id: I9091a2a86c82173fa45ff9e3d1770d3891375546

9 years agoMerge "Revert "Small optimization for recursive calls: avoid dex cache.""
Nicolas Geoffray [Wed, 17 Dec 2014 12:25:25 +0000 (12:25 +0000)]
Merge "Revert "Small optimization for recursive calls: avoid dex cache.""

9 years agoRevert "Small optimization for recursive calls: avoid dex cache."
Nicolas Geoffray [Wed, 17 Dec 2014 12:25:12 +0000 (12:25 +0000)]
Revert "Small optimization for recursive calls: avoid dex cache."

Fails on target.

This reverts commit 390f59f9bec64fd81b05e796dfaeb03ab6d4cc81.

Change-Id: Ic3865b8897068ba20df0fbc2bcf561faf6c290c1

9 years agoMerge "Small optimization for recursive calls: avoid dex cache."
Nicolas Geoffray [Wed, 17 Dec 2014 11:55:20 +0000 (11:55 +0000)]
Merge "Small optimization for recursive calls: avoid dex cache."

9 years agoSmall optimization for recursive calls: avoid dex cache.
Nicolas Geoffray [Fri, 12 Dec 2014 19:22:03 +0000 (19:22 +0000)]
Small optimization for recursive calls: avoid dex cache.

Change-Id: Ic4054b6c38f0a2a530ba6ef747647f86cee0b1b8

9 years agoMerge "Fix typo bug for Mips32."
Andreas Gampe [Wed, 17 Dec 2014 04:18:28 +0000 (04:18 +0000)]
Merge "Fix typo bug for Mips32."

9 years agoFix typo bug for Mips32.
Douglas Leung [Wed, 17 Dec 2014 04:15:41 +0000 (20:15 -0800)]
Fix typo bug for Mips32.

Change-Id: I429038ee6748d538fa03da819777f3456a4fd9a5

9 years agoMerge "Delete gc request lock"
Mathieu Chartier [Wed, 17 Dec 2014 00:00:56 +0000 (00:00 +0000)]
Merge "Delete gc request lock"

9 years agoDelete gc request lock
Mathieu Chartier [Tue, 16 Dec 2014 23:23:00 +0000 (15:23 -0800)]
Delete gc request lock

Fixes valgrind tests.

Change-Id: I763e5709fffb002b14615ed5d08236970643e520

9 years agoMerge "Revert "Fix VM-less builds.""
Ying Wang [Tue, 16 Dec 2014 21:38:48 +0000 (21:38 +0000)]
Merge "Revert "Fix VM-less builds.""

9 years agoMerge "Remove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA"
Brian Carlstrom [Tue, 16 Dec 2014 18:53:36 +0000 (18:53 +0000)]
Merge "Remove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA"

9 years agoMerge "Fix crash in x86 disassembler."
Nicolas Geoffray [Tue, 16 Dec 2014 18:04:15 +0000 (18:04 +0000)]
Merge "Fix crash in x86 disassembler."

9 years agoMerge "[MIPSR6] Adjust assembly routines for MIPS R6 isa"
Andreas Gampe [Tue, 16 Dec 2014 16:53:04 +0000 (16:53 +0000)]
Merge "[MIPSR6] Adjust assembly routines for MIPS R6 isa"

9 years ago[MIPSR6] Adjust assembly routines for MIPS R6 isa
Duane Sand [Tue, 4 Nov 2014 19:09:36 +0000 (11:09 -0800)]
[MIPSR6] Adjust assembly routines for MIPS R6 isa

Change-Id: I771b58b9e8054bb99cd01a7f713ff8e29a9ae5d3

9 years agoRemove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA
Brian Carlstrom [Tue, 16 Dec 2014 06:10:04 +0000 (22:10 -0800)]
Remove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA

Bug: 18673991
Change-Id: I8be2f997005611b791755c8d7fa44974f1816d6b

9 years agoFix crash in x86 disassembler.
Nicolas Geoffray [Tue, 16 Dec 2014 14:54:18 +0000 (14:54 +0000)]
Fix crash in x86 disassembler.

Probably a typo from last refactoring.

Change-Id: I086a87120ca0f0dfddbe803573b0e0f79cc6d945

9 years agoMerge "Don't add or remove verifiers if aborting"
Mathieu Chartier [Tue, 16 Dec 2014 03:32:17 +0000 (03:32 +0000)]
Merge "Don't add or remove verifiers if aborting"

9 years agoDon't add or remove verifiers if aborting
Mathieu Chartier [Tue, 16 Dec 2014 03:26:29 +0000 (19:26 -0800)]
Don't add or remove verifiers if aborting

Prevents deadlock if marking verifier roots fails when we attempt to
dump the stack traces. The deadlock occurs from FindLocksAtDexPC
since this allocates a new verifier then adds / removes it from the
method_verifiers_ array.

Bug: 18651054
Change-Id: Ia9b9470ce5e4ac20bfbb39bef0283974cf487765

9 years agoMerge "Add more logging to Mutex::ExclusiveUnlock"
Mathieu Chartier [Tue, 16 Dec 2014 01:33:07 +0000 (01:33 +0000)]
Merge "Add more logging to Mutex::ExclusiveUnlock"

9 years agoAdd more logging to Mutex::ExclusiveUnlock
Mathieu Chartier [Tue, 16 Dec 2014 01:23:45 +0000 (17:23 -0800)]
Add more logging to Mutex::ExclusiveUnlock

Bug: 18713034
Change-Id: I9db5ca0a25592714ac9e292a2b8d46ef73779c8b

9 years agoMerge "Decrement suspend count if thread is shutting down"
Mathieu Chartier [Tue, 16 Dec 2014 01:17:42 +0000 (01:17 +0000)]
Merge "Decrement suspend count if thread is shutting down"

9 years agoDecrement suspend count if thread is shutting down
Mathieu Chartier [Mon, 15 Dec 2014 23:59:49 +0000 (15:59 -0800)]
Decrement suspend count if thread is shutting down

Prevents deadlock caused by incrementing suspend count in
SuspendThreadByPeer, then getting a cleared nativePeer field. This
resulted in us not decrementing the suspend count which caused a
deadlock in WaitForOtherNonDaemonThreadsToExit.

Bug: 18739541
Change-Id: I4a63f1823993a0f99f32025cd479072be49ba8d5

9 years agoMerge "Move GC daemon locking logic into heap"
Mathieu Chartier [Mon, 15 Dec 2014 23:46:59 +0000 (23:46 +0000)]
Merge "Move GC daemon locking logic into heap"

9 years agoMove GC daemon locking logic into heap
Mathieu Chartier [Mon, 15 Dec 2014 22:23:10 +0000 (14:23 -0800)]
Move GC daemon locking logic into heap

Fixes deadlock caused by acquirng the mutator lock while
synchronizing on the daemon thread.

Bug: 18739541
Change-Id: I925b8f0f3b58178da6eff17b9c073f655c39597b

9 years agoMerge "Inlining support in optimizing."
Nicolas Geoffray [Mon, 15 Dec 2014 22:59:03 +0000 (22:59 +0000)]
Merge "Inlining support in optimizing."

9 years agoInlining support in optimizing.
Nicolas Geoffray [Mon, 1 Dec 2014 10:31:54 +0000 (10:31 +0000)]
Inlining support in optimizing.

Currently only inlines simple things that don't require an
environment, such as:
- Returning a constant.
- Returning a parameter.
- Returning an arithmetic operation.

Change-Id: Ie844950cb44f69e104774a3cf7a8dea66bc85661

9 years agoMerge "Clean up debugger"
Mathieu Chartier [Mon, 15 Dec 2014 19:56:57 +0000 (19:56 +0000)]
Merge "Clean up debugger"

9 years agoClean up debugger
Mathieu Chartier [Mon, 15 Dec 2014 01:01:31 +0000 (17:01 -0800)]
Clean up debugger

Separated logic for native vs java heap, cleaned up lock annotations.
Added missing end of space marker for bump pointer spaces.

Bug: 18730149

Change-Id: I5bc21f0cee83b9cfa357e8a59658885c12cae09c

9 years agoMerge "ART: Do not inline elf writer debug symbols"
Andreas Gampe [Mon, 15 Dec 2014 18:30:38 +0000 (18:30 +0000)]
Merge "ART: Do not inline elf writer debug symbols"

9 years agoART: Do not inline elf writer debug symbols
Andreas Gampe [Sat, 13 Dec 2014 05:41:29 +0000 (21:41 -0800)]
ART: Do not inline elf writer debug symbols

Using Clang, this pushes the frame size of the caller across our
limit. Thus forbid inlining. The function is only called once per
compile, impact is insignificant.

Bug: 18738594
Change-Id: I19c3f1168a5104ab508a8dbf9f2a8c035cb97e3c

9 years agoMerge "Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued."
Mathieu Chartier [Mon, 15 Dec 2014 17:37:59 +0000 (17:37 +0000)]
Merge "Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued."

9 years agoMerge "ART: Break up x86 disassembler main function"
Andreas Gampe [Mon, 15 Dec 2014 16:17:27 +0000 (16:17 +0000)]
Merge "ART: Break up x86 disassembler main function"

9 years agoART: Break up x86 disassembler main function
Andreas Gampe [Sat, 13 Dec 2014 02:44:19 +0000 (18:44 -0800)]
ART: Break up x86 disassembler main function

The function leads to large stack frames with Clang. Break out
some parts and use four char* variables for opcode.

Bug: 18733806
Change-Id: I8bf6da6c763175d7081c4231fa5d3b6809316220

9 years agoMerge "ART: Show invalid oat header cause in error message"
Andreas Gampe [Mon, 15 Dec 2014 16:14:53 +0000 (16:14 +0000)]
Merge "ART: Show invalid oat header cause in error message"

9 years agoART: Show invalid oat header cause in error message
Andreas Gampe [Fri, 12 Dec 2014 23:25:14 +0000 (15:25 -0800)]
ART: Show invalid oat header cause in error message

Include the IsValid failure cause in the error message of opening
an oat file.

Make oat magic and version constexpr so we can have static_asserts
over the lengths.

Bug: 17187621
Change-Id: I8cef1c6cc9cb2faa052167a3437e81b4c2cbefa7

9 years agoMerge "Add more compilation stats to optimizing"
Calin Juravle [Mon, 15 Dec 2014 16:05:52 +0000 (16:05 +0000)]
Merge "Add more compilation stats to optimizing"

9 years agoMerge "Save all registers in native to Java stubs."
Nicolas Geoffray [Mon, 15 Dec 2014 15:30:41 +0000 (15:30 +0000)]
Merge "Save all registers in native to Java stubs."

9 years agoUse WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued.
Pavel Vyssotski [Mon, 15 Dec 2014 12:00:17 +0000 (18:00 +0600)]
Use WaitHoldingLocks in ReferenceProcessor::MakeCircularListIfUnenqueued.

The caller may be holding mutator_lock_, so we must use WaitHoldingLocks.
Otherwise we get 'bad_mutexes_held' error with debug build.

See also https://android-review.googlesource.com/#/c/93892.

Change-Id: I87b1119e22a9934fdc622c4c4e2690b8b552b539
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoMerge "Disable HomogeneousSpaceCompact for GSS collector"
Hiroshi Yamauchi [Sat, 13 Dec 2014 01:28:36 +0000 (01:28 +0000)]
Merge "Disable HomogeneousSpaceCompact for GSS collector"

9 years agoMerge "Add regression test for deadlock caused by Thread.getAllStackTraces"
Mathieu Chartier [Sat, 13 Dec 2014 00:46:56 +0000 (00:46 +0000)]
Merge "Add regression test for deadlock caused by Thread.getAllStackTraces"

9 years agoAdd regression test for deadlock caused by Thread.getAllStackTraces
Mathieu Chartier [Fri, 12 Dec 2014 21:05:33 +0000 (13:05 -0800)]
Add regression test for deadlock caused by Thread.getAllStackTraces

Also added stress test for Thread.getAllStackTraces. The test calls
Thread.getAllStackTraces from multiple threads to stress race
conditions which can cause deadlocks.

Bug: 18661622

Change-Id: Ideee7073fdcce784414808d08eca9ea310240073

9 years agoMerge "Remove a dependency on AndroidConfig.h."
Elliott Hughes [Fri, 12 Dec 2014 23:50:59 +0000 (23:50 +0000)]
Merge "Remove a dependency on AndroidConfig.h."

9 years agoRemove a dependency on AndroidConfig.h.
Elliott Hughes [Fri, 12 Dec 2014 23:49:56 +0000 (15:49 -0800)]
Remove a dependency on AndroidConfig.h.

Change-Id: I3fad347d49eb51f7a0f6d0ba9223d096a23f74a0

9 years agoMerge "Add ReferenceQueue test"
Mathieu Chartier [Fri, 12 Dec 2014 21:04:39 +0000 (21:04 +0000)]
Merge "Add ReferenceQueue test"

9 years agoAdd ReferenceQueue test
Mathieu Chartier [Fri, 12 Dec 2014 02:43:48 +0000 (18:43 -0800)]
Add ReferenceQueue test

Also cleaned up reference queue.
TODO: Add tests for missing functionality.

Bug: 10808403

Change-Id: I182f9cb69022fe542ea9e53d4c6d35cff90af332

9 years agoMerge "ART: More logging on GetAccessFlags failure"
Andreas Gampe [Fri, 12 Dec 2014 19:14:18 +0000 (19:14 +0000)]
Merge "ART: More logging on GetAccessFlags failure"

9 years agoMerge "Some enhancements on BCE."
Mingyao Yang [Fri, 12 Dec 2014 19:07:41 +0000 (19:07 +0000)]
Merge "Some enhancements on BCE."

9 years agoART: More logging on GetAccessFlags failure
Andreas Gampe [Fri, 12 Dec 2014 19:06:00 +0000 (11:06 -0800)]
ART: More logging on GetAccessFlags failure

Bug: 18732531
Change-Id: I803d0dcd8c5e142b57dbdc40051fecbf71dd351d

9 years agoSome enhancements on BCE.
Mingyao Yang [Fri, 5 Dec 2014 23:56:23 +0000 (15:56 -0800)]
Some enhancements on BCE.

1) Better format detection when creating ValueBound.
2) Some code cleanup on returning bool for overflow_or_underflow.

Change-Id: I03e8bd0d756652da021ccb5b2a62075648d39cc2

9 years agoMerge "Remove portable."
Elliott Hughes [Fri, 12 Dec 2014 18:18:42 +0000 (18:18 +0000)]
Merge "Remove portable."

9 years agoMerge "Remove proxy logic from GetCodeItem"
Mathieu Chartier [Fri, 12 Dec 2014 17:51:59 +0000 (17:51 +0000)]
Merge "Remove proxy logic from GetCodeItem"

9 years agoRemove portable.
Elliott Hughes [Thu, 11 Dec 2014 22:34:28 +0000 (14:34 -0800)]
Remove portable.

Change-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc

9 years agoMerge "ART: Fix DDM client hang transmitting native heap dump with MALLOC_IMPL=dlmalloc"
Sebastien Hertz [Fri, 12 Dec 2014 16:20:32 +0000 (16:20 +0000)]
Merge "ART: Fix DDM client hang transmitting native heap dump with MALLOC_IMPL=dlmalloc"

9 years agoMerge "AArch64: Fix incorrect use of preceding LIR."
Vladimir Marko [Fri, 12 Dec 2014 14:01:10 +0000 (14:01 +0000)]
Merge "AArch64: Fix incorrect use of preceding LIR."

9 years agoDisable HomogeneousSpaceCompact for GSS collector
Lin Zang [Fri, 12 Dec 2014 13:54:47 +0000 (21:54 +0800)]
Disable HomogeneousSpaceCompact for GSS collector

HomogeneousSpaceCompact is not suitable when GSS is forground collector.
This will fix issue that device can not boot with GSS collecor.

Change-Id: Iafdf431c207351571f41bbc9196dff02ba674ab4
Signed-off-by: Lin Zang <lin.zang@intel.com>
9 years agoMerge "Un-break --perf option to the art art script."
Nicolas Geoffray [Fri, 12 Dec 2014 13:54:19 +0000 (13:54 +0000)]
Merge "Un-break --perf option to the art art script."

9 years agoUn-break --perf option to the art art script.
Nicolas Geoffray [Fri, 12 Dec 2014 13:52:00 +0000 (13:52 +0000)]
Un-break --perf option to the art art script.

Change-Id: I5446751982cc33f27aa6785359b3eb3ba969f93e

9 years agoSave all registers in native to Java stubs.
Nicolas Geoffray [Fri, 12 Dec 2014 10:29:38 +0000 (10:29 +0000)]
Save all registers in native to Java stubs.

This will make things more friendly when experimenting with the
number of callee saves in optimizing.

Change-Id: Iefd9a2da329a420eb69fc2fa9e91c06bbda30cdb

9 years agoAArch64: Fix incorrect use of preceding LIR.
Ningsheng Jian [Wed, 10 Dec 2014 07:13:22 +0000 (15:13 +0800)]
AArch64: Fix incorrect use of preceding LIR.

In Cortex-A53 erratum 835769 fixup, we should check the LIR for
previous emitted instruction, skipping pseudo LIRs and other
non-emitting LIRs.

Change-Id: I908f4c638650d7ad9c91112b74095bba2d81612e

9 years agoMerge "Fix alloc-dealloc-mismatch failures in dex2oat."
Dan Albert [Thu, 11 Dec 2014 23:39:59 +0000 (23:39 +0000)]
Merge "Fix alloc-dealloc-mismatch failures in dex2oat."

9 years agoRemove proxy logic from GetCodeItem
Mathieu Chartier [Thu, 11 Dec 2014 21:25:33 +0000 (13:25 -0800)]
Remove proxy logic from GetCodeItem

TODO: Fix places where this doesn't work. Seems maybe in debugger,
etc.

Bug: 17939199
Change-Id: I1dd3c1b071dc37aa1d0a6c187848978588248617

9 years agoFix alloc-dealloc-mismatch failures in dex2oat.
Dan Albert [Thu, 11 Dec 2014 22:09:51 +0000 (14:09 -0800)]
Fix alloc-dealloc-mismatch failures in dex2oat.

These errors are for calling `delete` on something allocated with
`new[]`.

Bug: 18202869
Change-Id: I8032664dd0819740e83a04cd5a0d56e2c097aacf

9 years agoMerge "Increase default allocation stack size"
Mathieu Chartier [Thu, 11 Dec 2014 20:50:47 +0000 (20:50 +0000)]
Merge "Increase default allocation stack size"

9 years agoIncrease default allocation stack size
Mathieu Chartier [Thu, 11 Dec 2014 02:45:30 +0000 (18:45 -0800)]
Increase default allocation stack size

Prevents some GC for alloc which can occur if the allocation stack
overflows.

Bug: 18707404

(cherry picked from commit 4911153db37264de407b2a08c2e4c9bb6aef3545)

Change-Id: I4748485dd495526ab1a313f366d93dbb3ee8112b

9 years agoMerge "Don't use the version script for executables."
Dan Albert [Thu, 11 Dec 2014 19:33:59 +0000 (19:33 +0000)]
Merge "Don't use the version script for executables."

9 years agoMerge "Revert "Revert "Ensure void type is resolved when running without image"""
Andreas Gampe [Thu, 11 Dec 2014 19:25:43 +0000 (19:25 +0000)]
Merge "Revert "Revert "Ensure void type is resolved when running without image"""

9 years agoMerge "Add verifier support for dequickening"
Mathieu Chartier [Thu, 11 Dec 2014 19:19:40 +0000 (19:19 +0000)]
Merge "Add verifier support for dequickening"

9 years agoMerge "ART: More ELF and oat file safety measures"
Andreas Gampe [Thu, 11 Dec 2014 19:16:39 +0000 (19:16 +0000)]
Merge "ART: More ELF and oat file safety measures"

9 years agoAdd verifier support for dequickening
Mathieu Chartier [Wed, 10 Dec 2014 20:06:45 +0000 (12:06 -0800)]
Add verifier support for dequickening

Also some cleanup.

Bug: 17950037

Change-Id: I1f50fe07f1558e9c4f78953b7afa639d7f310b3c

9 years agoART: More ELF and oat file safety measures
Andreas Gampe [Thu, 11 Dec 2014 04:51:45 +0000 (20:51 -0800)]
ART: More ELF and oat file safety measures

In an ELF file, look for a shstrtab section when loading in
program-header-only mode. If the section is outside the file size,
it strongly indicates a broken compile.

When compiling oat files in the class linker, explicitly unlink
on failure. This should catch cases when dex2oat is killed or
crashes and doesn't have a chance to delete its (partial) output.

Bug: 15567083

(cherry picked from commit ad00fed942a9a04cf3f46784bbd04a5f00dd4ab8)

Change-Id: Ia0c75f151d91c6f26a71696967255d6d409ca882

9 years agoMerge "Add another failing test."
Nicolas Geoffray [Thu, 11 Dec 2014 15:35:28 +0000 (15:35 +0000)]
Merge "Add another failing test."

9 years agoAdd another failing test.
Nicolas Geoffray [Thu, 11 Dec 2014 15:34:38 +0000 (15:34 +0000)]
Add another failing test.

Change-Id: I19050efdf57a06d6391be319b96bcf62536dd189

9 years agoMerge "ARM: Combine multiply accumulate operations."
Vladimir Marko [Thu, 11 Dec 2014 14:29:53 +0000 (14:29 +0000)]
Merge "ARM: Combine multiply accumulate operations."

9 years agoMerge "Update expectation file from what is runnin on the bot."
Nicolas Geoffray [Thu, 11 Dec 2014 13:47:54 +0000 (13:47 +0000)]
Merge "Update expectation file from what is runnin on the bot."

9 years agoUpdate expectation file from what is runnin on the bot.
Nicolas Geoffray [Thu, 11 Dec 2014 13:33:12 +0000 (13:33 +0000)]
Update expectation file from what is runnin on the bot.

The bots are runinng a stock L release, and not latest AOSP.

Change-Id: I48f0dcf2570c0d718e4e725cd48c0d7b33cb3627

9 years agoRevert "Revert "Ensure void type is resolved when running without image""
Andreas Gampe [Thu, 11 Dec 2014 00:43:58 +0000 (16:43 -0800)]
Revert "Revert "Ensure void type is resolved when running without image""

Accept the verification status of image classes out of oat files even
when the image could not be loaded. This is necessary as the dex files
might be quickened and the verifier can't work on them when the runtime
is not started.

This reverts commit fe382b5296ef132316d8883a0bdf8cb00d40d16b.

Bug: 18338511
Bug: 18705942
Change-Id: I3516acaaa65f05395c14da0701d1049ba80acb12

9 years agoARM: Combine multiply accumulate operations.
Ningsheng Jian [Tue, 25 Nov 2014 08:48:07 +0000 (16:48 +0800)]
ARM: Combine multiply accumulate operations.

Try to combine integer multiply and add(sub) into a MAC operation.
For AArch64, also try to combine long type multiply and add(sub).

Change-Id: Ic85812e941eb5a66abc355cab81a4dd16de1b66e

9 years agoMerge "ART: Extend run-test 015"
Andreas Gampe [Thu, 11 Dec 2014 00:58:13 +0000 (00:58 +0000)]
Merge "ART: Extend run-test 015"

9 years agoART: Extend run-test 015
Andreas Gampe [Fri, 5 Dec 2014 00:58:36 +0000 (16:58 -0800)]
ART: Extend run-test 015

Add some more tests to 015-switch.

Change-Id: I10bd61d68ce961ae2e2dcf936ed9321014b56d05

9 years agoDon't use the version script for executables.
Dan Albert [Wed, 10 Dec 2014 23:50:45 +0000 (15:50 -0800)]
Don't use the version script for executables.

The version script was forcing all the ASAN symbols to be hidden,
which caused any ASAN instrumented shared libraries used by these
executables (such as libc++) to be unable to find these symbols.

Bug: 18671691
Change-Id: I7839a10041d5f75ce43b59920675b2eff0837606

9 years agoMerge "Revert "Ensure void type is resolved when running without image""
Nicolas Geoffray [Wed, 10 Dec 2014 22:33:21 +0000 (22:33 +0000)]
Merge "Revert "Ensure void type is resolved when running without image""

9 years agoRevert "Ensure void type is resolved when running without image"
Nicolas Geoffray [Wed, 10 Dec 2014 22:32:58 +0000 (22:32 +0000)]
Revert "Ensure void type is resolved when running without image"

Reverting to stop tests breakage.

This reverts commit 3138584a720b86f2f542160425d3a922920760c0.

Change-Id: Idd30d458cef67839416ffeae4d558da2affd29d0

9 years agoMerge "Stop daemon threads in runtime shutdown"
Mathieu Chartier [Wed, 10 Dec 2014 22:22:14 +0000 (22:22 +0000)]
Merge "Stop daemon threads in runtime shutdown"

9 years agoMerge "Ensure void type is resolved when running without image"
Sebastien Hertz [Wed, 10 Dec 2014 20:19:38 +0000 (20:19 +0000)]
Merge "Ensure void type is resolved when running without image"

9 years agoMerge "Add missing iget quick for bool, byte, char, short"
Mathieu Chartier [Wed, 10 Dec 2014 19:52:03 +0000 (19:52 +0000)]
Merge "Add missing iget quick for bool, byte, char, short"

9 years agoAdd missing iget quick for bool, byte, char, short
Mathieu Chartier [Wed, 10 Dec 2014 18:35:44 +0000 (10:35 -0800)]
Add missing iget quick for bool, byte, char, short

Bug: 17791557
Bug: 17671806
Change-Id: Ifac4fbfba6c3a3f97131e85914b24756fb7f9722

9 years agoEnsure void type is resolved when running without image
Sebastien Hertz [Tue, 9 Dec 2014 18:08:15 +0000 (19:08 +0100)]
Ensure void type is resolved when running without image

To initialize java.lang.Void correctly, we need to ensure the 'void'
class is initialized in the dex cache of core-libart (because Java
code relies on it). However, if we run without image, the dex cache
may not contain the void class before we initialize java.lang.Void
class.

This CL fixes this by forcing the resolution of 'void' class when
initializing the runtime without image.

We also generalize that to other types by not skipping verification
when running with preopted oat files without image. By verifying
all classes, we ensure all resolved types are in the dex caches.

Bug: 18338511
(cherry picked from commit cad417c72cc879ae8b6a8b2fff26f05a770f2051)

Change-Id: I65e345da47be6eda1ee55897c01a9a4cc1444915

9 years agoStop daemon threads in runtime shutdown
Mathieu Chartier [Wed, 10 Dec 2014 01:38:52 +0000 (17:38 -0800)]
Stop daemon threads in runtime shutdown

Ensure that daemons are stopped and joins before bringing down the
runtime. This fixes bugs related to native code still running when
we shutdown the runtime.

Also changed the mutex destructor to allow contenders if we are
deleting a monitor lock level mutex.

Bug: 18577101
Change-Id: I6457b35fd69c6997b9003b5f15f39861749843a9

9 years agoMerge "ARM64: Enable Optimizing compiler image generation."
Roland Levillain [Wed, 10 Dec 2014 17:08:37 +0000 (17:08 +0000)]
Merge "ARM64: Enable Optimizing compiler image generation."

9 years agoAdd more compilation stats to optimizing
Calin Juravle [Tue, 9 Dec 2014 18:11:36 +0000 (18:11 +0000)]
Add more compilation stats to optimizing

Optimizing is getting closer to have full coverage and this provides a
nice overview on why certain methods are not compiled/optimized.

Also, clean up some of the builder methods.

Change-Id: Id2f31441a788b797b0efea7ec78bee27bb654186

9 years agoARM64: Enable Optimizing compiler image generation.
Serban Constantinescu [Thu, 4 Dec 2014 18:12:21 +0000 (18:12 +0000)]
ARM64: Enable Optimizing compiler image generation.

Enable Optimizing Compiler image generation for ARM64.

Change-Id: If28426920f8887a3f78cb8c69bc8c1293131b85d
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
9 years agoMerge "Opt compiler: Add arm64 support for register allocation."
Roland Levillain [Wed, 10 Dec 2014 15:52:37 +0000 (15:52 +0000)]
Merge "Opt compiler: Add arm64 support for register allocation."

9 years agoOpt compiler: Add arm64 support for register allocation.
Alexandre Rames [Wed, 10 Dec 2014 10:36:50 +0000 (10:36 +0000)]
Opt compiler: Add arm64 support for register allocation.

Change-Id: Idc6e84eee66170de4a9c0a5844c3da038c083aa7

9 years agoMerge "Ensure stack maps are 4 byte aligned."
Nicolas Geoffray [Wed, 10 Dec 2014 08:41:47 +0000 (08:41 +0000)]
Merge "Ensure stack maps are 4 byte aligned."

9 years agoMerge "Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStati...
Brian Carlstrom [Wed, 10 Dec 2014 06:59:33 +0000 (06:59 +0000)]
Merge "Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic semantics."

9 years agoFix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic seman...
Brian Carlstrom [Wed, 10 Dec 2014 04:15:42 +0000 (20:15 -0800)]
Fix verifier bug caused by confusing ArtMethod::IsDirect vs ArtMethod::IsStatic semantics.

Bug: 18485243
Change-Id: I011872446490628b51fb38a353abd1d499cc1290

9 years agoEnsure stack maps are 4 byte aligned.
Nicolas Geoffray [Tue, 9 Dec 2014 14:26:32 +0000 (14:26 +0000)]
Ensure stack maps are 4 byte aligned.

With the recent move to gcc 4.9, we are hitting alignment
SIGBUS on ARM. The reason is that gcc will optimize two consecutive
32bits loads into one 64bits load, and the instruction (ldrd)
will fail if the data is not aligned.

Also removed the emission of mapping table when a method is optimized.
The information can be found in the StackMap itself.

Change-Id: Icf79406c18a3f4db3c05d52fc2c0dd2e35bf0f8f