OSDN Git Service

android-x86/art.git
9 years agoMerge "Merge stack usage reduction for overflow checks"
Dave Allison [Wed, 20 Aug 2014 01:08:13 +0000 (01:08 +0000)]
Merge "Merge stack usage reduction for overflow checks"

9 years agoMerge stack usage reduction for overflow checks
Dave Allison [Thu, 14 Aug 2014 17:02:48 +0000 (17:02 +0000)]
Merge stack usage reduction for overflow checks

Cherry pick from: b038ba66a166fb264ca121632f447712e0973b5b

Change-Id: I19999e72ff731d4fc73d91b9ff767de5858c15ee

9 years agoMerge "Fix JDWP event races"
Sebastien Hertz [Tue, 19 Aug 2014 12:09:20 +0000 (12:09 +0000)]
Merge "Fix JDWP event races"

9 years agoFix JDWP event races
Sebastien Hertz [Mon, 18 Aug 2014 17:26:39 +0000 (19:26 +0200)]
Fix JDWP event races

Fix a race where the JDWP connection could be closed before the VM_DEATH event
is sent during runtime shutdown.

Fix potential race where we could wait forever for the JDWP thread to establish
connection.

Bug: 16720689

(cherry picked from commit d8b3537b89fa68599534a65afc3b272639cd4a75)

Change-Id: I4b8996ade6a38fa8f7f23c3000b7184b162907d7

9 years agoMerge "Fix heap corruption and verification."
Mathieu Chartier [Tue, 19 Aug 2014 00:44:50 +0000 (00:44 +0000)]
Merge "Fix heap corruption and verification."

9 years agoFix heap corruption and verification.
Mathieu Chartier [Mon, 18 Aug 2014 22:02:59 +0000 (15:02 -0700)]
Fix heap corruption and verification.

There was a faulty assumption that space End() was always aligned to
card boundaries. This was true for all spaces other than the image
and resulted in heap corruption when the last object of the image
space contained a reference to an object in another space.

Also fixed an error where we called the pre GC verification post GC.

Bug: 17080623

(cherry picked from commit 6724d8649ab73e4fb86c8014bda51b13bddf2f3f)

Change-Id: I931149421c738653863eb6105dfdf7ecd750601a

9 years agoMerge "Really fix target gtest dependencies"
Brian Carlstrom [Mon, 18 Aug 2014 23:42:43 +0000 (23:42 +0000)]
Merge "Really fix target gtest dependencies"

9 years agoReally fix target gtest dependencies
Brian Carlstrom [Mon, 18 Aug 2014 23:07:10 +0000 (16:07 -0700)]
Really fix target gtest dependencies

In 64006834b26f7138131fac87c3b0973cda70e560 we started depending on
TARGET_CORE_JARS which are phony targets and undefined when using
"mm test-art-target".

Change-Id: I671c5d6068ff999782ad5f388f3077f4c1594884

9 years agoAttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.
Brian Carlstrom [Mon, 18 Aug 2014 22:38:34 +0000 (15:38 -0700)]
AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled.

Bug: 17108693
Change-Id: I346cc090e091605c552e5954d7ea1ca4874cea5f

9 years agoMerge "AttachCurrentThread should only warn on missing thread name if CheckJNI is...
Brian Carlstrom [Mon, 18 Aug 2014 23:42:35 +0000 (23:42 +0000)]
Merge "AttachCurrentThread should only warn on missing thread name if CheckJNI is enabled."

9 years agoMerge "AArch64: Add tbz/tbnz and tst."
Vladimir Marko [Tue, 19 Aug 2014 09:58:50 +0000 (09:58 +0000)]
Merge "AArch64: Add tbz/tbnz and tst."

9 years agoAArch64: Add tbz/tbnz and tst.
Zheng Xu [Mon, 18 Aug 2014 09:28:22 +0000 (17:28 +0800)]
AArch64: Add tbz/tbnz and tst.

Since the branch offset supported by tbz/tbnz is quite small(-32k ~ +32k),
it will be replaced by tst and beq/bneq in the fix-up stage if the branch
offset is too large.

Change-Id: I4cace06bec6425e0f2e1f5f7c471eec08d06bca6

9 years agoMerge "Optimized instrumentation listener handling"
Ian Rogers [Mon, 18 Aug 2014 18:22:03 +0000 (18:22 +0000)]
Merge "Optimized instrumentation listener handling"

9 years agoOptimized instrumentation listener handling
Daniel Mihalyi [Mon, 18 Aug 2014 16:45:31 +0000 (18:45 +0200)]
Optimized instrumentation listener handling

