OSDN Git Service

android-x86/art.git
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 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 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 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 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 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."

9 years agoFix codegen_test: HNot has only one input.
Nicolas Geoffray [Fri, 7 Nov 2014 15:36:32 +0000 (15:36 +0000)]
Fix codegen_test: HNot has only one input.

Change-Id: I13e54d39dfbf80593f2e9592dbd286c54938e95a

9 years agoImplement instanceof in optimizing.
Nicolas Geoffray [Thu, 6 Nov 2014 08:59:20 +0000 (08:59 +0000)]
Implement instanceof in optimizing.

- Only fast-path for now: null or same class.
- Use pQuickInstanceofNonTrivial for slow path.

Change-Id: Ic5196b94bef792f081f3cb4d15157058e1381e6b

9 years agoMerge "Opt compiler: specify that inputs and outputs don't overlap on arm64."
Nicolas Geoffray [Fri, 7 Nov 2014 15:19:09 +0000 (15:19 +0000)]
Merge "Opt compiler: specify that inputs and outputs don't overlap on arm64."

9 years agoOpt compiler: specify that inputs and outputs don't overlap on arm64.
Alexandre Rames [Thu, 6 Nov 2014 12:41:16 +0000 (12:41 +0000)]
Opt compiler: specify that inputs and outputs don't overlap on arm64.

Change-Id: I062b70c6534c0d203674dccddbf11f94da72cdb4

9 years agoMerge "Do not update Out after it has a valid location."
Nicolas Geoffray [Fri, 7 Nov 2014 14:43:52 +0000 (14:43 +0000)]
Merge "Do not update Out after it has a valid location."

9 years agoDo not update Out after it has a valid location.
Nicolas Geoffray [Fri, 7 Nov 2014 10:48:10 +0000 (10:48 +0000)]
Do not update Out after it has a valid location.

Slow paths use LocationSummary to know where to move
things around, and they are executed at the end of the
code generation.

This fix is needed for https://android-review.googlesource.com/#/c/113345/.

Change-Id: Id336c6409479b1de6dc839b736a7234d08a7774a

9 years agoMerge "The test now uses libarttest.so, so fails in ndebug mode."
Nicolas Geoffray [Fri, 7 Nov 2014 14:37:28 +0000 (14:37 +0000)]
Merge "The test now uses libarttest.so, so fails in ndebug mode."

9 years agoThe test now uses libarttest.so, so fails in ndebug mode.
Nicolas Geoffray [Fri, 7 Nov 2014 14:32:42 +0000 (14:32 +0000)]
The test now uses libarttest.so, so fails in ndebug mode.

libarttest.so is linked against libartd.so, so running the
test with libart.so will fail.

Change-Id: I395d03b4b4e6b37d81c5066950afe521801410e4

9 years agoMerge "Support floats and doubles in fields."
Nicolas Geoffray [Fri, 7 Nov 2014 13:57:03 +0000 (13:57 +0000)]
Merge "Support floats and doubles in fields."

9 years agoSupport floats and doubles in fields.
Nicolas Geoffray [Thu, 6 Nov 2014 15:15:31 +0000 (15:15 +0000)]
Support floats and doubles in fields.

Change-Id: I19832106633405403f0461b3fe13b268abe39db3

9 years agoMerge "Fix build."
Narayan Kamath [Fri, 7 Nov 2014 13:13:36 +0000 (13:13 +0000)]
Merge "Fix build."

9 years agoMerge "Fix thread priorities for unstarted threads."
Narayan Kamath [Fri, 7 Nov 2014 13:13:23 +0000 (13:13 +0000)]
Merge "Fix thread priorities for unstarted threads."

9 years agoFix build.
Narayan Kamath [Fri, 7 Nov 2014 13:07:00 +0000 (13:07 +0000)]
Fix build.

This is due to CFLAGS differences between branches.

Change-Id: I170ac59401c10b394dd6b2c9eac167869d926fdc

9 years agoMerge "Support TARGET_ARCH=64 with no 2ND_TARGET_ARCH."
Nicolas Geoffray [Fri, 7 Nov 2014 13:04:59 +0000 (13:04 +0000)]
Merge "Support TARGET_ARCH=64 with no 2ND_TARGET_ARCH."

