OSDN Git Service

android-x86/art.git
8 years agoMerge "Enable compilation of secondary dex files"
Calin Juravle [Mon, 14 Mar 2016 11:44:14 +0000 (11:44 +0000)]
Merge "Enable compilation of secondary dex files"
am: fb8932eec4

* commit 'fb8932eec4c09c34dfe759ba151e751293245c0d':
  Enable compilation of secondary dex files

8 years agoMerge "Enable compilation of secondary dex files"
Calin Juravle [Mon, 14 Mar 2016 11:38:24 +0000 (11:38 +0000)]
Merge "Enable compilation of secondary dex files"

8 years agoMerge "Revert "Re-enable test that was causing TimeoutExceptions on ARM64.""
Roland Levillain [Mon, 14 Mar 2016 10:23:22 +0000 (10:23 +0000)]
Merge "Revert "Re-enable test that was causing TimeoutExceptions on ARM64.""
am: 971c69db91

* commit '971c69db916d66096dccd481df621cee7147d20c':
  Revert "Re-enable test that was causing TimeoutExceptions on ARM64."

8 years agoMerge "Revert "Re-enable test that was causing TimeoutExceptions on ARM64.""
Roland Levillain [Mon, 14 Mar 2016 10:18:29 +0000 (10:18 +0000)]
Merge "Revert "Re-enable test that was causing TimeoutExceptions on ARM64.""

8 years agoRevert "Re-enable test that was causing TimeoutExceptions on ARM64."
Roland Levillain [Sat, 12 Mar 2016 13:42:33 +0000 (13:42 +0000)]
Revert "Re-enable test that was causing TimeoutExceptions on ARM64."