Some instrumentation listener lists may be modified while iterating
over the list to deliver an instrumentation event. Therefore the
previous implementation copied the list of listeners before starting
the iteration.

This new implementation only copies the list of instrumentation
listeners when the list is changed. Instances of the list are
reference counted using std::shared_ptr<>.

Change-Id: I1b84db1f2042836dc1110925243f49e5790156d6

9 years agoMerge "[MIPS] Fix the code generated by GenSelectConst32"
Andreas Gampe [Mon, 18 Aug 2014 20:00:14 +0000 (20:00 +0000)]
Merge "[MIPS] Fix the code generated by GenSelectConst32"

9 years agoMerge "ART: Do not recursively abort when visiting locks in a bad state"
Andreas Gampe [Mon, 18 Aug 2014 16:41:58 +0000 (16:41 +0000)]
Merge "ART: Do not recursively abort when visiting locks in a bad state"

9 years agoART: Do not recursively abort when visiting locks in a bad state
Andreas Gampe [Sat, 16 Aug 2014 20:41:10 +0000 (13:41 -0700)]
ART: Do not recursively abort when visiting locks in a bad state

This avoids a nested abort in VisitLocks.

Bug: 1708062116382675

(cherry picked from commit 760172c3ccd6e75f6f1a89d8006934e8ffb1303e)

Change-Id: Id604976ac9dcac0e319fb25cab4d2cbc98d7ee24

9 years agoMerge "ART: Avoid expensive class lookup in compiler driver"
Andreas Gampe [Mon, 18 Aug 2014 16:40:13 +0000 (16:40 +0000)]
Merge "ART: Avoid expensive class lookup in compiler driver"

9 years agoART: Avoid expensive class lookup in compiler driver
Andreas Gampe [Sat, 16 Aug 2014 05:35:46 +0000 (22:35 -0700)]
ART: Avoid expensive class lookup in compiler driver

When we are not compiling multidex, avoid an expensive by-descriptor
lookup for classes when deciding whether to skip compilation.

Bug: 17072698

(cherry picked from commit d84f916d35bb0dc74d7daa075b883e5ee1ce1109)

Change-Id: I19bcb2a2928207fcae0badd466cdc52945bd37c4

9 years agoMerge "Update ziparchive usage to the new API."
Piotr Jastrzebski [Mon, 18 Aug 2014 08:27:04 +0000 (08:27 +0000)]
Merge "Update ziparchive usage to the new API."

9 years agoMerge "Check that we don't accidentally invoke compiled code when -Xint."
Hiroshi Yamauchi [Mon, 18 Aug 2014 18:53:39 +0000 (18:53 +0000)]
Merge "Check that we don't accidentally invoke compiled code when -Xint."

9 years agoCheck that we don't accidentally invoke compiled code when -Xint.
Hiroshi Yamauchi [Sat, 16 Aug 2014 00:11:12 +0000 (17:11 -0700)]
Check that we don't accidentally invoke compiled code when -Xint.

The heap poisoning breakge (b/17018234) would have been detected with
this check.

Bug: 17018234
Change-Id: If4827ea1b02396d41012f0955e55c887387a0565

9 years agoMerge "Avoid handle-less methods in ClassLinker::LinkInterfaceMethods()."
Hiroshi Yamauchi [Tue, 19 Aug 2014 21:58:24 +0000 (21:58 +0000)]
Merge "Avoid handle-less methods in ClassLinker::LinkInterfaceMethods()."

9 years agoAvoid handle-less methods in ClassLinker::LinkInterfaceMethods().
Hiroshi Yamauchi [Tue, 19 Aug 2014 20:10:36 +0000 (13:10 -0700)]
Avoid handle-less methods in ClassLinker::LinkInterfaceMethods().

There were some handle-less methods in local variables across
potential GC points.

Bug: 12687968

Change-Id: I786fbaadf7a52e98194080c67c90fc1c35060d59

9 years agoMerge "Make apps able to run with a failing patchoat"
Brian Carlstrom [Tue, 19 Aug 2014 21:11:18 +0000 (21:11 +0000)]
Merge "Make apps able to run with a failing patchoat"

9 years agoMake apps able to run with a failing patchoat
Alex Light [Thu, 14 Aug 2014 21:16:26 +0000 (14:16 -0700)]
Make apps able to run with a failing patchoat

Bug: 17000769

Change-Id: I0a1a4dc7f5d4bb268530840302ecfb1555231e05