9 years agoFix thread priorities for unstarted threads.
Narayan Kamath [Tue, 7 Oct 2014 11:51:26 +0000 (12:51 +0100)]
Fix thread priorities for unstarted threads.

Calls to Thread.setPriority for unstarted threads now behave
similar to dalvik. Note that there's still some inconsistent
behaviour carried over from dalvik.

- high priority threads from bg_non_interactive processes are
  not always moved to the SP_FOREGROUND cgroup.
- we do not attempt to adjust the cgroup of a native thread
  that's attaching.

Note that on android, the system_server will change the
cgroups for all running threads in a process when it moves
into the foreground and background. It's by design that
threads in a background process can request to be moved
to the foreground by setting a higher priority.

bug: 17893086

(cherry picked from commit 1bd326a5e2aaff06a5bcae9cb2c42a4e8de31401)

Change-Id: Iad362f7c5c8697c349f2b6d7fcba69a4e141883e

9 years agoSupport TARGET_ARCH=64 with no 2ND_TARGET_ARCH.
Nicolas Geoffray [Fri, 7 Nov 2014 10:10:39 +0000 (10:10 +0000)]
Support TARGET_ARCH=64 with no 2ND_TARGET_ARCH.

This saves build time for the target defined in device/generic/armv8,
by only building 64bits bin and lib.

Change-Id: Ie2ad1411c127e60ca7569b4cbf4c0b52a4382d3e

9 years agoART: Refactor dex2oat
Andreas Gampe [Wed, 5 Nov 2014 18:18:32 +0000 (10:18 -0800)]
ART: Refactor dex2oat

Take the huge dex2oat main function apart. Move to ScopedLogging.

Bug: 18276913
Bug: 17444504
Change-Id: Iab3d7437d60508088cb16bf33da0c5defbf7ae03

9 years agoART: Fix valgrind
Andreas Gampe [Sat, 25 Oct 2014 05:13:45 +0000 (22:13 -0700)]
ART: Fix valgrind

Allow ValgrindMallocSpace wrapper for RosAlloc.Requires refactoring,
as ValgrindMallocSpace was bound to the signature of DlMallocSpace.

Also turn of native stack dumping when running under Valgrind to
work around b/18119146.

Ritzperf before and after
Mean               3190.725   3082.475
Standard Error     11.68407   10.37911
Mode               3069       2980
Median             3182.5     3051.5
Variance           16382.117  12927.125
Standard Deviation 127.99264  113.69751
Kurtosis           1.1065632  0.3657799
Skewness           0.9013805  0.9117792
Range              644        528
Minimum            2991       2928
Maximum            3635       3456
Count              120        120

Bug: 18119146
Change-Id: I25558ea7cb578406011dede9d3d0bdbfee4ff4d5

9 years agoMerge remote-tracking branch 'goog/stage-aosp-master' into HEAD
The Android Open Source Project [Fri, 7 Nov 2014 01:43:39 +0000 (17:43 -0800)]
Merge remote-tracking branch 'goog/stage-aosp-master' into HEAD

9 years agoam b7ce2074: Merge "Mac host doesn\'t define ART_USE_FUTEXES."
Ian Rogers [Fri, 7 Nov 2014 00:58:31 +0000 (00:58 +0000)]
am b7ce2074: Merge "Mac host doesn\'t define ART_USE_FUTEXES."

* commit 'b7ce2074ef43ff221cdec6ddba953f0b0c67447b':
  Mac host doesn't define ART_USE_FUTEXES.

9 years agoMerge "Add hash set"
Mathieu Chartier [Fri, 7 Nov 2014 00:27:44 +0000 (00:27 +0000)]
Merge "Add hash set"

9 years agoAdd hash set
Mathieu Chartier [Mon, 3 Nov 2014 19:41:47 +0000 (11:41 -0800)]
Add hash set

More memory efficient than libcxx since we do not box the values.

Change intern table to use new hash set. Clean up intern table by
removing const casts and deleting unnecessary code.

Changed the class linker to use a hash set, also added a pre-zygote
class table.

5 samples of:
adb shell stop && adb shell start && sleep 60 && adb shell dumpsys meminfo
Before:
165929 kB: Native
175859 kB: Native
168434 kB: Native
166559 kB: Native
169958 kB: Native

