OSDN Git Service

android-x86/art.git
9 years agoRevert "Unfortunately, the test still hits too many run failures."
Ian Rogers [Thu, 13 Nov 2014 18:24:52 +0000 (18:24 +0000)]
Revert "Unfortunately, the test still hits too many run failures."

This reverts commit 05b6570eb63d1236d38b1bb8b4ebeb8d36a76c31.

Change-Id: I8e0143e59e4e2f66930f04ecf295ed01418a7135

9 years agoUnfortunately, the test still hits too many run failures.
Nicolas Geoffray [Thu, 13 Nov 2014 10:20:47 +0000 (10:20 +0000)]
Unfortunately, the test still hits too many run failures.

Change-Id: I3917c994e454b8e9321b28173059d3ac8739c02e

9 years agoMerge "Do a parallel move in BoundsCheckSlowPath."
Nicolas Geoffray [Thu, 13 Nov 2014 09:58:56 +0000 (09:58 +0000)]
Merge "Do a parallel move in BoundsCheckSlowPath."

9 years agoMerge "Modify the behavior of thread suspend shootouts."
Ian Rogers [Thu, 13 Nov 2014 00:53:47 +0000 (00:53 +0000)]
Merge "Modify the behavior of thread suspend shootouts."

9 years agoModify the behavior of thread suspend shootouts.
Ian Rogers [Wed, 12 Nov 2014 07:08:07 +0000 (23:08 -0800)]
Modify the behavior of thread suspend shootouts.

The thread doing the suspension doesn't attempt to suspend the other thread
unless it knows another thread isn't trying to suspend it. Use the suspend
count, and its lock, for this purpose.
Re-enable ThreadStress test.
Bug: 15446488

Change-Id: Idd34410c7b89d8abd6973e5699a15ca699472c78

9 years agoMerge "Use the new name for the libc++ libbacktrace."
Dan Albert [Wed, 12 Nov 2014 22:12:42 +0000 (22:12 +0000)]
Merge "Use the new name for the libc++ libbacktrace."

9 years agoMerge "ART: Fix clobbering low part in 32-bit version of X86Mir2Lir::GenNegDouble"
Bill Buzbee [Wed, 12 Nov 2014 21:31:32 +0000 (21:31 +0000)]
Merge "ART: Fix clobbering low part in 32-bit version of X86Mir2Lir::GenNegDouble"

9 years agoMerge "ART: GenNegLong incorrectly handled register overlap for x86"
Bill Buzbee [Wed, 12 Nov 2014 21:31:25 +0000 (21:31 +0000)]
Merge "ART: GenNegLong incorrectly handled register overlap for x86"

9 years agoMerge "Use CommonRuntimeTest::boot_class_path_ in DexMethodIteratorTest"
Brian Carlstrom [Wed, 12 Nov 2014 18:41:23 +0000 (18:41 +0000)]
Merge "Use CommonRuntimeTest::boot_class_path_ in DexMethodIteratorTest"

9 years agoMerge "Mark test as failing for optimizing/armv8."
Nicolas Geoffray [Wed, 12 Nov 2014 18:29:03 +0000 (18:29 +0000)]
Merge "Mark test as failing for optimizing/armv8."

9 years agoMark test as failing for optimizing/armv8.
Nicolas Geoffray [Wed, 12 Nov 2014 18:28:18 +0000 (18:28 +0000)]
Mark test as failing for optimizing/armv8.

Change-Id: I43e8ade5fb27a66a52309516bce72e081b4ebbf6

9 years agoDo a parallel move in BoundsCheckSlowPath.
Nicolas Geoffray [Wed, 12 Nov 2014 17:50:07 +0000 (17:50 +0000)]
Do a parallel move in BoundsCheckSlowPath.

The two locations of the index and length could overlap,
so we need a parallel move. Also factorize the code for
doing a parallel move based on two locations.

Change-Id: Iee8b3459e2eed6704d45e9a564fb2cd050741ea4

9 years agoMerge "Implement and/or/xor in optimizing."
Nicolas Geoffray [Wed, 12 Nov 2014 17:53:18 +0000 (17:53 +0000)]
Merge "Implement and/or/xor in optimizing."