The test is failing again on the ARMv8 concurrent collector
configuration
(https://build.chromium.org/p/client.art/builders/armv8-concurrent-collector/builds/1833/steps/test%20libcore/logs/stdio).

This reverts commit 9e9411cc6edf5fa8be0cabd11203fac09e4bac13.

Bug: 26155567
Change-Id: I81b543a48cbbc1eca99efcc430965222ca6edfec

8 years agoEnable clang for ARM builds.
Stephen Hines [Sat, 12 Mar 2016 01:06:06 +0000 (01:06 +0000)]
Enable clang for ARM builds.
am: 48c3ce6733

* commit '48c3ce6733efbc545605b1bfe2ddbdf95a04edf3':
  Enable clang for ARM builds.

8 years agoART: Allow unwinding unattached threads
Andreas Gampe [Sat, 12 Mar 2016 00:07:46 +0000 (00:07 +0000)]
ART: Allow unwinding unattached threads
am: b9d4f99977

* commit 'b9d4f999773754ab4e84496edf60af60b05119de':
  ART: Allow unwinding unattached threads

8 years agoMerge "ART: mterp arm/arm64 cleanup"
buzbee [Fri, 11 Mar 2016 23:13:56 +0000 (23:13 +0000)]
Merge "ART: mterp arm/arm64 cleanup"
am: e717e2c2c4

* commit 'e717e2c2c436da1d6daa572bd3142e34aef25b1c':
  ART: mterp arm/arm64 cleanup

8 years agoMerge "ART: mterp arm/arm64 cleanup"
Bill Buzbee [Fri, 11 Mar 2016 23:05:59 +0000 (23:05 +0000)]
Merge "ART: mterp arm/arm64 cleanup"

8 years agoEnable clang for ARM builds.
Stephen Hines [Thu, 3 Mar 2016 02:26:29 +0000 (18:26 -0800)]
Enable clang for ARM builds.

Bug: http://b/25130937

We disable the integrated assembler for the ARM interpreter because
Clang can't handle the syntax present.

(cherry picked from commit a388c5a6291dbfb9a8366181a752050f4898d4ff)

Change-Id: Iefd5ba922eec54a2167e8a057c459b289aaf2ef3

8 years agoART: mterp arm/arm64 cleanup
buzbee [Fri, 11 Mar 2016 17:51:11 +0000 (09:51 -0800)]
ART: mterp arm/arm64 cleanup

Assembly code cleanup in response to comments from already-submitted
CL: https://android-review.googlesource.com/#/c/188977/

Change-Id: I0ea85c5759a08cb50ef3e97dc5cf79b3ba041640

8 years agoMerge "Enable clang for ARM builds."
Stephen Hines [Fri, 11 Mar 2016 21:27:36 +0000 (21:27 +0000)]
Merge "Enable clang for ARM builds."
am: 2f74be0856

* commit '2f74be0856b56942614ec65896853a58a37b7aff':
  Enable clang for ARM builds.

8 years agoMerge "Assembly region TLAB allocation fast path for arm."
Hiroshi Yamauchi [Fri, 11 Mar 2016 21:27:36 +0000 (21:27 +0000)]
Merge "Assembly region TLAB allocation fast path for arm."
am: 91cdf71e16

* commit '91cdf71e166630eb5e28e02298b0ba6ed4037553':
  Assembly region TLAB allocation fast path for arm.

8 years agoMerge "Enable clang for ARM builds."
Stephen Hines [Fri, 11 Mar 2016 21:19:48 +0000 (21:19 +0000)]
Merge "Enable clang for ARM builds."

8 years agoMerge "Assembly region TLAB allocation fast path for arm."
Hiroshi Yamauchi [Fri, 11 Mar 2016 21:18:21 +0000 (21:18 +0000)]
Merge "Assembly region TLAB allocation fast path for arm."

8 years agoAssembly region TLAB allocation fast path for arm.
Hiroshi Yamauchi [Wed, 24 Feb 2016 20:51:18 +0000 (12:51 -0800)]
Assembly region TLAB allocation fast path for arm.

This is for the CC collector.

Share the common fast path code with the tlab fast path code.

Speedup (on N5):
        BinaryTrees:  2291 ->  902 ms (-60%)
        MemAllocTest: 2137 -> 1845 ms (-14%)

Bug: 9986565
Bug: 12687968

Change-Id: Ica63094ec2f85eaa4fd04d202a20090399275d85

8 years agoMerge "ART: Allow unwinding unattached threads"
Andreas Gampe [Fri, 11 Mar 2016 20:22:27 +0000 (20:22 +0000)]
Merge "ART: Allow unwinding unattached threads"
am: 43bad209f9

* commit '43bad209f99df82412dadab5e3b735bb12d257ab':
  ART: Allow unwinding unattached threads

8 years agoART: Allow unwinding unattached threads
Andreas Gampe [Tue, 1 Mar 2016 22:38:37 +0000 (14:38 -0800)]
ART: Allow unwinding unattached threads

Partial revert of commit ed8b723c5f3989d2593ec21c65c96d6d8bf25579.

Make it (constexpr) configurable whether we allow unwinding native
stacks of unattached threads.

Bug: 27449879

(cherry picked from commit 8d1594da6e97cd11580baf30ee4b75d4e7e2616a)

Change-Id: Iad3f3dde63155993bb4efb7bbbbde3e36f1379cc

8 years agoMerge "ART: Allow unwinding unattached threads"
Christopher Ferris [Fri, 11 Mar 2016 20:14:18 +0000 (20:14 +0000)]
Merge "ART: Allow unwinding unattached threads"

8 years agoMerge "Integrate BitwiseNegated into shared framework."
Artem Serov [Fri, 11 Mar 2016 19:57:39 +0000 (19:57 +0000)]
Merge "Integrate BitwiseNegated into shared framework."
am: 95f931eefd

* commit '95f931eefd6a694a27548c3503ca56559a2b868b':
  Integrate BitwiseNegated into shared framework.

8 years agoMerge "Integrate BitwiseNegated into shared framework."
Vladimir Marko [Fri, 11 Mar 2016 19:48:08 +0000 (19:48 +0000)]
Merge "Integrate BitwiseNegated into shared framework."

8 years agoMerge "Typo in comment in art::mirror::Object::IdentityHashCode."
Roland Levillain [Fri, 11 Mar 2016 19:36:56 +0000 (19:36 +0000)]
Merge "Typo in comment in art::mirror::Object::IdentityHashCode."
am: cdd3991f82

* commit 'cdd3991f821f027c9ac6674057603ba4ad9c2bb0':
  Typo in comment in art::mirror::Object::IdentityHashCode.

8 years agoMerge "Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()"
David Srbecky [Fri, 11 Mar 2016 19:30:58 +0000 (19:30 +0000)]
Merge "Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()"
am: 5e447d872a

* commit '5e447d872a9529e5002d08dd97643c400ba9176c':
  Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()

8 years agoMerge "Typo in comment in art::mirror::Object::IdentityHashCode."
Roland Levillain [Fri, 11 Mar 2016 19:28:44 +0000 (19:28 +0000)]
Merge "Typo in comment in art::mirror::Object::IdentityHashCode."

8 years agoMerge "Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()"
David Srbecky [Fri, 11 Mar 2016 19:25:45 +0000 (19:25 +0000)]
Merge "Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()"

8 years agoFix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()
David Srbecky [Fri, 11 Mar 2016 18:48:55 +0000 (18:48 +0000)]
Fix DCHECK in OatQuickMethodHeader::GetFrameSizeInBytes()

We should check whether the frame is divisible by kStackAlignment.

Change-Id: I5936a6e90b38c09775b4c3a8212641e639c4181c

8 years agoMerge "Tests for round() method."
Aart Bik [Fri, 11 Mar 2016 18:49:16 +0000 (18:49 +0000)]
Merge "Tests for round() method."
am: fe9242b97d

* commit 'fe9242b97d3270e28d88971be71593787342cc4f':
  Tests for round() method.

8 years agoMerge "Tests for round() method."
Aart Bik [Fri, 11 Mar 2016 18:43:28 +0000 (18:43 +0000)]
Merge "Tests for round() method."

8 years agoMerge "Suppress a valgrind libc issue."
Hiroshi Yamauchi [Fri, 11 Mar 2016 18:31:02 +0000 (18:31 +0000)]
Merge "Suppress a valgrind libc issue."
am: 24129be9f8

* commit '24129be9f8cb6a80d246eeda20b2ef1397190f29':
  Suppress a valgrind libc issue.

8 years agoMerge "Suppress a valgrind libc issue."
Hiroshi Yamauchi [Fri, 11 Mar 2016 18:24:22 +0000 (18:24 +0000)]
Merge "Suppress a valgrind libc issue."

8 years agoMerge "Revert "Revert "Allow duplicated methods in different DWARF line tables."""
David Srbecky [Fri, 11 Mar 2016 18:23:44 +0000 (18:23 +0000)]
Merge "Revert "Revert "Allow duplicated methods in different DWARF line tables."""
am: 2de1e8a52e

* commit '2de1e8a52ef8d4b2e033f3404ca9cc970bb5149c':
  Revert "Revert "Allow duplicated methods in different DWARF line tables.""

8 years agoMerge "DWARF: Compensate for compiler\'s off-by-one instruction."
David Srbecky [Fri, 11 Mar 2016 18:23:44 +0000 (18:23 +0000)]
Merge "DWARF: Compensate for compiler\'s off-by-one instruction."
am: 9faab4dd50

* commit '9faab4dd50d2bdda12284c6b8d3837943a73b5da':
  DWARF: Compensate for compiler's off-by-one instruction.

8 years agoSuppress a valgrind libc issue.
Hiroshi Yamauchi [Thu, 10 Mar 2016 21:49:14 +0000 (13:49 -0800)]
Suppress a valgrind libc issue.

To prevent our valgrind tests from failing.

Bug: 27596582
Bug: 27156726
Change-Id: Ic55256bd09fdffcf2a0c8fa4fa7951bc648b86a8

8 years agoMerge "Revert "Revert "Allow duplicated methods in different DWARF line tables."""
David Srbecky [Fri, 11 Mar 2016 18:19:11 +0000 (18:19 +0000)]
Merge "Revert "Revert "Allow duplicated methods in different DWARF line tables."""

8 years agoRevert "Revert "Allow duplicated methods in different DWARF line tables.""
David Srbecky [Fri, 11 Mar 2016 14:35:45 +0000 (14:35 +0000)]
Revert "Revert "Allow duplicated methods in different DWARF line tables.""

This reverts commit 8862fac4a0b97d827d2808146d2d79b8d799b998.

Change-Id: I4d5629df4580b7ac08a5cb04924c56eecad3ad25

8 years agoMerge "DWARF: Compensate for compiler's off-by-one instruction."
David Srbecky [Fri, 11 Mar 2016 18:16:35 +0000 (18:16 +0000)]
Merge "DWARF: Compensate for compiler's off-by-one instruction."

8 years agoMerge "Symbolize native debug information for AOTed methods in boot.oat."
David Srbecky [Fri, 11 Mar 2016 17:48:57 +0000 (17:48 +0000)]
Merge "Symbolize native debug information for AOTed methods in boot.oat."
am: 6030b15ce8

* commit '6030b15ce83ac2a9fb78cd9d137b6f4b441e6417':
  Symbolize native debug information for AOTed methods in boot.oat.

8 years agoMerge "Add trampoline symbols to native debug info."
David Srbecky [Fri, 11 Mar 2016 17:42:59 +0000 (17:42 +0000)]
Merge "Add trampoline symbols to native debug info."
am: b2359d4fb2

* commit 'b2359d4fb2c9de12830301faede59f4d5fa46278':
  Add trampoline symbols to native debug info.

8 years agoMerge "Symbolize native debug information for AOTed methods in boot.oat."
David Srbecky [Fri, 11 Mar 2016 17:41:52 +0000 (17:41 +0000)]
Merge "Symbolize native debug information for AOTed methods in boot.oat."

8 years agoSymbolize native debug information for AOTed methods in boot.oat.
David Srbecky [Mon, 7 Mar 2016 20:47:29 +0000 (20:47 +0000)]
Symbolize native debug information for AOTed methods in boot.oat.

The oatdump symbolizer will produce all DWARF information now,
not just the symtab. This allows us to recover almost all native
debug information after the fact, even for non-debuggable oat files.

The main drawback is that non-debuggable oat files do not have
enough stackmaps to provide reasonable line stepping experience.
We might also be missing inlined methods from backtraces.

Change-Id: I73ff6f43a3a0e5a0907af353f74f04e9b0129590

8 years agoMerge "Minor optimizations of debug::WriteCFISection."
David Srbecky [Fri, 11 Mar 2016 17:38:55 +0000 (17:38 +0000)]
Merge "Minor optimizations of debug::WriteCFISection."
am: fdaa583e78

* commit 'fdaa583e785383cca68df63c7ef53fcaf667b8e2':
  Minor optimizations of debug::WriteCFISection.

8 years agoMerge "Add trampoline symbols to native debug info."
David Srbecky [Fri, 11 Mar 2016 17:35:48 +0000 (17:35 +0000)]
Merge "Add trampoline symbols to native debug info."

8 years agoAdd trampoline symbols to native debug info.
David Srbecky [Fri, 11 Mar 2016 17:11:44 +0000 (17:11 +0000)]
Add trampoline symbols to native debug info.

The debugger needs them to unwind through the trampolines and to
understand what is happening in the call stack.

Change-Id: Ia554058c3796788adcd7336d620a7734eb366905

8 years agoMerge "Minor optimizations of debug::WriteCFISection."
David Srbecky [Fri, 11 Mar 2016 17:33:22 +0000 (17:33 +0000)]
Merge "Minor optimizations of debug::WriteCFISection."

8 years agoMinor optimizations of debug::WriteCFISection.
David Srbecky [Fri, 11 Mar 2016 16:54:22 +0000 (16:54 +0000)]
Minor optimizations of debug::WriteCFISection.

The method might be passed method infos without CFI in some cases.
Use the sorting phase as a chance to filter them out.
This makes sure we do not allocate memory and sort methods if there
is in fact no work to do.

Also change the sort to stable - for the sake of determinism.

Change-Id: I97d57d77e8b709d0d49d6971f66b955efcbb57b0

8 years agoTypo in comment in art::mirror::Object::IdentityHashCode.
Roland Levillain [Fri, 11 Mar 2016 16:27:27 +0000 (16:27 +0000)]
Typo in comment in art::mirror::Object::IdentityHashCode.

Change-Id: I5380d1c34deda32c668e48ed5f80e96b29f5b0b5

8 years agoMerge "MIPS: Don\'t use for calling entrypoints"
Goran Jakovljevic [Fri, 11 Mar 2016 16:54:12 +0000 (16:54 +0000)]
Merge "MIPS: Don\'t use  for calling entrypoints"
am: fa3857ee61

* commit 'fa3857ee61e193471ad3547e02bafccdc712b556':
  MIPS: Don't use $t8 for calling entrypoints

8 years agoMerge "MIPS: Don't use $t8 for calling entrypoints"
Roland Levillain [Fri, 11 Mar 2016 16:47:02 +0000 (16:47 +0000)]
Merge "MIPS: Don't use $t8 for calling entrypoints"

8 years agoMerge "Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constan...
Anton Shamin [Fri, 11 Mar 2016 16:44:03 +0000 (16:44 +0000)]
Merge "Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constant"""""
am: a9e68021a8

* commit 'a9e68021a88566f31b0ba1a997ac3c61d3081c40':
  Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constant""""

8 years agoMerge "Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constan...
Nicolas Geoffray [Fri, 11 Mar 2016 16:37:23 +0000 (16:37 +0000)]
Merge "Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constant"""""

8 years agoMerge "Fix invariant in reference type propagation."
Nicolas Geoffray [Fri, 11 Mar 2016 16:22:46 +0000 (16:22 +0000)]
Merge "Fix invariant in reference type propagation."
am: 62a9841469

* commit '62a9841469f99810b2b39b0748cb113af0e8913a':
  Fix invariant in reference type propagation.

8 years agoDWARF: Compensate for compiler's off-by-one instruction.
David Srbecky [Fri, 11 Mar 2016 14:25:00 +0000 (14:25 +0000)]
DWARF: Compensate for compiler's off-by-one instruction.

The compiler generates stackmaps with PC value which is *after*
the instruction rather PC of the instruction itself. This causes
trouble when generating native line number mapping since the
branch instruction itself will not be mapped, and consequently
we get incorrect line number in backtraces. Add code to compensate
for this. See the in-code comment for more details.

Change-Id: I72c992e6d08a767f314290d562421b251ae60732

8 years agoMIPS: Don't use $t8 for calling entrypoints
Goran Jakovljevic [Fri, 11 Mar 2016 14:22:18 +0000 (15:22 +0100)]
MIPS: Don't use $t8 for calling entrypoints

When jumping to entrypoints, $t9 register must be used. Value of $gp
is calculated based on value from $t9 and it should contain the
address of the first instruction of the entrypoint.

This CL enables MIPS32 and MIPS64 to boot.

Change-Id: Idf0f7f479cceafabb88b1b087da190dbda86e1c3

8 years agoMerge "Fix invariant in reference type propagation."
Nicolas Geoffray [Fri, 11 Mar 2016 16:15:32 +0000 (16:15 +0000)]
Merge "Fix invariant in reference type propagation."

8 years agoMerge "Revert "Allow duplicated methods in different DWARF line tables.""
David Srbecky [Fri, 11 Mar 2016 14:43:35 +0000 (14:43 +0000)]
Merge "Revert "Allow duplicated methods in different DWARF line tables.""
am: 60e10c8564

* commit '60e10c8564f47de0b7f29b26d040c591d5a396b5':
  Revert "Allow duplicated methods in different DWARF line tables."

8 years agoMerge "Revert "Allow duplicated methods in different DWARF line tables.""
David Srbecky [Fri, 11 Mar 2016 14:35:33 +0000 (14:35 +0000)]
Merge "Revert "Allow duplicated methods in different DWARF line tables.""

8 years agoRevert "Allow duplicated methods in different DWARF line tables."
David Srbecky [Fri, 11 Mar 2016 14:34:47 +0000 (14:34 +0000)]
Revert "Allow duplicated methods in different DWARF line tables."

This reverts commit 3c5462364daee17e651299f1c370f965f34baed8.

Change-Id: Icc63c47cd53abeff2a470ae84715012a1ef988ac

8 years agoMerge "Allow duplicated methods in different DWARF line tables."
David Srbecky [Fri, 11 Mar 2016 14:33:20 +0000 (14:33 +0000)]
Merge "Allow duplicated methods in different DWARF line tables."
am: 8583b44f8b

* commit '8583b44f8b5788b57be4d4738072dc6a99c49823':
  Allow duplicated methods in different DWARF line tables.

8 years agoMerge "Allow generation of native debug info for multiple methods."
David Srbecky [Fri, 11 Mar 2016 14:33:19 +0000 (14:33 +0000)]
Merge "Allow generation of native debug info for multiple methods."
am: cc22d41d4d

* commit 'cc22d41d4de2514cc3cb4ed569764a35f15da48d':
  Allow generation of native debug info for multiple methods.

8 years agoMerge "Refactor MethodDebugInfo (input of DWARF writer)."
David Srbecky [Fri, 11 Mar 2016 14:33:19 +0000 (14:33 +0000)]
Merge "Refactor MethodDebugInfo (input of DWARF writer)."
am: 1a008a1277

* commit '1a008a127730710f8f56c1ca66385e1b062a2dcb':
  Refactor MethodDebugInfo (input of DWARF writer).

8 years agoMerge "Allow duplicated methods in different DWARF line tables."
David Srbecky [Fri, 11 Mar 2016 14:28:00 +0000 (14:28 +0000)]
Merge "Allow duplicated methods in different DWARF line tables."

8 years agoMerge "Allow generation of native debug info for multiple methods."
David Srbecky [Fri, 11 Mar 2016 14:25:56 +0000 (14:25 +0000)]
Merge "Allow generation of native debug info for multiple methods."

8 years agoMerge "Refactor MethodDebugInfo (input of DWARF writer)."
David Srbecky [Fri, 11 Mar 2016 14:25:40 +0000 (14:25 +0000)]
Merge "Refactor MethodDebugInfo (input of DWARF writer)."

8 years agoAllow duplicated methods in different DWARF line tables.
David Srbecky [Fri, 11 Mar 2016 11:49:20 +0000 (11:49 +0000)]
Allow duplicated methods in different DWARF line tables.

This makes the compilation units more self-contained.
If method is mentioned in the compilation unit, we can
also find its line table there. Otherwise, we would have
to search through all of them.

Change-Id: I0cdfb9006e796e41e123fc1f4fecd15312570068

8 years agoFix invariant in reference type propagation.
Nicolas Geoffray [Fri, 11 Mar 2016 13:35:51 +0000 (13:35 +0000)]
Fix invariant in reference type propagation.

Also some cleanups.

Change-Id: I7f0ec7d06b4bab10dbfa230c757447d311658f93

8 years agoIntegrate BitwiseNegated into shared framework.
Artem Serov [Tue, 9 Feb 2016 17:15:29 +0000 (17:15 +0000)]
Integrate BitwiseNegated into shared framework.

Share implementation between arm and arm64.

Change-Id: I0dd12e772cb23b4c181fd0b1e2a447470b1d8702

8 years agoRevert "Revert "Revert "Revert "Change condition to opposite if lhs is constant""""
Anton Shamin [Mon, 15 Feb 2016 06:48:36 +0000 (12:48 +0600)]
Revert "Revert "Revert "Revert "Change condition to opposite if lhs is constant""""

This reverts commit d4aee949b3dd976295201b5310f13aa2df40afa1.

Change-Id: I505b8c9863c310a3a708f580b00d425b750c9541

8 years agoMerge "Fix thread race when fetching the ProfilingInfo object."
Nicolas Geoffray [Fri, 11 Mar 2016 11:51:18 +0000 (11:51 +0000)]
Merge "Fix thread race when fetching the ProfilingInfo object."
am: 2af7213a4e

* commit '2af7213a4e0d395fe22dcdce6ec10a3bd131023d':
  Fix thread race when fetching the ProfilingInfo object.

8 years agoMerge "Fix thread race when fetching the ProfilingInfo object."
Nicolas Geoffray [Fri, 11 Mar 2016 11:33:13 +0000 (11:33 +0000)]
Merge "Fix thread race when fetching the ProfilingInfo object."

8 years agoFix thread race when fetching the ProfilingInfo object.
Nicolas Geoffray [Fri, 11 Mar 2016 09:57:57 +0000 (09:57 +0000)]
Fix thread race when fetching the ProfilingInfo object.

Problem is:
1) Compiler fetches the ProfilingInfo of A, it's null.
2) Mutator creates the ProfilingInfo.
3) Compiler notifies it's not using A anymore, calls
   ProfilingInfo::DecrementInlineUse -> Crash as we expected
   ProfilingInfo::IncrementUse to be called before.

Also update some namings to better reflect what is going on.

Change-Id: I55ea4c5d81988131467095e18a0d13a8be9d0ef7

8 years agoART: Allow unwinding unattached threads
Andreas Gampe [Tue, 1 Mar 2016 22:38:37 +0000 (14:38 -0800)]
ART: Allow unwinding unattached threads

Partial revert of commit ed8b723c5f3989d2593ec21c65c96d6d8bf25579.

Make it (constexpr) configurable whether we allow unwinding native
stacks of unattached threads.

Bug: 27449879

Change-Id: I307a80c9a0166f33fa8a41e492d7eb0d77d0e44f

8 years agoMerge "Log when why an Unwind failed."
Christopher Ferris [Thu, 10 Mar 2016 22:50:36 +0000 (22:50 +0000)]
Merge "Log when why an Unwind failed."
am: b7f257f353

* commit 'b7f257f353b1eb2db2732939a0404c118316891d':
  Log when why an Unwind failed.

8 years agoLog when why an Unwind failed.
Christopher Ferris [Thu, 10 Mar 2016 22:29:13 +0000 (22:29 +0000)]
Log when why an Unwind failed.
am: fa16a6d003

* commit 'fa16a6d0039801293f7f4c035b4876d72f880adf':
  Log when why an Unwind failed.

8 years agoLog when why an Unwind failed.
Christopher Ferris [Thu, 10 Mar 2016 00:03:00 +0000 (16:03 -0800)]
Log when why an Unwind failed.

Bug: 27449879

(cherry picked from commit f193878a242f5b86db62986a9b2cba5d99505c17)

Change-Id: Ieb4f258feaaef70a4982495e4f63ed778280b8da

8 years agoMerge "Log when why an Unwind failed."
Christopher Ferris [Thu, 10 Mar 2016 22:12:34 +0000 (22:12 +0000)]
Merge "Log when why an Unwind failed."

8 years agoAllocate interrupted exception before re-acquiring lock
Mathieu Chartier [Thu, 10 Mar 2016 21:06:33 +0000 (21:06 +0000)]
Allocate interrupted exception before re-acquiring lock
am: 3a84e31b24

* commit '3a84e31b247f0c7b6c31946f15def732d556282c':
  Allocate interrupted exception before re-acquiring lock

8 years agoMerge "Allocate interrupted exception before re-acquiring lock"
Mathieu Chartier [Thu, 10 Mar 2016 20:13:48 +0000 (20:13 +0000)]
Merge "Allocate interrupted exception before re-acquiring lock"
am: 3d63118460

* commit '3d63118460dbcff330cb188ea86bd5ad5cda5f99':
  Allocate interrupted exception before re-acquiring lock

8 years agoMerge "ART: Release all resource on MonitorPool destruction"
Andreas Gampe [Thu, 10 Mar 2016 20:13:48 +0000 (20:13 +0000)]
Merge "ART: Release all resource on MonitorPool destruction"
am: 7aedfdb232

* commit '7aedfdb232f167300cd8e3322e193eee6f433061':
  ART: Release all resource on MonitorPool destruction

8 years agoMerge "Allocate interrupted exception before re-acquiring lock"
Mathieu Chartier [Thu, 10 Mar 2016 20:07:55 +0000 (20:07 +0000)]
Merge "Allocate interrupted exception before re-acquiring lock"

8 years agoAllocate interrupted exception before re-acquiring lock
Mathieu Chartier [Thu, 10 Mar 2016 18:49:35 +0000 (10:49 -0800)]
Allocate interrupted exception before re-acquiring lock

Allocating the monitor exception after acquiring the lock can cause
a deadlock in the following scenario:

Reference queue daemon interrupted from wait() on
ReferenceQueue.class. Tries to allocate exception and starts a GC
that blocks on WaitForGcToComplete.

Some other thread is already doing a GC, and tries to enqueue the
cleared refereneces. This deadlocks trying to lock Reference.class
in ReferenceQueue.add.

Bug: 27508829

(cherry picked from commit daed5d81e2fdb9d1e03ee6c34567347b92dcfb22)

Change-Id: Ibdc2769077976545385d8c6ecc5bf26316eb70a1

8 years agoMerge "ART: Release all resource on MonitorPool destruction"
Andreas Gampe [Thu, 10 Mar 2016 20:06:27 +0000 (20:06 +0000)]
Merge "ART: Release all resource on MonitorPool destruction"

8 years agoART: Release all resource on MonitorPool destruction
Andreas Gampe [Thu, 10 Mar 2016 16:33:45 +0000 (08:33 -0800)]
ART: Release all resource on MonitorPool destruction

To be valgrind-clean, we need to release the current metadata and
all chunks on destruction.

Bug: 27156726
Change-Id: Ia51cea139a6e9669975b6ac045f5223cd68f1f6a

8 years agoAllocate interrupted exception before re-acquiring lock
Mathieu Chartier [Thu, 10 Mar 2016 18:49:35 +0000 (10:49 -0800)]
Allocate interrupted exception before re-acquiring lock

Allocating the monitor exception after acquiring the lock can cause
a deadlock in the following scenario:

Reference queue daemon interrupted from wait() on
ReferenceQueue.class. Tries to allocate exception and starts a GC
that blocks on WaitForGcToComplete.

Some other thread is already doing a GC, and tries to enqueue the
cleared refereneces. This deadlocks trying to lock Reference.class
in ReferenceQueue.add.

Bug: 27508829
Change-Id: Icbc18b6b8d1e906c3f7413810d6cefdda06eb921

8 years agoLog when why an Unwind failed.
Christopher Ferris [Thu, 10 Mar 2016 00:03:00 +0000 (16:03 -0800)]
Log when why an Unwind failed.

Bug: 27449879
Change-Id: If7ae5f0991da6fd64dd45e22d69eecef1388a28e

8 years agoTests for round() method.
Aart Bik [Thu, 10 Mar 2016 18:59:10 +0000 (10:59 -0800)]
Tests for round() method.

Rationale:
While working on some ideas on implementing round(),
I wrote these tests. We might as well use them to
ensure any future work does not break (test also
provides an easy place to add future "difficult" values).

bug=26327751

Change-Id: I911a3e1e5fe45147bc1b7214225c9aec4e979965

8 years agoMerge "ART: Do not use vixld - workaround to fix dex2oatds."
Vladimir Marko [Thu, 10 Mar 2016 18:57:35 +0000 (18:57 +0000)]
Merge "ART: Do not use vixld - workaround to fix dex2oatds."
am: 8e21351507

* commit '8e213515077e11acdd664ec4a770a73e2f804863':
  ART: Do not use vixld - workaround to fix dex2oatds.

8 years agoMerge "Avoid generating dead code on frame enter/exit. This includes stack operations...
Aart Bik [Thu, 10 Mar 2016 18:50:08 +0000 (18:50 +0000)]
Merge "Avoid generating dead code on frame enter/exit. This includes stack operations and, on x86, call/pop to read PC."
am: 8189b0b4e1

* commit '8189b0b4e1f14420382b87e900dd6a50aec9c2de':
  Avoid generating dead code on frame enter/exit. This includes stack operations and, on x86, call/pop to read PC.

8 years agoMerge "ART: Do not use vixld - workaround to fix dex2oatds."
Vladimir Marko [Thu, 10 Mar 2016 18:48:37 +0000 (18:48 +0000)]
Merge "ART: Do not use vixld - workaround to fix dex2oatds."

8 years agoMerge "Avoid generating dead code on frame enter/exit. This includes stack operations...
Aart Bik [Thu, 10 Mar 2016 18:39:18 +0000 (18:39 +0000)]
Merge "Avoid generating dead code on frame enter/exit. This includes stack operations and, on x86, call/pop to read PC."

8 years agoART: Do not use vixld - workaround to fix dex2oatds.
Vladimir Marko [Thu, 10 Mar 2016 17:25:50 +0000 (17:25 +0000)]
ART: Do not use vixld - workaround to fix dex2oatds.

This is a quick workaround for ODR violations caused
by linking libvixl.a compiled without VIXL_DEBUG with
the libartd-compiler.a compiled with VIXL_DEBUG.

Bug: 27588884
Change-Id: Ib1af165f177f125f03cdd99777dff4c2912f6405

8 years agoMerge "Add Mips abiflags section to the oatfile."
Douglas Leung [Thu, 10 Mar 2016 17:25:19 +0000 (17:25 +0000)]
Merge "Add Mips abiflags section to the oatfile."
am: 8411aa3d88

* commit '8411aa3d88f4baf583ec4ecd62bb619cacd28acb':
  Add Mips abiflags section to the oatfile.

8 years agoMerge "MIPS32: java.lang.Thread, and java.lang.String intrinsics:"
Chris Larsen [Thu, 10 Mar 2016 17:25:19 +0000 (17:25 +0000)]
Merge "MIPS32: java.lang.Thread, and java.lang.String intrinsics:"
am: 0555c78e50

* commit '0555c78e5015ea4f9b1c064a5c77eb693f2edbe1':
  MIPS32: java.lang.Thread, and java.lang.String intrinsics:

8 years agoAvoid generating dead code on frame enter/exit.
Aart Bik [Thu, 3 Mar 2016 00:06:13 +0000 (16:06 -0800)]
Avoid generating dead code on frame enter/exit.
This includes stack operations and, on x86, call/pop to read PC.

bug=26997690

Rationale:
(1) If method is fully intrinsified, and makes no calls in slow
    path or uses special input, no need to require current method.
(2) Invoke instructions with HasPcRelativeDexCache() generate code
    that reads the PC (call/pop) on x86. However, if the invoke is
    an intrinsic that is later replaced with actual code, this PC
    reading code may be dead.

Example X86 (before/after):

0x0000108c: 83EC0C      sub esp, 12
0x0000108f: 890424      mov [esp], eax       <-- not needed
0x00001092: E800000000  call +0 (0x00001097)
0x00001097: 58          pop eax              <-- dead code to read PC
0x00001098: F30FB8C1    popcnt eax, ecx
0x0000109c: F30FB8DA    popcnt ebx, edx
0x000010a0: 03D8        add ebx, eax
0x000010a2: 89D8        mov eax, ebx
0x000010a4: 83C40C      add esp, 12          <-- not needed
0x000010a7: C3          ret

0x0000103c: F30FB8C1    popcnt eax, ecx
0x00001040: F30FB8DA    popcnt ebx, edx
0x00001044: 03D8        add ebx, eax
0x00001046: 89D8        mov eax, ebx
0x00001048: C3          ret

Example ARM64 (before/after):

0x0000103c: f81e0fe0      str x0, [sp, #-32]!
0x00001040: f9000ffe      str lr, [sp, #24]
0x00001044: dac01020      clz x0, x1
0x00001048: f9400ffe      ldr lr, [sp, #24]
0x0000104c: 910083ff      add sp, sp, #0x20 (32)
0x00001050: d65f03c0      ret

0x0000103c: dac01020      clz x0, x1
0x00001040: d65f03c0      ret

Change-Id: I8377db80c9a901a08fff4624927cf4a6e585da0c

8 years agoMerge "Add Mips abiflags section to the oatfile."
Vladimir Marko [Thu, 10 Mar 2016 17:11:44 +0000 (17:11 +0000)]
Merge "Add Mips abiflags section to the oatfile."

8 years agoMerge "MIPS32: java.lang.Thread, and java.lang.String intrinsics:"
Roland Levillain [Thu, 10 Mar 2016 17:09:37 +0000 (17:09 +0000)]
Merge "MIPS32: java.lang.Thread, and java.lang.String intrinsics:"

8 years agoTweak JIT hotness threshold.
Nicolas Geoffray [Thu, 10 Mar 2016 16:56:41 +0000 (16:56 +0000)]
Tweak JIT hotness threshold.
am: d0562a324d

* commit 'd0562a324d9eb56f69b967f1c4da03019026ff33':
  Tweak JIT hotness threshold.

8 years agoTweak JIT hotness threshold.
Nicolas Geoffray [Tue, 8 Mar 2016 16:50:21 +0000 (16:50 +0000)]
Tweak JIT hotness threshold.

bug:23128949
bug:27398183

Change-Id: Iffde6ba064e54546827cb8fc2a670baedf2e2409
(cherry picked from commit 83f080ac824d0964941c3fbaa957cac874f827b0)

8 years agoMerge "Disable some image_test cases with concurrent collector."
Roland Levillain [Thu, 10 Mar 2016 15:37:48 +0000 (15:37 +0000)]
Merge "Disable some image_test cases with concurrent collector."
am: 59c16a9163

* commit '59c16a91633cb2268f9a7c052f6a761d711d0184':
  Disable some image_test cases with concurrent collector.

8 years agoMerge "Tweak JIT hotness threshold."
Nicolas Geoffray [Thu, 10 Mar 2016 15:31:10 +0000 (15:31 +0000)]
Merge "Tweak JIT hotness threshold."
am: 06bc0f3c07

* commit '06bc0f3c075b7d38bee0fc74ae15fdd9cefe90ba':
  Tweak JIT hotness threshold.

8 years agoMerge "Disable some image_test cases with concurrent collector."
Roland Levillain [Thu, 10 Mar 2016 15:28:34 +0000 (15:28 +0000)]
Merge "Disable some image_test cases with concurrent collector."