OSDN Git Service

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

10 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

10 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"

10 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

10 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"

10 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

10 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"

10 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

10 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"

10 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

10 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

10 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"

10 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

10 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."

10 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."

10 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

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

10 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

10 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."

10 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

10 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."

10 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

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

10 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

10 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."

10 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

10 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"

10 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"

10 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

10 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"

10 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

10 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."

10 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"

10 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>
10 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"

10 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"

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

10 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

10 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

10 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

10 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

10 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."

10 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)

10 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>."

10 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

10 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"

10 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

10 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."

10 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

10 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>
10 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."

10 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

10 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."

10 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

10 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."

10 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

10 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"

10 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

10 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."

10 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

10 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."

10 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."

10 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

10 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"

10 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."

10 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

10 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."""

10 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."

10 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

10 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"

10 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>
10 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."

10 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

10 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"

10 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

10 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*."

10 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

10 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"

10 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

10 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"

10 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

10 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"

10 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

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

10 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>
10 years agoMerge "Fix art build script"
Ian Rogers [Wed, 13 Aug 2014 04:07:22 +0000 (04:07 +0000)]
Merge "Fix art build script"

10 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>
10 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."

10 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

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

10 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

10 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"

10 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

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

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

Change-Id: I61af7f3c9be47d4776371dfe2b97850ea3f3101f

10 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

10 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."

10 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

10 years agoMerge "The image for writing needn't be in low 4GB."
Ian Rogers [Thu, 14 Aug 2014 16:20:34 +0000 (16:20 +0000)]
Merge "The image for writing needn't be in low 4GB."

10 years agoThe image for writing needn't be in low 4GB.
Ian Rogers [Thu, 14 Aug 2014 15:53:12 +0000 (08:53 -0700)]
The image for writing needn't be in low 4GB.

Fix the x86-64 host build.

Change-Id: I69d30933db2d42960c4f9ffdc937cb11e9635fa0