9 years agoMerge "Fix bad OOM check in Thread::CreatePeer()."
Vladimir Marko [Wed, 12 Nov 2014 17:29:28 +0000 (17:29 +0000)]
Merge "Fix bad OOM check in Thread::CreatePeer()."

9 years agoFix bad OOM check in Thread::CreatePeer().
Vladimir Marko [Wed, 12 Nov 2014 15:41:57 +0000 (15:41 +0000)]
Fix bad OOM check in Thread::CreatePeer().

Bug: 18342629

(cherry picked from commit 7bcea103af7cd130254835a30b45d5277a478074)

Change-Id: I5d5c7511bbc705d040095f4934d98d326d54d39e

9 years agoImplement and/or/xor in optimizing.
Nicolas Geoffray [Wed, 12 Nov 2014 13:19:37 +0000 (13:19 +0000)]
Implement and/or/xor in optimizing.

Change-Id: I7cf6da1fd334a7177a5580931b8f174dd40b7cec

9 years agoMerge "More armv8/optimizing test failures."
Nicolas Geoffray [Wed, 12 Nov 2014 12:21:43 +0000 (12:21 +0000)]
Merge "More armv8/optimizing test failures."

9 years agoMore armv8/optimizing test failures.
Nicolas Geoffray [Wed, 12 Nov 2014 12:19:58 +0000 (12:19 +0000)]
More armv8/optimizing test failures.

Change-Id: Ic2472e4339f96789086f4397f4a4c53529a3fe49

9 years agoMerge "Implement monitorenter/monitorexit."
Nicolas Geoffray [Wed, 12 Nov 2014 11:43:01 +0000 (11:43 +0000)]
Merge "Implement monitorenter/monitorexit."

9 years agoImplement monitorenter/monitorexit.
Nicolas Geoffray [Tue, 11 Nov 2014 16:29:44 +0000 (16:29 +0000)]
Implement monitorenter/monitorexit.

Pretty simple as they just invoke the runtime.

Change-Id: I5fcb2c783deac27e55e28d8b3da3e68ea4b77363

9 years agoMerge "Revert "Revert "Add support for long-to-int in the optimizing compiler."""
Roland Levillain [Wed, 12 Nov 2014 11:33:41 +0000 (11:33 +0000)]
Merge "Revert "Revert "Add support for long-to-int in the optimizing compiler."""

9 years agoMerge "Update list of armv8/optimizing failing tests."
Nicolas Geoffray [Wed, 12 Nov 2014 10:48:29 +0000 (10:48 +0000)]
Merge "Update list of armv8/optimizing failing tests."

9 years agoUpdate list of armv8/optimizing failing tests.
Nicolas Geoffray [Wed, 12 Nov 2014 10:47:41 +0000 (10:47 +0000)]
Update list of armv8/optimizing failing tests.

Change-Id: I9db077b1c8bd687f665574ab64445161dbf0771b

9 years agoMerge "Remove HTemporary when building the SSA graph."
Nicolas Geoffray [Wed, 12 Nov 2014 10:24:10 +0000 (10:24 +0000)]
Merge "Remove HTemporary when building the SSA graph."

9 years agoMerge "Implement invokesuper in optimizing."
Nicolas Geoffray [Wed, 12 Nov 2014 10:22:11 +0000 (10:22 +0000)]
Merge "Implement invokesuper in optimizing."

9 years agoImplement invokesuper in optimizing.
Nicolas Geoffray [Tue, 11 Nov 2014 14:40:10 +0000 (14:40 +0000)]
Implement invokesuper in optimizing.

- Ensure dex2oat is in PIC mode, as this will drive the decisions
  made in the compiler driver, and optimizing only suppots PIC
  anyway.

- Since invokesuper is sharpened into invoke-direct, also support
  sharpening of invokeinterface and invokevirtual.

Change-Id: I0a1bd79a13dc1c9e67e3cb11d38f0cd4459968ae

9 years agoMerge "Implement checkcast for optimizing."
Nicolas Geoffray [Wed, 12 Nov 2014 09:19:35 +0000 (09:19 +0000)]
Merge "Implement checkcast for optimizing."