9 years agoMerge "ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test"
Andreas Gampe [Tue, 19 Aug 2014 21:03:22 +0000 (21:03 +0000)]
Merge "ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test"

9 years agoART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test
Andreas Gampe [Mon, 18 Aug 2014 23:43:12 +0000 (16:43 -0700)]
ART: Fix ARM invoke stub, run Generic JNI in jni_compiler_test

On devices which support it, run all jni compiler tests also with
the Generic JNI infrastructure.

Fix art_quick_invoke_stub for ARM32 to enforce 16B stack alignment.
As the native convention does not require as much, the previous
code would keep it unaligned.

Bug: 17107929
Change-Id: Ibce423949846e447d2b0246d07973b6b717691ac

9 years agoMerge "ART: Set default visibility to protected"
Andreas Gampe [Tue, 19 Aug 2014 20:05:38 +0000 (20:05 +0000)]
Merge "ART: Set default visibility to protected"

9 years agoART: Set default visibility to protected
Andreas Gampe [Wed, 13 Aug 2014 07:15:43 +0000 (00:15 -0700)]
ART: Set default visibility to protected

Set default visibility of symbols to protected. This allows the
linker to optimize internal calls and helps avoid plt calls.

Make almost all assembly stubs hidden, as -fvisibility does not
seem to apply to them. Change the assembly tests accordingly. Also
allows to clean up previous hacks to avoid plt calls.

Bug: 16974467

(cherry picked from commit 235e77bd9f19e4faefda109be40f8744f3a66f40)

Change-Id: I9030dcf6116251f434f94a2b08e56e12085af652

9 years agoMerge "ART: More failure output on run-test"
Andreas Gampe [Tue, 19 Aug 2014 18:13:41 +0000 (18:13 +0000)]
Merge "ART: More failure output on run-test"

9 years agoART: More failure output on run-test
Andreas Gampe [Tue, 19 Aug 2014 05:26:49 +0000 (22:26 -0700)]
ART: More failure output on run-test

Change-Id: Ifdf1516e950117069b3cfa58c4bda03281dad661

9 years agoMerge "Check for constructor first when installing tracing stubs."
Jeff Hao [Tue, 19 Aug 2014 17:47:41 +0000 (17:47 +0000)]
Merge "Check for constructor first when installing tracing stubs."

9 years agoCheck for constructor first when installing tracing stubs.
Jeff Hao [Tue, 19 Aug 2014 17:17:36 +0000 (10:17 -0700)]
Check for constructor first when installing tracing stubs.

Addresses comments in
https://android-review.googlesource.com/#/c/104383/ made after the commit.

Bug: 16386215

(cherry picked from commit 5afe466c027c6ac821bf7c9a88cd7de5260a639b)

Change-Id: Ic81161d0b96a0633c4c534a93172cff59312fa61

9 years agoMerge "ART source line debug info in OAT files"
Ian Rogers [Fri, 15 Aug 2014 23:27:29 +0000 (23:27 +0000)]
Merge "ART source line debug info in OAT files"

9 years agoART source line debug info in OAT files
Yevgeny Rouban [Fri, 8 Aug 2014 09:29:38 +0000 (16:29 +0700)]
ART source line debug info in OAT files

OAT files have source line information enough for ART runtime needs like
jump to/from interpreter and thread suspension. But this information
is not enough for finer grained source level debugging and low-level
profiling (VTune or perf).

This patch adds to OAT files two additional sections:
.debug_line - DWARF formatted Elf32 section with detailed source line
              information (mapping from native PC to Java source lines).

In addition to the debugging symbols added using the dex2oat option
--include-debug-symbols, the source line information is added to
the section .debug_line.

The source line info can be read by many Elf reading tools like objdump,
readelf, dwarfdump, gdb, perf, VTune, ...

gdb can use this debug line information in x86. In 64-bit mode
the information can be used if the oat file is mapped in the lower
address space (address has higher 32 bits zeroed). Relocation works.

Testing:
1. art/test/run-test --host --gdb [--64] 001-HelloWorld
2. in gdb: break Main.java:19
3. in gdb: break Runtime.java:111
4. in gdb: run  - stops at void java.lang.Runtime.<init>()
5. in gdb: backtrace  - shows call stack down to main()
6. in gdb: continue - stops at void Main.main() (only in 32-bit mode)
7. in gdb: backtrace  - shows call stack down to main()
8. objdump -W <oat-file> - addresses are from VMA range of .text
   section reported by objdump -h <file>
9. dwarfdump -ka <oat-file> - no errors expected