After:
160972 kB: Native
159439 kB: Native
157204 kB: Native
165093 kB: Native
163039 kB: Native

TODO: Add HashTable which is implemented by using a HashSet.
TODO: Use for DexFile::find_class_def_misses_.
TODO: Investigate using mem maps instead of native heap.

Bug: 17808975

Change-Id: I93e376cf6eb9628cf52f4aefdadb6157acfb799a

(cherry picked from commit e05d1d5fd86867afc7513b1c546375dba11eee50)

9 years agoMerge "Mac host doesn't define ART_USE_FUTEXES."
Ian Rogers [Thu, 6 Nov 2014 22:28:03 +0000 (22:28 +0000)]
Merge "Mac host doesn't define ART_USE_FUTEXES."

9 years agoMac host doesn't define ART_USE_FUTEXES.
Ian Rogers [Thu, 6 Nov 2014 22:26:29 +0000 (14:26 -0800)]
Mac host doesn't define ART_USE_FUTEXES.

Change-Id: Ic2c23d267cfd56db58754f45154436a085eeaa78

9 years agoam 1e3339ea: Merge "Move include of system headers outside namesapce."
Chih-Hung Hsieh [Thu, 6 Nov 2014 20:21:25 +0000 (20:21 +0000)]
am 1e3339ea: Merge "Move include of system headers outside namesapce."

* commit '1e3339ea2d40fff16ef8cb154f7bb4146af0e59b':
  Move include of system headers outside namesapce.

9 years agoMerge "Move include of system headers outside namesapce."
Chih-Hung Hsieh [Thu, 6 Nov 2014 20:18:47 +0000 (20:18 +0000)]
Merge "Move include of system headers outside namesapce."

9 years agoam beb96e7e: Merge "Fixed BuildCheckedDiv signature"
Calin Juravle [Thu, 6 Nov 2014 19:21:56 +0000 (19:21 +0000)]
am beb96e7e: Merge "Fixed BuildCheckedDiv signature"

* commit 'beb96e7eeffcb2964f9bba9b1428d60befedaf37':
  Fixed BuildCheckedDiv signature

9 years agoMove include of system headers outside namesapce.
Chih-Hung Hsieh [Thu, 6 Nov 2014 18:49:16 +0000 (10:49 -0800)]
Move include of system headers outside namesapce.

This happened to work with old system header files.
But with newer glibc 2.15 header files, typedef names
such as __u32 and __u64 are included into a namespace
and could not be used in other system header files.

BUG: 18275923
Change-Id: I7c61270d08a7b1c69cee55a6a23b00372f0f51c8

9 years agoMerge "Fixed BuildCheckedDiv signature"
Calin Juravle [Thu, 6 Nov 2014 18:20:46 +0000 (18:20 +0000)]
Merge "Fixed BuildCheckedDiv signature"

9 years agoFixed BuildCheckedDiv signature
Calin Juravle [Thu, 6 Nov 2014 18:19:23 +0000 (18:19 +0000)]
Fixed BuildCheckedDiv signature

The second_reg might actually be a constant.

Change-Id: I08cecc41e3d65ab73b41eba2aca702dea8e1ed95

9 years agoam f55996d6: Merge "421-large-frame fails on optimizing/arm64."
Nicolas Geoffray [Thu, 6 Nov 2014 17:42:34 +0000 (17:42 +0000)]
am f55996d6: Merge "421-large-frame fails on optimizing/arm64."

* commit 'f55996d6b4a672e09fbe3a3563646a7682719b4a':
  421-large-frame fails on optimizing/arm64.

9 years agoMerge "421-large-frame fails on optimizing/arm64."
Nicolas Geoffray [Thu, 6 Nov 2014 17:38:53 +0000 (17:38 +0000)]
Merge "421-large-frame fails on optimizing/arm64."

9 years ago421-large-frame fails on optimizing/arm64.
Nicolas Geoffray [Thu, 6 Nov 2014 17:37:50 +0000 (17:37 +0000)]
421-large-frame fails on optimizing/arm64.

It fails now that we support throw.

Change-Id: Ifc5011c0c41b63ff5d13f750c897cea11b845025