9 years agoImplement checkcast for optimizing.
Nicolas Geoffray [Mon, 10 Nov 2014 15:09:21 +0000 (15:09 +0000)]
Implement checkcast for optimizing.

- Ended up not using HTypeCheck because of how
  instanceof and checkcast end up having different logic
  for code generation.

- Fix a x86_64 assembler bug triggered by now enabling
  more methods to be compiled. Difficult to test today
  without b/18117217.

Change-Id: I3022e7ae03befb1d10bea9637ad21fadc430abe0

9 years agoMerge "Don't try to handle nested SIGSEGV inside fault handler."
Ian Rogers [Wed, 12 Nov 2014 01:42:44 +0000 (01:42 +0000)]
Merge "Don't try to handle nested SIGSEGV inside fault handler."

9 years agoDon't try to handle nested SIGSEGV inside fault handler.
Ian Rogers [Wed, 12 Nov 2014 00:55:11 +0000 (16:55 -0800)]
Don't try to handle nested SIGSEGV inside fault handler.

Trying to handle nested SIGSEGV in the fault handler leads to infinite signals
and retrying if the cause of the SIGSEGV was a lack of stack space. This can
lead to applications not chaining through to debuggerd and dying.
Bug: 18330119

Change-Id: Iadcffe0fa0e55d783b84a06504bbd9d181e641e4

9 years agoMerge "Allow JNI AttachCurrentThread to fail if not enough stack."
Ian Rogers [Wed, 12 Nov 2014 00:15:58 +0000 (00:15 +0000)]
Merge "Allow JNI AttachCurrentThread to fail if not enough stack."

9 years agoAllow JNI AttachCurrentThread to fail if not enough stack.
Ian Rogers [Wed, 12 Nov 2014 00:10:33 +0000 (16:10 -0800)]
Allow JNI AttachCurrentThread to fail if not enough stack.

Add unit tests and move JavaVM JNI tests into there own set of gtests.
Bug: 18330119

Change-Id: I0e93dff783b1f5d787b3084d24122883e14951a1

9 years agoUse the new name for the libc++ libbacktrace.
Dan Albert [Tue, 11 Nov 2014 23:14:07 +0000 (15:14 -0800)]
Use the new name for the libc++ libbacktrace.

I'm removing the stlport flavored libbacktrace, so the libc++ one can
have the normal name now.

Bug: 15193147
Change-Id: Ie138bc8034533cae56ea15095eebc5f52e56f32d

9 years agoRemove HTemporary when building the SSA graph.
Nicolas Geoffray [Tue, 11 Nov 2014 18:21:53 +0000 (18:21 +0000)]
Remove HTemporary when building the SSA graph.

- They are useless afterwards. If we keep them around, they can
  crash the dump of the graph, where they always assume a previous
  instruction.

- In the call to HTemporary::GetType, check that the previous
  instruction exists.

Change-Id: Ie7bf44d05cb61e3654a69725c1980925580dd3a6

9 years agoMerge "Add null check for thread name creation"
Mathieu Chartier [Tue, 11 Nov 2014 17:46:36 +0000 (17:46 +0000)]
Merge "Add null check for thread name creation"

9 years agoAdd null check for thread name creation
Mathieu Chartier [Tue, 11 Nov 2014 00:58:19 +0000 (16:58 -0800)]
Add null check for thread name creation

Previously we didn't check for null which could result in check jni
failures if we tried to throw another OOM in the next allocation.

Bug: 18297817

(cherry picked from commit a7ade888ab99b1453571d14c41d4a0322c400fcd)

Change-Id: Ideef46f4900e546e81fbd9a5225c06698f36e9ac

9 years agoRevert "Revert "Add support for long-to-int in the optimizing compiler.""
Roland Levillain [Tue, 11 Nov 2014 17:35:19 +0000 (17:35 +0000)]
Revert "Revert "Add support for long-to-int in the optimizing compiler.""

This reverts commit 3adfd1b4fb20ac2b0217b5d2737bfe30ad90257a.