Size of aosp-x86-eng boot.oat increased by 11% from 80.5Mb to 89.2Mb
with two sections added .debug_line (7.2Mb) and .rel.debug (1.5Mb).

Change-Id: Ib8828832686e49782a63d5529008ff4814ed9cda
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
9 years agoMerge "x86_64: Use RegClassBySize() for field accesses"
Ian Rogers [Fri, 15 Aug 2014 23:14:01 +0000 (23:14 +0000)]
Merge "x86_64: Use RegClassBySize() for field accesses"

9 years agoMerge "Make gdb fixup work with multiple DWARF Compilation Units"
Brian Carlstrom [Fri, 15 Aug 2014 19:05:09 +0000 (19:05 +0000)]
Merge "Make gdb fixup work with multiple DWARF Compilation Units"

9 years agoMerge "Tidy up monitor comments."
Ian Rogers [Fri, 15 Aug 2014 21:47:37 +0000 (21:47 +0000)]
Merge "Tidy up monitor comments."

9 years agoTidy up monitor comments.
Ian Rogers [Fri, 15 Aug 2014 20:39:34 +0000 (13:39 -0700)]
Tidy up monitor comments.

Change-Id: Ib9d993f964ba6e2bec1979b486c26d3920a4a40c

9 years agoMake gdb fixup work with multiple DWARF Compilation Units
Alex Light [Thu, 14 Aug 2014 00:15:38 +0000 (17:15 -0700)]
Make gdb fixup work with multiple DWARF Compilation Units

Change-Id: I83042362fc199ca48c8452230709a377e52a2cf5

9 years agoUpdate ziparchive usage to the new API.
Piotr Jastrzebski [Wed, 13 Aug 2014 06:50:03 +0000 (07:50 +0100)]
Update ziparchive usage to the new API.

Bug: 16162465

Change-Id: I759c751741efd98a6470b1e04c31491686d9a189

9 years ago[MIPS] Fix the code generated by GenSelectConst32
Raghu Gandham [Thu, 14 Aug 2014 20:46:53 +0000 (13:46 -0700)]
[MIPS] Fix the code generated by GenSelectConst32

Change-Id: Icc1d0449566435200a10fa3ca5489f78d122bc89

9 years agoMerge "Make Monitor::Wait more robust to spurious Inflate failures."
Ian Rogers [Fri, 15 Aug 2014 18:39:31 +0000 (18:39 +0000)]
Merge "Make Monitor::Wait more robust to spurious Inflate failures."

9 years agoMake Monitor::Wait more robust to spurious Inflate failures.
Ian Rogers [Fri, 15 Aug 2014 18:09:28 +0000 (11:09 -0700)]
Make Monitor::Wait more robust to spurious Inflate failures.

Bug: 17062710
Change-Id: Ife5f6b335caacc70cab543cd568676d277d3beb6
(cherry picked from commit 6f22fc166ed6c11cad229bff442c064e704de101)

9 years agoMerge "Prevent stubs from being installed in java.lang.reflect.Proxy.<init>."
Jeff Hao [Fri, 15 Aug 2014 16:40:10 +0000 (16:40 +0000)]
Merge "Prevent stubs from being installed in java.lang.reflect.Proxy.<init>."

9 years agoPrevent stubs from being installed in java.lang.reflect.Proxy.<init>.
Jeff Hao [Fri, 15 Aug 2014 00:18:52 +0000 (17:18 -0700)]
Prevent stubs from being installed in java.lang.reflect.Proxy.<init>.

This CL is a better fix for proxy tracing and undoes the changes in
https://android-review.googlesource.com/#/c/103025/

Change-Id: Ie82bb49f07774bd08a6720ddbe5b1f8ee9363acf

9 years agoMerge "[ART] Move to system/core native bridge library"
Calin Juravle [Fri, 15 Aug 2014 11:35:52 +0000 (11:35 +0000)]
Merge "[ART] Move to system/core native bridge library"

9 years ago[ART] Move to system/core native bridge library
Calin Juravle [Tue, 12 Aug 2014 19:55:20 +0000 (20:55 +0100)]
[ART] Move to system/core native bridge library

Some cleanups on the way:
- move NativeBridgeRuntimeCallbacks from a global to a field
- rename native_bridge_library_string to the more suggestive
navtive_bridge_library_path
- clean up imports

Bug: 16884833
Change-Id: I73aab8e212860ba5aee9444d801806d3da326a41

9 years agoMerge "Fix the THREAD_ offsets for MIPS."
Ian Rogers [Fri, 15 Aug 2014 16:33:41 +0000 (16:33 +0000)]
Merge "Fix the THREAD_ offsets for MIPS."