Change-Id: Iacf0c6492d49267e24f1b727dbf6379b21fd02db

9 years agoMerge "Add jni_internal_test for GetArrayLength(NULL)."
Ian Rogers [Tue, 11 Nov 2014 16:49:46 +0000 (16:49 +0000)]
Merge "Add jni_internal_test for GetArrayLength(NULL)."

9 years agoAdd jni_internal_test for GetArrayLength(NULL).
Ian Rogers [Tue, 11 Nov 2014 16:43:05 +0000 (08:43 -0800)]
Add jni_internal_test for GetArrayLength(NULL).

Change-Id: I6c6ad38de3b60d58e6bcf734714f5fad29e73c30

9 years agoMerge "Revert "Add support for long-to-int in the optimizing compiler.""
Roland Levillain [Tue, 11 Nov 2014 14:49:25 +0000 (14:49 +0000)]
Merge "Revert "Add support for long-to-int in the optimizing compiler.""

9 years agoRevert "Add support for long-to-int in the optimizing compiler."
Roland Levillain [Tue, 11 Nov 2014 14:48:08 +0000 (14:48 +0000)]
Revert "Add support for long-to-int in the optimizing compiler."

This reverts commit 647b96f29cb81832e698f863884fdba06674c9de.

Change-Id: I552f23585463c676acbd547521b4d3ee5c0342eb

9 years agoMerge "Fix lint error."
Calin Juravle [Tue, 11 Nov 2014 14:14:54 +0000 (14:14 +0000)]
Merge "Fix lint error."

9 years agoFix lint error.
Calin Juravle [Tue, 11 Nov 2014 14:13:15 +0000 (14:13 +0000)]
Fix lint error.

Change-Id: Ief9b9fe6982e7e76aae74d6c909bd9f4b3f82673

9 years agoMerge "Revert "Use correct register class for refs""
Vladimir Marko [Tue, 11 Nov 2014 12:31:28 +0000 (12:31 +0000)]
Merge "Revert "Use correct register class for refs""

9 years agoRevert "Use correct register class for refs"
Vladimir Marko [Tue, 11 Nov 2014 12:30:29 +0000 (12:30 +0000)]
Revert "Use correct register class for refs"

This reverts commit 5c2555407d823356fb55ea3ffdf281aac00a583e.

Change-Id: I0490e9b1a9470e429f31911c9a4f28f71df78cc1

9 years agoMerge "Add support for long-to-int in the optimizing compiler."
Roland Levillain [Tue, 11 Nov 2014 12:29:57 +0000 (12:29 +0000)]
Merge "Add support for long-to-int in the optimizing compiler."

9 years agoAdd support for long-to-int in the optimizing compiler.
Roland Levillain [Tue, 11 Nov 2014 12:26:26 +0000 (12:26 +0000)]
Add support for long-to-int in the optimizing compiler.

- Add support for the long-to-int Dex instruction in the
  optimizing compiler.
- Generate x86, x86-64 and ARM (but not ARM64) code for
  long-to-int HTypeConversion nodes.
- Add related tests to test/422-type-conversion.
- Also fix comments in test/415-optimizing-arith-neg and
  in test/416-optimizing-arith-not.

Change-Id: I3084af30f2a495d178362ae1154dc7ceb7bf3a58

9 years agoMerge "Use correct register class for refs"
Vladimir Marko [Tue, 11 Nov 2014 12:10:56 +0000 (12:10 +0000)]
Merge "Use correct register class for refs"

9 years agoMerge "Opt compiler: Add arm64 support for a few more IRs."
Nicolas Geoffray [Tue, 11 Nov 2014 10:04:25 +0000 (10:04 +0000)]
Merge "Opt compiler: Add arm64 support for a few more IRs."

9 years agoMerge "Opt compiler: Add arm64 support for floating-point."
Nicolas Geoffray [Tue, 11 Nov 2014 09:58:34 +0000 (09:58 +0000)]
Merge "Opt compiler: Add arm64 support for floating-point."

9 years agoUse correct register class for refs
Serguei Katkov [Thu, 6 Nov 2014 08:45:44 +0000 (14:45 +0600)]
Use correct register class for refs