9 years agoFix the THREAD_ offsets for MIPS.
Raghu Gandham [Thu, 14 Aug 2014 23:45:56 +0000 (16:45 -0700)]
Fix the THREAD_ offsets for MIPS.

Change-Id: Iafa5a470d3910e819f8c8cf976213d228b8805d9

9 years agox86_64: Use RegClassBySize() for field accesses
Chao-ying Fu [Thu, 14 Aug 2014 22:59:17 +0000 (15:59 -0700)]
x86_64: Use RegClassBySize() for field accesses

This patch optimizes x86_64 field accesses to use kAnyReg whenever possible
via RegClassBySize().  Previously, using kCoreReg is too strict.

Change-Id: I55a48765b9bfe6b11c4b09f85c4eb08a6e269f98
Signed-off-by: Chao-ying Fu <chao-ying.fu@intel.com>
9 years agoMerge "Mark ParallelGC with gcstress failing."
Nicolas Geoffray [Thu, 14 Aug 2014 18:05:37 +0000 (18:05 +0000)]
Merge "Mark ParallelGC with gcstress failing."

9 years agoMark ParallelGC with gcstress failing.
Nicolas Geoffray [Thu, 14 Aug 2014 17:38:41 +0000 (18:38 +0100)]
Mark ParallelGC with gcstress failing.

Change-Id: Id943286202bf5716588a61092b819d51069a2f53

9 years agoMerge "More efficient stack walk in exception throwing."
Hiroshi Yamauchi [Thu, 14 Aug 2014 17:57:08 +0000 (17:57 +0000)]
Merge "More efficient stack walk in exception throwing."

9 years agoMore efficient stack walk in exception throwing.
Hiroshi Yamauchi [Wed, 13 Aug 2014 18:12:22 +0000 (11:12 -0700)]
More efficient stack walk in exception throwing.

In the exception handling code, we currently walk down the stack
twice, once to get the stack height which we use to compute frame IDs
(the bottom frame is zero), and once more to find the catch block to
jump to.

For a deep stack, this could result in very slow exception
handling. That is, if have a lot of finally or catch blocks that we
end up jumping to in a deep stack, we need to do a lot of
catch/rethrow chains. Since we'd need to walk down to the bottom each
time to compute frames IDs in each catch/rethrow, we'd need to walk
down O(N^2) frames at the worst case.