LoadValue requires thar ref location should reguest kRefReg
register class. The patch fixes GenFilledNewArray to specify
the register class correctly.

This is a fix for the crash of dex2oat on 412-new-array unit test.

Change-Id: I58d969ddac0d84d4024bf686b5b0c12337ca9a37
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "Fix CombineBlocks optimization"
Ian Rogers [Tue, 11 Nov 2014 08:47:57 +0000 (08:47 +0000)]
Merge "Fix CombineBlocks optimization"

9 years agoMerge "Fix x86 art_quick_set64_instance quick entrypoint"
Ian Rogers [Tue, 11 Nov 2014 08:44:56 +0000 (08:44 +0000)]
Merge "Fix x86 art_quick_set64_instance quick entrypoint"

9 years agoART: Fix clobbering low part in 32-bit version of X86Mir2Lir::GenNegDouble
Pavel Vyssotski [Tue, 11 Nov 2014 06:37:56 +0000 (12:37 +0600)]
ART: Fix clobbering low part in 32-bit version of X86Mir2Lir::GenNegDouble

If source registers overlap destination registers the low part of result can be clobbered in current implementation.
For example, for 'neg-double v5, v6' bytecode compiler can generates the following instructions:
  lea     ecx, [edx + 0x80000000]
  mov     eax, ecx

The fix forces source registers to be temp so there is no need to copy the low part.

Change-Id: I986ca17d1dc45c9e9d44a66e501cd354af496fde
Signed-off-by: Pavel Vyssotski <pavel.n.vyssotski@intel.com>
9 years agoFix CombineBlocks optimization
Serguei Katkov [Thu, 6 Nov 2014 07:56:13 +0000 (13:56 +0600)]
Fix CombineBlocks optimization

(df_attributes & DF_DA) means Get not Put.
The patch fixes the condition to eliminate catch block for
get/put operations.

Change-Id: I48036f3614de5116e27c0d6e9a7a342432c9a828
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoFix x86 art_quick_set64_instance quick entrypoint
Serguei Katkov [Wed, 5 Nov 2014 10:13:18 +0000 (16:13 +0600)]
Fix x86 art_quick_set64_instance quick entrypoint

art_quick_set64_instance accept ebx as a 4-th parameter.
At the same time it is used as a temporary for SETUP_REFS_ONLY_CALLEE_SAVE_FRAME.
We should preserve it and restore to pass the right value to artSet64InstanceFromCode.

Change-Id: Iac0a32583be1015e502ae0f8ff57c4b9c0301730
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "Fix parentheses, tidy code."
Ian Rogers [Tue, 11 Nov 2014 04:55:01 +0000 (04:55 +0000)]
Merge "Fix parentheses, tidy code."

9 years agoUse CommonRuntimeTest::boot_class_path_ in DexMethodIteratorTest
Brian Carlstrom [Sun, 9 Nov 2014 22:11:51 +0000 (14:11 -0800)]
Use CommonRuntimeTest::boot_class_path_ in DexMethodIteratorTest

In addition, remove some other unnecessary dependencies.

Change-Id: I5ec97b54c3c064ea98feb70dbfd226118ec98290

9 years agoFix parentheses, tidy code.
Ian Rogers [Tue, 11 Nov 2014 00:34:29 +0000 (16:34 -0800)]
Fix parentheses, tidy code.

Change-Id: I1ce671fa8a402aed3552102cadc96f277346f443

9 years agoMerge "Update dependency after libgtest_libc++_host renaming."
Nicolas Geoffray [Mon, 10 Nov 2014 22:09:09 +0000 (22:09 +0000)]
Merge "Update dependency after libgtest_libc++_host renaming."

9 years agoUpdate dependency after libgtest_libc++_host renaming.
Nicolas Geoffray [Mon, 10 Nov 2014 21:38:15 +0000 (21:38 +0000)]
Update dependency after libgtest_libc++_host renaming.

Change-Id: Ic494c4859d1dd2dd573524777ba9afe0119788e1

9 years agoMerge "ART: Prune links in the dalvik cache"
Andreas Gampe [Mon, 10 Nov 2014 19:14:31 +0000 (19:14 +0000)]
Merge "ART: Prune links in the dalvik cache"