Instead of frames IDs ((the bottom frame is zero), we will use the
frame depth (the top frame is zero) and no longer need to walk down
the stack just to get the stack height. We walk down O(N) frames.

This was what was happening with
code.google.gson.functional.CircularReferenceTest. With this change,
the test run time went from ~120s down to ~3s on N5 and it no longer
crashes due to the thread suspension timeout.

Bug: 16800209
Change-Id: Ie815df1e3e8fb9d82e40685d4cc2b8838fd8aa07

9 years agoMerge "Fix intrinsic Math.abs(double) for ARM."
Vladimir Marko [Thu, 14 Aug 2014 17:32:23 +0000 (17:32 +0000)]
Merge "Fix intrinsic Math.abs(double) for ARM."

9 years agoFix intrinsic Math.abs(double) for ARM.
Vladimir Marko [Thu, 14 Aug 2014 14:23:32 +0000 (15:23 +0100)]
Fix intrinsic Math.abs(double) for ARM.

Bug: 16930909
Change-Id: I1210cb3aa82a73b9e4d4df1ceddeff78ac1df42b

9 years agoMerge "ART: Tolerate shallow call stack in VMStack_getCallingClassLoader"
Andreas Gampe [Thu, 14 Aug 2014 05:23:05 +0000 (05:23 +0000)]
Merge "ART: Tolerate shallow call stack in VMStack_getCallingClassLoader"

9 years agoART: Tolerate shallow call stack in VMStack_getCallingClassLoader
Andreas Gampe [Tue, 12 Aug 2014 01:51:53 +0000 (18:51 -0700)]
ART: Tolerate shallow call stack in VMStack_getCallingClassLoader

When the call stack does not have the three methods we expect,
the visitor will return a nullptr value.

Add a test to JniTest (and refactor the test a little for code reuse).

Bug: 16867274

(cherry picked from commit 61bf6a1c80bf797af5d7911ff71fc367fdb36742)

Change-Id: I5fb8f91f372a41e0bc11ef9f70640834591afa53

9 years agoMerge "Use homogeneous space compaction for non low memory devices."
Mathieu Chartier [Thu, 14 Aug 2014 02:11:32 +0000 (02:11 +0000)]
Merge "Use homogeneous space compaction for non low memory devices."

9 years agoUse homogeneous space compaction for non low memory devices.
Mathieu Chartier [Thu, 14 Aug 2014 01:07:31 +0000 (18:07 -0700)]
Use homogeneous space compaction for non low memory devices.

Saves nearly as much memory without needing the foreground
transition.

TODO: Pass in these flags from AndroidRuntime.cpp.

Bug: 16401001
Change-Id: Iecad0cc0c04fdf9cabe6f9d7f87c761a94b4142c

9 years agoMerge "Ensure alternate signal stack is minimum size."
Ian Rogers [Thu, 14 Aug 2014 01:38:07 +0000 (01:38 +0000)]
Merge "Ensure alternate signal stack is minimum size."

9 years agoMerge "Move explicit GC after we are done initalizing all classes."
Mathieu Chartier [Thu, 14 Aug 2014 00:17:32 +0000 (00:17 +0000)]
Merge "Move explicit GC after we are done initalizing all classes."

9 years agoEnsure alternate signal stack is minimum size.
Ian Rogers [Wed, 13 Aug 2014 21:37:26 +0000 (14:37 -0700)]
Ensure alternate signal stack is minimum size.

On Mac a sigaltstack may need to be 32KB, setting it to 16KB causes
sigaltstack to fail.

Change-Id: I87f315ae2fb6be4db40a34b350ad5789ff76c113

9 years agoMerge "Added --gcstress and --gcverify shortcut flags to run-test"
Andreas Gampe [Thu, 14 Aug 2014 00:19:43 +0000 (00:19 +0000)]
Merge "Added --gcstress and --gcverify shortcut flags to run-test"

9 years agoMerge "Use handle in one case that spans a gc-point."
Mingyao Yang [Wed, 13 Aug 2014 22:26:50 +0000 (22:26 +0000)]
Merge "Use handle in one case that spans a gc-point."

9 years agoUse handle in one case that spans a gc-point.
Mingyao Yang [Wed, 13 Aug 2014 21:51:03 +0000 (14:51 -0700)]
Use handle in one case that spans a gc-point.

Bug: 16689428
Change-Id: Ib209d2ca1e7024bffb2bc17c5b5899e231c0e2ca

9 years agoMerge "Revert "Revert "Remove GCC atomic workarounds."""
Dan Albert [Tue, 12 Aug 2014 21:42:23 +0000 (21:42 +0000)]
Merge "Revert "Revert "Remove GCC atomic workarounds."""

9 years agoMerge "Initialize art::Atomic's value to 0."
Dan Albert [Tue, 12 Aug 2014 21:13:11 +0000 (21:13 +0000)]
Merge "Initialize art::Atomic's value to 0."

9 years agoInitialize art::Atomic's value to 0.
Dan Albert [Tue, 12 Aug 2014 18:48:34 +0000 (11:48 -0700)]
Initialize art::Atomic's value to 0.

art::Mutex and art::ConditionVariable were DCHECKing that the value was
zero on entering the constructor without ever initializing the value.
Since 0 is a sensible default, make it the default for art::Atomic
rather than initializing for each use.

Bug: 16301104
Change-Id: I9c98b82c80670b7a6c53d46a08236bbed6a64f8f

9 years agoMerge "Implement inlined shift long for 32bit"
Ian Rogers [Thu, 14 Aug 2014 22:27:26 +0000 (22:27 +0000)]
Merge "Implement inlined shift long for 32bit"

9 years agoImplement inlined shift long for 32bit
Yixin Shou [Thu, 14 Aug 2014 18:10:32 +0000 (14:10 -0400)]
Implement inlined shift long for 32bit

Added support for x86 inlined shift long for 32bit

Change-Id: I6caef60dd7d80227c3057fd6f64b0ecb11025afa
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
9 years agoMerge "Execute an application even when dex2oat crashes."
Nicolas Geoffray [Wed, 13 Aug 2014 17:23:06 +0000 (17:23 +0000)]
Merge "Execute an application even when dex2oat crashes."

9 years agoExecute an application even when dex2oat crashes.
Nicolas Geoffray [Tue, 22 Jul 2014 09:48:00 +0000 (10:48 +0100)]
Execute an application even when dex2oat crashes.

Bug: 17000769

Change-Id: Iffeb582862a5e794b6c7364c7ec2368cfd0f2214

9 years agoMerge "Fix crash in VirtualMachine.AllThreads JDWP command"
Sebastien Hertz [Wed, 13 Aug 2014 08:50:00 +0000 (08:50 +0000)]
Merge "Fix crash in VirtualMachine.AllThreads JDWP command"

9 years agoFix crash in VirtualMachine.AllThreads JDWP command
Sebastien Hertz [Tue, 12 Aug 2014 07:09:37 +0000 (09:09 +0200)]
Fix crash in VirtualMachine.AllThreads JDWP command

When collecting all the started threads, we may encounter a thread in the
process of being started from Java code (Thread.start) in the threads list. The
crash occurs when we attempt to access the java.lang.Thread peer (calling
Thread::GetPeer) but the JNI global reference to it (Thread::jpeer) has not
been destroyed yet (which is verified with a check). This only happens when the
thread is starting up.

We now check the thread finished starting up before accessing the Java peer.
This also prevents from returning non-started threads in the reply.

Bug: 16660101

(cherry picked from commit a22d115711b5158cfc67b4f260a5b40f3ab303ca)

Change-Id: Ib61dbd0b01f63bfdda708d3c93eac58284bbe236

9 years agoMerge "Avoid use of std::string where we have const char*."
Ian Rogers [Wed, 13 Aug 2014 05:43:07 +0000 (05:43 +0000)]
Merge "Avoid use of std::string where we have const char*."

9 years agoAvoid use of std::string where we have const char*.
Ian Rogers [Tue, 12 Aug 2014 09:30:58 +0000 (02:30 -0700)]
Avoid use of std::string where we have const char*.

Removing the ClassHelper caused std::string creation for all calls to
Class::GetDescriptor and a significant performance regression. Make the
std::string an out argument so the caller can maintain it and its life time
while allowing GetDescriptor to return the common const char* case.

Don't generate GC maps when compilation is disabled.

Remove other uses of std::string that are occuring on critical paths.
Use the cheaper SkipClass in CompileMethod in CompilerDriver.
Specialize the utf8 as utf16 comparison code for the common shorter byte
encoding.
Force a bit of inlining, remove some UNLIKELYs (they are prone to pessimizing
code), add some LIKELYs.

x86-64 host 1-thread interpret-only of 57 apks:
Before: 29.539s
After: 23.467s

Regular compile:
Before: 1m35.347s
After: 1m20.056s

Bug: 16853450
Change-Id: Ic705ea24784bee24ab80084d06174cbf87d557ad

9 years agoMerge "Reduce stack usage for overflow checks"
Dave Allison [Thu, 14 Aug 2014 00:01:12 +0000 (00:01 +0000)]
Merge "Reduce stack usage for overflow checks"

9 years agoReduce stack usage for overflow checks
Dave Allison [Fri, 25 Jul 2014 23:15:27 +0000 (16:15 -0700)]
Reduce stack usage for overflow checks

This reduces the stack space reserved for overflow checks to 12K, split
into an 8K gap and a 4K protected region.  GC needs over 8K when running
in a stack overflow situation.

Also prevents signal runaway by detecting a signal inside code that
resulted from a signal handler invokation.  And adds a max signal count to
the SignalTest to prevent it running forever.

Also reduces the number of iterations for the InterfaceTest as this was
taking (almost) forever with the --trace option on run-test.

Bug: 15435566

Change-Id: Id4fd46f22d52d42a9eb431ca07948673e8fda694

9 years agoMerge "ART: Inline implementation of min() and max() for long in x86"
Ian Rogers [Thu, 14 Aug 2014 22:20:55 +0000 (22:20 +0000)]
Merge "ART: Inline implementation of min() and max() for long in x86"

9 years agoART: Inline implementation of min() and max() for long in x86
nikolay serdjuk [Fri, 8 Aug 2014 02:55:06 +0000 (09:55 +0700)]
ART: Inline implementation of min() and max() for long in x86

Change-Id: I49de0ee10f79ce49245d6a6c2cd06c5a46b45dca

9 years agoMerge "ART: Don't leave rex_ & length_ uninitialized"
Andreas Gampe [Wed, 13 Aug 2014 07:29:08 +0000 (07:29 +0000)]
Merge "ART: Don't leave rex_ & length_ uninitialized"

9 years agoART: Don't leave rex_ & length_ uninitialized
Andreas Gampe [Wed, 13 Aug 2014 06:24:16 +0000 (23:24 -0700)]
ART: Don't leave rex_ & length_ uninitialized

Don't leave fields uninitialized in the x86-64 utils assembler.

Bug: 16993295
Change-Id: I1d1b96f1d666660024116372de0014f1d19fd487

9 years agoMerge "Implement GenInlinedReverseBits"
Ian Rogers [Wed, 13 Aug 2014 04:53:16 +0000 (04:53 +0000)]
Merge "Implement GenInlinedReverseBits"

9 years agoImplement GenInlinedReverseBits
Yixin Shou [Mon, 28 Jul 2014 18:17:09 +0000 (14:17 -0400)]
Implement GenInlinedReverseBits

Added support for x86 inlined version of reverse method of int and long

Change-Id: I7dbdc13b4afedd56557e9eff038a31517cdb1843
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
9 years agoMerge "Fix art build script"
Ian Rogers [Wed, 13 Aug 2014 04:07:22 +0000 (04:07 +0000)]
Merge "Fix art build script"

9 years agoFix art build script
Junmo Park [Mon, 11 Aug 2014 12:28:16 +0000 (21:28 +0900)]
Fix art build script

Use ART_BUILD_HOST_NDEBUG instead of ART_BUILD_NDEBUG.

Change-Id: I0ff590552f47d3354287a155b51936a7aef82f1f
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
9 years agoMerge "Make OatClass and OatMethod immutable once more."
Ian Rogers [Thu, 14 Aug 2014 20:11:21 +0000 (20:11 +0000)]
Merge "Make OatClass and OatMethod immutable once more."

9 years agoMake OatClass and OatMethod immutable once more.
Ian Rogers [Thu, 14 Aug 2014 18:34:07 +0000 (11:34 -0700)]
Make OatClass and OatMethod immutable once more.

OatClass and OatMethod are representation of disk data and we don't want the
runtime to mutate this.

Change-Id: Id5b8658fd544f5d6e1b9120af134d3644ff1a52c

9 years agoMerge "ART: Fix mac build"
Andreas Gampe [Thu, 14 Aug 2014 19:00:52 +0000 (19:00 +0000)]
Merge "ART: Fix mac build"

9 years agoART: Fix mac build
Andreas Gampe [Thu, 14 Aug 2014 18:15:22 +0000 (11:15 -0700)]
ART: Fix mac build

Change-Id: I4a802f8be7f672b652ce9b056bb810f4e7644c33

9 years agoMerge "ART: Fix run-test in case of relative TMPDIR"
Andreas Gampe [Thu, 14 Aug 2014 18:39:26 +0000 (18:39 +0000)]
Merge "ART: Fix run-test in case of relative TMPDIR"

9 years agoART: Fix run-test in case of relative TMPDIR
Andreas Gampe [Wed, 13 Aug 2014 22:40:22 +0000 (15:40 -0700)]
ART: Fix run-test in case of relative TMPDIR

Relative paths should be resolved to absolute paths, as we are
chdir-ing in the test.

Bug: 16499668

(cherry picked from commit f8b9bbb9680fff693d1056d884c96eaf5360d0d6)

Change-Id: Ic7db35e21f519ced77c4ac468d8e909bcb40b24d

9 years agoMerge "Prevent merge conflicts."
Mathieu Chartier [Tue, 12 Aug 2014 17:35:01 +0000 (17:35 +0000)]
Merge "Prevent merge conflicts."

9 years agoPrevent merge conflicts.
Mathieu Chartier [Tue, 12 Aug 2014 17:13:48 +0000 (10:13 -0700)]
Prevent merge conflicts.

Change-Id: I61af7f3c9be47d4776371dfe2b97850ea3f3101f

9 years agoAdded --gcstress and --gcverify shortcut flags to run-test
Alex Light [Tue, 12 Aug 2014 16:53:50 +0000 (09:53 -0700)]
Added --gcstress and --gcverify shortcut flags to run-test

Change-Id: Ia11fcbc71488710ca32f397c3c1b19613e294d1e

9 years agoMerge "Fix bugs in the x86 and arm versions of generic JNI."
Nicolas Geoffray [Thu, 14 Aug 2014 16:31:49 +0000 (16:31 +0000)]
Merge "Fix bugs in the x86 and arm versions of generic JNI."

9 years agoFix bugs in the x86 and arm versions of generic JNI.
Nicolas Geoffray [Wed, 13 Aug 2014 02:40:45 +0000 (03:40 +0100)]
Fix bugs in the x86 and arm versions of generic JNI.

Also fix the run script of 116-nodex2oat to use the non-prebuild
script for target.

Bug: 17000769

Change-Id: I439fcd710fb8bb408f3288ff8fb34fef23890adb