9 years agoMerge "Delete unused imtable field"
Mathieu Chartier [Mon, 10 Nov 2014 19:10:52 +0000 (19:10 +0000)]
Merge "Delete unused imtable field"

9 years agoART: Prune links in the dalvik cache
Andreas Gampe [Mon, 10 Nov 2014 02:14:30 +0000 (18:14 -0800)]
ART: Prune links in the dalvik cache

When pruning the isa-specific directory of the cache, also remove
symbolic links.

Bug: 18035729
Bug: 18153744
Change-Id: I40347ee77e95ff9fc8e6107ba661338f5c7b1db9
(cherry picked from commit de5ed50940452f06b00514af0667972542ee5d59)

9 years agoDelete unused imtable field
Mathieu Chartier [Sat, 8 Nov 2014 02:38:47 +0000 (18:38 -0800)]
Delete unused imtable field

Bug: 17643507

Change-Id: I1fc7ca2d3bdf1810bcc3b46f867b68a4a6d28ed3

(cherry picked from commit f2d556401ec1d82fec31c0b29d712de18d838282

9 years agoOpt compiler: Add arm64 support for a few more IRs.
Alexandre Rames [Fri, 7 Nov 2014 17:13:31 +0000 (17:13 +0000)]
Opt compiler: Add arm64 support for a few more IRs.

Change-Id: I781ddcbc61eb2b04ae80b1c7697e1ed5694bd5b9

9 years agoOpt compiler: Add arm64 support for floating-point.
Alexandre Rames [Fri, 7 Nov 2014 17:13:25 +0000 (17:13 +0000)]
Opt compiler: Add arm64 support for floating-point.

Change-Id: I0d97ab0f5ab770fee62c819505743febbce8835e

9 years agoMerge "Support Java conversions from char to long in opt. compiler."
Roland Levillain [Mon, 10 Nov 2014 14:43:26 +0000 (14:43 +0000)]
Merge "Support Java conversions from char to long in opt. compiler."

9 years agoSupport Java conversions from char to long in opt. compiler.
Roland Levillain [Mon, 10 Nov 2014 13:39:43 +0000 (13:39 +0000)]
Support Java conversions from char to long in opt. compiler.

These char to long conversions generate int-to-long Dex
instructions.

Change-Id: I6a8e71b57870cf5e8d5bc638fabce0fc7593f0b2

9 years agoMerge "Failing test on armv8/optimizing after interface support."
Nicolas Geoffray [Mon, 10 Nov 2014 11:04:16 +0000 (11:04 +0000)]
Merge "Failing test on armv8/optimizing after interface support."

9 years agoFailing test on armv8/optimizing after interface support.
Nicolas Geoffray [Mon, 10 Nov 2014 11:03:16 +0000 (11:03 +0000)]
Failing test on armv8/optimizing after interface support.

Change-Id: I5423196a5bb37cf20fae4aa6df229790486cad95

9 years agoMerge "Support invoke-interface in optimizing."
Nicolas Geoffray [Mon, 10 Nov 2014 10:36:59 +0000 (10:36 +0000)]
Merge "Support invoke-interface in optimizing."

9 years agoSupport invoke-interface in optimizing.
Nicolas Geoffray [Fri, 7 Nov 2014 17:47:25 +0000 (17:47 +0000)]
Support invoke-interface in optimizing.

Change-Id: Ic18d7c3d2810557231caf0571956e0c431f5d384

9 years agoART: GenNegLong incorrectly handled register overlap for x86
nikolay serdjuk [Mon, 10 Nov 2014 09:53:27 +0000 (16:53 +0700)]
ART: GenNegLong incorrectly handled register overlap for x86

There is a bug in the GenNegLong: it should invoke
   OpRegCopy(temp_reg, rl_result.reg.GetHigh());
instead of
   OpRegCopy(temp_reg, rl_result.reg);
But, anyway there is no need to handle the overlap
anymore because it is already handled in OpRegCopyWide()
which is invoked from StoreValueWide().
Change-Id: I379ed23434c72a91e875e753708387be6502bc57
Signed-off-by: nikolay serdjuk <nikolay.y.serdjuk@intel.com>
9 years agoMerge "Fix ld_library_path now that a target can be 64bits only."
Nicolas Geoffray [Mon, 10 Nov 2014 08:36:16 +0000 (08:36 +0000)]
Merge "Fix ld_library_path now that a target can be 64bits only."

9 years agoFix ld_library_path now that a target can be 64bits only.
Nicolas Geoffray [Mon, 10 Nov 2014 08:33:52 +0000 (08:33 +0000)]
Fix ld_library_path now that a target can be 64bits only.

Change-Id: I7cf3429bb460a784433429da19b201cb2947bc48

9 years agoMerge "ART: Fix possible soft+hard failure in verifier"
Andreas Gampe [Sun, 9 Nov 2014 20:45:03 +0000 (20:45 +0000)]
Merge "ART: Fix possible soft+hard failure in verifier"

9 years agoART: Fix possible soft+hard failure in verifier
Andreas Gampe [Tue, 21 Oct 2014 05:25:29 +0000 (22:25 -0700)]
ART: Fix possible soft+hard failure in verifier

It was possible to generate a hard failure and a subsequent soft
failure, which violates a CHECKed invariant.

Refactor code slightly to share common code.

Bug: 17625962

(cherry picked from commit f08663b47ccd3aa083972d62937a328ad80d080e)

Change-Id: Iccd9e30f1087363b19b2faedc10243a2290202c0

9 years agoMerge "Fix thread pool test valgrind flakiness"
Mathieu Chartier [Sun, 9 Nov 2014 20:37:44 +0000 (20:37 +0000)]
Merge "Fix thread pool test valgrind flakiness"

9 years agoFix thread pool test valgrind flakiness
Mathieu Chartier [Sun, 9 Nov 2014 20:30:50 +0000 (12:30 -0800)]
Fix thread pool test valgrind flakiness

The test used to use the counters to see when the tasks were done
but since the counter is incremented before finalize was called, the
test would sometimes finish before the objects were freed. This
resulted in valgrind leaks.

Change-Id: I6dc3cf6a155cde3af5d06b1416773a6ae6f2a6e6

9 years agoMerge "Tidy RegStorage for X86."
Ian Rogers [Sun, 9 Nov 2014 01:12:16 +0000 (01:12 +0000)]
Merge "Tidy RegStorage for X86."

9 years agoMerge "Tidy some uses of IsCompilationEnabled."
Ian Rogers [Sat, 8 Nov 2014 20:19:51 +0000 (20:19 +0000)]
Merge "Tidy some uses of IsCompilationEnabled."

9 years agoTidy RegStorage for X86.
Ian Rogers [Sat, 8 Nov 2014 19:21:21 +0000 (11:21 -0800)]
Tidy RegStorage for X86.

Don't use global variables initialized in constructors to hold onto constant
values, instead use the TargetReg32 helper. Improve this helper with the use
of lookup tables. Elsewhere prefer to use constexpr values as they will have
less runtime cost.
Add an ostream operator to RegStorage for CHECK_EQ and use.

Change-Id: Ib8d092d46c10dac5909ecdff3cc1e18b7e9b1633

9 years agoMerge "Fix dump-oat-core-*"
Ian Rogers [Sat, 8 Nov 2014 17:36:36 +0000 (17:36 +0000)]
Merge "Fix dump-oat-core-*"

9 years agoMerge "Tidy x86 disassembler"
Ian Rogers [Sat, 8 Nov 2014 01:40:16 +0000 (01:40 +0000)]
Merge "Tidy x86 disassembler"

9 years agoTidy some uses of IsCompilationEnabled.
Ian Rogers [Sat, 8 Nov 2014 01:05:19 +0000 (17:05 -0800)]
Tidy some uses of IsCompilationEnabled.

We should be checking IsCompilationEnabled in the compiler, we wouldn't be in
the compiler were compilation disabled.

Change-Id: Ib498fb6d610e4ed517494df01efa4b64a8c12528

9 years agoTidy x86 disassembler
Ian Rogers [Sat, 8 Nov 2014 00:58:38 +0000 (16:58 -0800)]
Tidy x86 disassembler

Change-Id: I2f0a2851a15f5a099a5bc0249e3ea0616cdcd94e

9 years agoFix dump-oat-core-*
Ian Rogers [Sat, 8 Nov 2014 00:55:45 +0000 (16:55 -0800)]
Fix dump-oat-core-*

Change-Id: I53a3bfffb834284c5c3d2297305c7cdc241f8963

9 years agoMerge "Add hash map, reduce excessive hashing"
Mathieu Chartier [Fri, 7 Nov 2014 19:45:41 +0000 (19:45 +0000)]
Merge "Add hash map, reduce excessive hashing"

9 years agoAdd hash map, reduce excessive hashing
Mathieu Chartier [Fri, 7 Nov 2014 00:35:45 +0000 (16:35 -0800)]
Add hash map, reduce excessive hashing

Changed the class def index to use a HashMap instead of unordered_map
so that we can use FindWithHash to reduce how often we need to compute
hashes.

Fixed a bug in ClassLinker::UpdateClass where we didn't properly
handle classes with the same descriptor but different class loaders.
Introduced by previous CL.

Before (fb launch):
1.74% art::ComputeModifiedUtf8Hash(char const*)

After:
0.95% art::ComputeModifiedUtf8Hash(char const*)

Bug: 18054905
Bug: 16828525

Change-Id: Iba2ee37c9837289e0ea187800ba4af322225a994

(cherry picked from commit 564ff985184737977aa26c485d0c1a413e530705)

9 years agoMerge "ART: Use std::vector in GraphChecker"
Andreas Gampe [Fri, 7 Nov 2014 18:40:27 +0000 (18:40 +0000)]
Merge "ART: Use std::vector in GraphChecker"

9 years agoART: Use std::vector in GraphChecker
Andreas Gampe [Fri, 7 Nov 2014 18:34:36 +0000 (10:34 -0800)]
ART: Use std::vector in GraphChecker

(Temporarily) move GraphChecker to use std::vector for errors, as
std::strings need to be destructed.

Bug: 18120045
Change-Id: I7d38001e6b1f3cee14299194d4515b985541d656

9 years agoMerge "Silent cpplint on dex instruction switch."
Nicolas Geoffray [Fri, 7 Nov 2014 16:36:51 +0000 (16:36 +0000)]
Merge "Silent cpplint on dex instruction switch."

9 years agoSilent cpplint on dex instruction switch.
Nicolas Geoffray [Fri, 7 Nov 2014 16:36:02 +0000 (16:36 +0000)]
Silent cpplint on dex instruction switch.

Change-Id: I57a2307c80d38ba29a16cac729bcf3a491549c30

9 years agoMerge "ART: Fix valgrind"
Andreas Gampe [Fri, 7 Nov 2014 16:21:12 +0000 (16:21 +0000)]
Merge "ART: Fix valgrind"

9 years agoMerge "ART: Refactor dex2oat"
Andreas Gampe [Fri, 7 Nov 2014 16:20:54 +0000 (16:20 +0000)]
Merge "ART: Refactor dex2oat"

9 years agoMerge "Opt compiler: Fix HNot on ARM64."
Nicolas Geoffray [Fri, 7 Nov 2014 15:59:41 +0000 (15:59 +0000)]
Merge "Opt compiler: Fix HNot on ARM64."

9 years agoMerge "Implement instanceof in optimizing."
Nicolas Geoffray [Fri, 7 Nov 2014 15:57:49 +0000 (15:57 +0000)]
Merge "Implement instanceof in optimizing."

9 years agoOpt compiler: Fix HNot on ARM64.
Alexandre Rames [Fri, 7 Nov 2014 15:56:50 +0000 (15:56 +0000)]
Opt compiler: Fix HNot on ARM64.

9 years agoMerge "Fix codegen_test: HNot has only one input."
Nicolas Geoffray [Fri, 7 Nov 2014 15:37:39 +0000 (15:37 +0000)]
Merge "Fix codegen_test: HNot has only one input."