OSDN Git Service

android-x86/art.git
9 years agoAdd 5 minute time out to host run tests.
Ian Rogers [Mon, 15 Sep 2014 05:49:15 +0000 (22:49 -0700)]
Add 5 minute time out to host run tests.

Change-Id: I88b23ab71b89f81d54162ea34d4e28f72087f2b2

9 years agoMerge "Add native support for FinalizerList.makeCircularListIfUnenqueued"
Mathieu Chartier [Sun, 14 Sep 2014 21:53:28 +0000 (21:53 +0000)]
Merge "Add native support for FinalizerList.makeCircularListIfUnenqueued"

9 years agoAdd native support for FinalizerList.makeCircularListIfUnenqueued
Mathieu Chartier [Fri, 12 Sep 2014 19:58:05 +0000 (12:58 -0700)]
Add native support for FinalizerList.makeCircularListIfUnenqueued

Called from FinalizerReference.enqueueSentinelReference to prevent
a race where the GC updates pendingNext of the sentinel reference
before enqueueSentinelReference.

Bug: 17462553

(cherry picked from commit 3256166df40981f1f1997a5f00303712277c963f)

Change-Id: I7ad2fd250c2715d1aeb919bd548ef9aab24f30a2

9 years agoMerge "Add time out to dump check point."
Ian Rogers [Sun, 14 Sep 2014 02:33:18 +0000 (02:33 +0000)]
Merge "Add time out to dump check point."

9 years agoAdd time out to dump check point.
Ian Rogers [Sun, 14 Sep 2014 02:20:54 +0000 (19:20 -0700)]
Add time out to dump check point.

Change-Id: I2263c092c9957585ae90cf846e77dc8861f8a14b

9 years agoMerge "Remove dex file index building mutex."
Ian Rogers [Sat, 13 Sep 2014 08:11:17 +0000 (08:11 +0000)]
Merge "Remove dex file index building mutex."

9 years agoRemove dex file index building mutex.
Ian Rogers [Sat, 13 Sep 2014 06:10:21 +0000 (23:10 -0700)]
Remove dex file index building mutex.

First thread to get to max misses builds the index and sets an atomic, other
threads continue and return null. Avoids lock contention and removes a member
variable.

Change-Id: Ia91e4a8fd915941aea849f019c85b67894ec6e71

9 years agoMerge "Pass current thread as argument to alloc instrumentation."
Ian Rogers [Sat, 13 Sep 2014 05:18:12 +0000 (05:18 +0000)]
Merge "Pass current thread as argument to alloc instrumentation."

9 years agoPass current thread as argument to alloc instrumentation.
Ian Rogers [Sat, 13 Sep 2014 02:59:33 +0000 (19:59 -0700)]
Pass current thread as argument to alloc instrumentation.

Avoids recomputation in the hot allocation path when instrumentation is
enabled.

Change-Id: Ic6e7d7d0744f4756787f75d21fddd3c50280b588

9 years agoMerge "Fix stale root error in verifier"
Mathieu Chartier [Sat, 13 Sep 2014 01:28:02 +0000 (01:28 +0000)]
Merge "Fix stale root error in verifier"

9 years agoFix stale root error in verifier
Mathieu Chartier [Sat, 13 Sep 2014 00:01:24 +0000 (17:01 -0700)]
Fix stale root error in verifier

There was a stale root error caused by the static roots from
the reg types. These were visitied if there was an active verifier
in the method_verifiers_ but this is not always the case when a GC
is run. The fix is to always visit the static method verifier roots.

This only showed up as a bug without an image since these roots
were primitive classes and always in the image, and therefore
didn't ever need to be updated due to moving GC.

(cherry picked from commit 6167864e28e4e12658ebdbaf1d5239acdaf4aaa4)

Change-Id: I592f2770570de97b431671cfbd409f63697892f1

9 years agoMerge "Compile time performance improvements focusing on interpret-only."
Ian Rogers [Fri, 12 Sep 2014 23:23:30 +0000 (23:23 +0000)]
Merge "Compile time performance improvements focusing on interpret-only."

9 years agoCompile time performance improvements focusing on interpret-only.
Ian Rogers [Wed, 10 Sep 2014 21:44:24 +0000 (14:44 -0700)]
Compile time performance improvements focusing on interpret-only.

Reduce virtual method dispatch in the method verifier and make more code
inline-able.
Add a StringPiece with const char* equality operator to avoid redundant
StringPieces and strlens.
Remove back link from register line to verifier and pass as argument to reduce
size of RegisterLine.
Remove instruction length from instruction flags and compute from the
instruction, again to reduce size.
Add suspend checks to resolve and verify to allow for more easy monitor
inflation and reduce contention on Locks::thread_list_suspend_thread_lock_.
Change ThrowEarlierClassFailure to throw pre-allocated exception.
Avoid calls to Thread::Current() by passing self.
Template specialize IsValidClassName.
Make ANR reporting with SIGQUIT run using checkpoints rather than suspending
all threads. This makes the stack/lock analysis less lock error prone.
Extra Barrier assertions and condition variable time out is now returned as a
boolean both from Barrier and ConditionVariable::Wait.

2 threaded host x86-64 interpret-only numbers from 341 samples:
Before change: Avg 176.137ms 99% CI 3.468ms to 1060.770ms
After change: Avg 139.163% 99% CI 3.027ms to 838.257ms
Reduction in average compile time after change is 20.9%.
Slow-down without change is 26.5%.

Bug: 17471626 - Fix bug where RegTypeCache::JavaLangObject/String/Class/Throwable
could return unresolved type when class loading is disabled.
Bug: 17398101

Change-Id: Id59ce3cc520701c6ecf612f7152498107bc40684

9 years agoMerge "Fix and re-enable FreeList large object space for 64 bit"
Mathieu Chartier [Fri, 12 Sep 2014 21:07:44 +0000 (21:07 +0000)]
Merge "Fix and re-enable FreeList large object space for 64 bit"

9 years agoFix and re-enable FreeList large object space for 64 bit
Mathieu Chartier [Tue, 9 Sep 2014 00:42:48 +0000 (17:42 -0700)]
Fix and re-enable FreeList large object space for 64 bit

Not enabled on 32 bit due to virtual memory fragmentation concerns.
The new free list large object space ensures that allocations are
page aligned by using a side table for accounting data.

(cherry picked from commit 66e222aa48e6d2fe4c78a1df938364b82bc83e72)

Change-Id: Idbcbe75cb86b6d9b3d8b20f3048631a48c511458

9 years agoMerge "Quick compiler (arm64) Fix inline Math.round()"
buzbee [Fri, 12 Sep 2014 20:50:33 +0000 (20:50 +0000)]
Merge "Quick compiler (arm64) Fix inline Math.round()"

9 years agoQuick compiler (arm64) Fix inline Math.round()
buzbee [Fri, 12 Sep 2014 17:40:47 +0000 (10:40 -0700)]
Quick compiler (arm64) Fix inline Math.round()

Math.round is detected and inlined for arm64.  However, the
arm64 backend incorrectly modified a source operand in place
during the round sequence.  Depending on how registers are
allocated, that modification could persist.  Changed to use a
temp register for the intermediate result.

Internal b/17411468

Change-Id: I7c636f985e193f8ff838768fde3b741e443bb1bb

9 years agoMerge "Add a test for our NPE checks."
Nicolas Geoffray [Fri, 12 Sep 2014 09:01:14 +0000 (09:01 +0000)]
Merge "Add a test for our NPE checks."

9 years agoAdd a test for our NPE checks.
Nicolas Geoffray [Thu, 11 Sep 2014 17:46:01 +0000 (18:46 +0100)]
Add a test for our NPE checks.

Change-Id: Ic83af6c582cd955168d01db7bdbdf27aebff64ab

9 years agoMerge "x86 fault handler does not know about movb"
Nicolas Geoffray [Fri, 12 Sep 2014 08:52:22 +0000 (08:52 +0000)]
Merge "x86 fault handler does not know about movb"

9 years agoMerge "Add fast path to VMClassLoader.findLoadedClass"
Mathieu Chartier [Fri, 12 Sep 2014 01:05:06 +0000 (01:05 +0000)]
Merge "Add fast path to VMClassLoader.findLoadedClass"

9 years agoAdd fast path to VMClassLoader.findLoadedClass
Mathieu Chartier [Thu, 11 Sep 2014 21:21:41 +0000 (14:21 -0700)]
Add fast path to VMClassLoader.findLoadedClass

VMClassLoader.findLoadedClass now calls FindClassInPathClassLoader
as a fast path. Exclusive time results (trace view maps launch):

Before:
nativeFillInStackTrace 1.4%
defineClassNative 1.2%
findLoadedClass 0.2%

After:
nativeFillInStackTrace 0.5%
defineClassNative 0.0%
findLoadedClass 0.9%

(cherry picked from commit 194116c836080de14245a3a7c4617d07b8abf8cf)

Change-Id: I63fd7b4bccb71789e92bd39d1d3f9d0de22535de

9 years agoMerge "ART: Fix preverified setting in VerifyClass"
Andreas Gampe [Fri, 12 Sep 2014 00:49:46 +0000 (00:49 +0000)]
Merge "ART: Fix preverified setting in VerifyClass"

9 years agoART: Fix preverified setting in VerifyClass
Andreas Gampe [Thu, 11 Sep 2014 17:59:33 +0000 (10:59 -0700)]
ART: Fix preverified setting in VerifyClass

Make sure soft-failed classes cannot set methods to pre-verified.

Bug: 1682852517465185

(cherry picked from commit 3892cf8da7d5e76c0dee585fc8f69df773680525)

Change-Id: I09c0a68ca722978459741311148eae7614f9ca49

9 years agoMerge "Delete pin table"
Mathieu Chartier [Thu, 11 Sep 2014 23:57:49 +0000 (23:57 +0000)]
Merge "Delete pin table"

9 years agoDelete pin table
Mathieu Chartier [Thu, 11 Sep 2014 20:14:31 +0000 (13:14 -0700)]
Delete pin table

The pin table was brought over from dalvik but not really needed
since ART doesn't support pinning in movable spaces. The only
thing it did was hold objects live for JNI functions.
This shouldn't be necessary since people keep jni references to
these objects or else they could never release the elements.

Bug: 17456946

(cherry picked from commit a967c62e4e6675d3553445aa8e95a09e7a3381b0)
Change-Id: Ibed0d029157ffb9e75ecd80d4d544d690986c090

9 years agoMerge "Print the command line and ABI in stack dumps like debuggerd."
Brian Carlstrom [Thu, 11 Sep 2014 23:14:15 +0000 (23:14 +0000)]
Merge "Print the command line and ABI in stack dumps like debuggerd."

9 years agoPrint the command line and ABI in stack dumps like debuggerd.
Jeff Brown [Thu, 11 Sep 2014 01:41:18 +0000 (18:41 -0700)]
Print the command line and ABI in stack dumps like debuggerd.

Ensure the heading is "Cmd line:" just like debuggerd and
as it used to be in Dalvik.
Fix a missing newline.
Trim all training nulls from the command line.
Don't bother printing the original command line if unset.
Add the ABI to the dump to help the native stack symbol tool.

Bug: 17474152

(cherry picked from commit 09865b8aa2d85f2824fbdac8034cab01629e8adc)

Change-Id: I52d55660276092ed73b61d5e0708460ec39f1a4a

9 years agoMerge "Add DumpClass context on CacheField and CacheMethod failures"
Brian Carlstrom [Thu, 11 Sep 2014 20:10:09 +0000 (20:10 +0000)]
Merge "Add DumpClass context on CacheField and CacheMethod failures"

9 years agoAdd DumpClass context on CacheField and CacheMethod failures
Brian Carlstrom [Wed, 10 Sep 2014 17:08:37 +0000 (10:08 -0700)]
Add DumpClass context on CacheField and CacheMethod failures

Change-Id: Ia1992d98c998cdc98896f5912da50c4849de7699

9 years agoMerge changes I57f70381,I9f225825
Brian Carlstrom [Thu, 11 Sep 2014 19:28:59 +0000 (19:28 +0000)]
Merge changes I57f70381,I9f225825

* changes:
  Fix cpplint issue.
  Fix crash when connected to DDMS

9 years agoMerge "Use WellKnownClasses in ThrowStackOverflowError to reduce changes of further...
Brian Carlstrom [Thu, 11 Sep 2014 19:28:53 +0000 (19:28 +0000)]
Merge "Use WellKnownClasses in ThrowStackOverflowError to reduce changes of further stack overflow"

9 years agoFix cpplint issue.
Brian Carlstrom [Thu, 11 Sep 2014 19:21:04 +0000 (12:21 -0700)]
Fix cpplint issue.

Change-Id: I57f70381b005a3601bba1ab4d646e974860af1c4

9 years agoUse WellKnownClasses in ThrowStackOverflowError to reduce changes of further stack...
Brian Carlstrom [Thu, 11 Sep 2014 06:10:47 +0000 (23:10 -0700)]
Use WellKnownClasses in ThrowStackOverflowError to reduce changes of further stack overflow

Bug: 17463118

(cherry picked from commit bfc2b98a3cf7a9d580f2477e54aabded5004fd26)

Change-Id: Iea04bb7f6c4daa9cbdb8ee6ce8ddcbeb9f05aa3d

9 years agoFix crash when connected to DDMS
Sebastien Hertz [Thu, 11 Sep 2014 14:23:44 +0000 (16:23 +0200)]
Fix crash when connected to DDMS

Restore init of WellKnownClasses::org_apache_harmony_dalvik_ddmc_Chunk_data and
removed duplicated line.

Bug: 17467328
Bug: 17463118

(cherry picked from commit 96cd6714d94b47512710776761dec98c8be68bef)

Change-Id: I9f225825bef4995460e1c79a9f3a6c1331f24201

9 years agoMerge "Add some comments for retired class."
Mingyao Yang [Thu, 11 Sep 2014 18:10:04 +0000 (18:10 +0000)]
Merge "Add some comments for retired class."

9 years agoMerge "ART: Correctly make methods preverified"
Andreas Gampe [Thu, 11 Sep 2014 15:06:09 +0000 (15:06 +0000)]
Merge "ART: Correctly make methods preverified"

9 years agoART: Correctly make methods preverified
Andreas Gampe [Thu, 11 Sep 2014 02:48:05 +0000 (19:48 -0700)]
ART: Correctly make methods preverified

Bug: 16828525

(cherry picked from commit df1532b9ba0cda2d00b78fbdef461f8a6cf8a737)

Change-Id: I66756348b2aa50e41dacca59769b6810a91c73b0

9 years agoMerge "Fix builds on archs the compiler does not support."
Nicolas Geoffray [Thu, 11 Sep 2014 11:25:26 +0000 (11:25 +0000)]
Merge "Fix builds on archs the compiler does not support."

9 years agoFix builds on archs the compiler does not support.
Nicolas Geoffray [Thu, 11 Sep 2014 11:17:43 +0000 (12:17 +0100)]
Fix builds on archs the compiler does not support.

Change-Id: Ibfc47026596c868fb6d48465a6e564a0b1e07fd0

9 years agoMerge "Fix valgrind errors."
Nicolas Geoffray [Thu, 11 Sep 2014 10:39:42 +0000 (10:39 +0000)]
Merge "Fix valgrind errors."

9 years agoMerge "Fix deadlock in VirtualMachine.AllThreads"
Sebastien Hertz [Thu, 11 Sep 2014 10:00:04 +0000 (10:00 +0000)]
Merge "Fix deadlock in VirtualMachine.AllThreads"

9 years agoFix deadlock in VirtualMachine.AllThreads
Sebastien Hertz [Tue, 9 Sep 2014 10:08:49 +0000 (12:08 +0200)]
Fix deadlock in VirtualMachine.AllThreads

We cannot add any object in the JDWP object registry while holding the
Locks::thread_list_lock. Indeed we may need to suspend a thread and take it,
causing a deadlock by waiting for ourself on this lock.

Bug: 17343664

(cherry picked from commit d35776413901a6a9d478e06dc354ea4f7d962e04)

Change-Id: I07d150b95a6d2b62c913bf2ca2ac217911b2f19d

9 years agoMerge "Don't hold any lock when visiting classes from JDWP"
Sebastien Hertz [Thu, 11 Sep 2014 09:41:31 +0000 (09:41 +0000)]
Merge "Don't hold any lock when visiting classes from JDWP"

9 years agoDon't hold any lock when visiting classes from JDWP
Sebastien Hertz [Thu, 28 Aug 2014 12:41:50 +0000 (14:41 +0200)]
Don't hold any lock when visiting classes from JDWP

Computes reference type ids of all loaded classes without holding the class
linker lock. Because computing the JDWP reference type id can cause thread
suspension, we can't hold any lock. This is detected in debug build (using
libartd.so) and causes an abort.

Also adds missing thread safety annotations related to ObjectRegistry::lock_.

Bug: 17305632
Bug: 16720689

(cherry picked from commit 95795e286145a4aece5c4a095fa2e7e88ee2115a)

Change-Id: If4fb069790a0a3358ad49da8f75c62a54c0f0b56

9 years agoFix valgrind errors.
Nicolas Geoffray [Thu, 11 Sep 2014 09:30:02 +0000 (10:30 +0100)]
Fix valgrind errors.

For now just stack allocate the code generator. Will think
about cleaning up the root problem later (CodeGenerator being an
arena object).

Change-Id: I161a6f61c5f27ea88851b446f3c1e12ee9c594d7

9 years agoMerge "Fix bug in register allocator."
Nicolas Geoffray [Thu, 11 Sep 2014 08:21:10 +0000 (08:21 +0000)]
Merge "Fix bug in register allocator."

9 years agox86 fault handler does not know about movb
Serguei Katkov [Mon, 8 Sep 2014 10:48:25 +0000 (17:48 +0700)]
x86 fault handler does not know about movb

mov byte instruction is not known for fault handler and therefore
it cannot catch null pointer exception represented by this instruction.
As a result implicit null check does not work.

Change-Id: I45d6056f838d1568fce3de58218437fc12d1c45b
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "ART: Fix things for valgrind"
Andreas Gampe [Wed, 10 Sep 2014 23:43:32 +0000 (23:43 +0000)]
Merge "ART: Fix things for valgrind"

9 years agoMerge "Revert "Disable Clang internal assembler.""
Stephen Hines [Wed, 10 Sep 2014 23:15:15 +0000 (23:15 +0000)]
Merge "Revert "Disable Clang internal assembler.""

9 years agoRevert "Disable Clang internal assembler."
Stephen Hines [Wed, 10 Sep 2014 23:14:26 +0000 (23:14 +0000)]
Revert "Disable Clang internal assembler."

This reverts commit d619cab991f116d7a90c9abeff8770e7d7a3a45a.

Change-Id: I69da36d734678dd5e9a99c1c53093fcaf81a66c3

9 years agoART: Fix things for valgrind
Andreas Gampe [Wed, 10 Sep 2014 02:53:48 +0000 (19:53 -0700)]
ART: Fix things for valgrind

Wire up valgrind gtests. Add valgrind-test-art-host, currently
only depending on valgrind-test-art-host-gtest32.

Fix an Alloc setting to allow running valgrind.

Refactor the fault handler to manage (and correctly release) the
handlers.

Fix minor failure-case leaks exposed by tests.

Failing tests:

The optimizing compiler is leaking non-arena-ed structures
(e.g., assembler buffers), as code generators are not destroyed.
The solution has been moved to a follow-up CL.

Note: All 64b tests are failing as we cannot allocate a heap.

Change-Id: I7f854cfd098d9f68107ce492363e7dba9a82b9fa

9 years agoMerge "Re-add read barrier to roots in the verifier."
Ian Rogers [Wed, 10 Sep 2014 22:41:54 +0000 (22:41 +0000)]
Merge "Re-add read barrier to roots in the verifier."

9 years agoMerge "Revert "Add read barriers for the roots in the verifier.""
Ian Rogers [Wed, 10 Sep 2014 22:41:42 +0000 (22:41 +0000)]
Merge "Revert "Add read barriers for the roots in the verifier.""

9 years agoRe-add read barrier to roots in the verifier.
Ian Rogers [Wed, 10 Sep 2014 22:33:05 +0000 (15:33 -0700)]
Re-add read barrier to roots in the verifier.

Fixes read-barriers but keeps verifier API invariants. Based on:
https://android-review.googlesource.com/#/c/102962
Bug: 17398101

Change-Id: Iad986784a5d735ccb3214362ccfc7ef69bc02c57

9 years agoMerge "ART: Fix variable formatting and CodeLayout's multiple visits"
Bill Buzbee [Wed, 10 Sep 2014 22:30:52 +0000 (22:30 +0000)]
Merge "ART: Fix variable formatting and CodeLayout's multiple visits"

9 years agoMerge "Remove reference_static_offsets used for iterating through class static fields."
Mingyao Yang [Wed, 10 Sep 2014 22:22:13 +0000 (22:22 +0000)]
Merge "Remove reference_static_offsets used for iterating through class static fields."

9 years agoRevert "Add read barriers for the roots in the verifier."
Ian Rogers [Wed, 10 Sep 2014 21:43:52 +0000 (21:43 +0000)]
Revert "Add read barriers for the roots in the verifier."

This reverts commit 7da9586b559290e1c16207c6513ffe485de61655.

Bug: 17398101

Change-Id: I1d6110fdf0d3a3c9241c8e7e7f4b85a298f9dd8e

9 years agoAdd some comments for retired class.
Mingyao Yang [Wed, 10 Sep 2014 22:16:19 +0000 (15:16 -0700)]
Add some comments for retired class.

Change-Id: I9208ddc9a73ce751d5bfba786cf0496faba8e126

9 years agoMerge "Fix kThumb2Vldrd definition to set correct flag."
Bill Buzbee [Wed, 10 Sep 2014 22:10:13 +0000 (22:10 +0000)]
Merge "Fix kThumb2Vldrd definition to set correct flag."

9 years agoRemove reference_static_offsets used for iterating through class static fields.
Mingyao Yang [Wed, 10 Sep 2014 19:03:22 +0000 (12:03 -0700)]
Remove reference_static_offsets used for iterating through class static fields.

Since static fields are contiguous in class object and there is no need to
traverse super classes, it's not meaningful to use reference_static_offsets.
Also especially with embedded vtable/imt, static field offset can't be encoded
with an unsigned integer anyway.

A corresponding change is made to Class.java to remove the member field.

Bug: 16236588
Change-Id: I1fde3cd9efce884945876f0658c63d992164fd94

9 years agoART: Fix variable formatting and CodeLayout's multiple visits
Jean Christophe Beyler [Thu, 4 Sep 2014 15:15:11 +0000 (08:15 -0700)]
ART: Fix variable formatting and CodeLayout's multiple visits

The CodeLayout pass visits multiple times the same BasicBlock. This patch
  fixes that issue to reduce its overhead.

The patch also fixes cUnit to c_unit in the bb_optimization files.

Change-Id: I76afa73dc79b9ee9993223c066a974ca81adf203
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
9 years agoMerge "Ensure class is linked before resolution"
Mathieu Chartier [Wed, 10 Sep 2014 18:29:32 +0000 (18:29 +0000)]
Merge "Ensure class is linked before resolution"

9 years agoEnsure class is linked before resolution
Sebastien Hertz [Wed, 10 Sep 2014 17:44:39 +0000 (19:44 +0200)]
Ensure class is linked before resolution

Adds a missing call to ClassLinker::EnsureResolved to ensure we did link the
class and retired the temp class (placeholder) before doing the resolution.

Bug: 17435441

(cherry picked from commit 72da76359aa5599f78ddca79b294e9bf30e004ed)

Change-Id: I3b368567c7b24ec2ff7ee1dec7bcd3501a6061f8

9 years agoMerge "Add proper cfi directives."
Christopher Ferris [Wed, 10 Sep 2014 18:07:01 +0000 (18:07 +0000)]
Merge "Add proper cfi directives."

9 years agoAdd proper cfi directives.
Christopher Ferris [Tue, 9 Sep 2014 20:55:13 +0000 (13:55 -0700)]
Add proper cfi directives.

This function has a mix of arm and cfi directives. Since our unwinders
can work with both, remove the arm directives and fix the cfi directives.

Bug: 17392751

(cherry picked from commit 7fae7c40e62ffe669fc224c57ed530b4d9c8da2c)

Change-Id: I82a84db47ffa283f9e392d24de9a8c9958a59631

9 years agoMerge "Fix misuse of ArenaAllocator."
Nicolas Geoffray [Wed, 10 Sep 2014 17:18:37 +0000 (17:18 +0000)]
Merge "Fix misuse of ArenaAllocator."

9 years agoMerge "Address read barrier issue with cl/106467"
Hiroshi Yamauchi [Wed, 10 Sep 2014 17:02:31 +0000 (17:02 +0000)]
Merge "Address read barrier issue with cl/106467"

9 years agoMerge "Disable Clang internal assembler."
Chih-Hung Hsieh [Wed, 10 Sep 2014 16:33:08 +0000 (16:33 +0000)]
Merge "Disable Clang internal assembler."

9 years agoMerge "Improve dex location canonicalization-related performance."
Vladimir Marko [Wed, 10 Sep 2014 16:11:18 +0000 (16:11 +0000)]
Merge "Improve dex location canonicalization-related performance."

9 years agoImprove dex location canonicalization-related performance.
Vladimir Marko [Fri, 5 Sep 2014 13:01:17 +0000 (14:01 +0100)]
Improve dex location canonicalization-related performance.

Eagerly add canonical dex file locations to the OatFile's
primary lookup map in Setup(). This moves the boot.oat work
from every app startup to the zygote initialization. Since
we always ended up initializing the canonical location map
anyway due to the way that we're loading dex files, the lazy
initialization didn't save anything.

Clean up dex file name canonicalization to make sure we
free() the memory returned by realpath() rather than using
std::unique_ptr<> with the default deleter.

Avoid some unnecessary duplicate OatDexFile lookups.

Bug: 16828525
Bug: 17346103
Change-Id: Id8fbc8992f62996138eb2006a0046c6529747c09

9 years agoFix bug in register allocator.
Nicolas Geoffray [Wed, 10 Sep 2014 09:49:34 +0000 (10:49 +0100)]
Fix bug in register allocator.

When an input can be a constant, there is no need to
do a move.

Fix 003-omnibus-opcodes failure.

Change-Id: Ic40f99d3ae889505c1d2be8665f8521c2ebb5feb

9 years agoFix misuse of ArenaAllocator.
Nicolas Geoffray [Wed, 10 Sep 2014 09:34:01 +0000 (10:34 +0100)]
Fix misuse of ArenaAllocator.

Allocator must survive its allocations (the pool is not enough).
Spotted by valgrind.

Change-Id: I7104a93e625995f1205710e6d07904b3d315e412

9 years agoMerge "Increase dex2oat timeouts for debug builds"
Mathieu Chartier [Wed, 10 Sep 2014 02:15:05 +0000 (02:15 +0000)]
Merge "Increase dex2oat timeouts for debug builds"

9 years agoIncrease dex2oat timeouts for debug builds
Mathieu Chartier [Wed, 10 Sep 2014 00:26:58 +0000 (17:26 -0700)]
Increase dex2oat timeouts for debug builds

Should fix the 056-const-string-jumbo test.

(cherry picked from commit 0bff4f375d8013a4a59cf70b3427fb461a17e6de)

Change-Id: I38d03fa7f981f0c067c52782e57938bbcbabef17

9 years agoFix kThumb2Vldrd definition to set correct flag.
Junmo Park [Wed, 10 Sep 2014 01:50:24 +0000 (10:50 +0900)]
Fix kThumb2Vldrd definition to set correct flag.

kThumb2Vldrd shoud be set IS_LOAD_OFF4 not IS_LOAD_OFF.

Change-Id: I6b8ec3c54513f687a846ba7f3a817f6e439abcc9
Signed-off-by: Junmo Park <junmoz.park@samsung.com>
9 years agoMerge "Change Reference.get() intrinsic to Reference.getReferent()."
Mathieu Chartier [Tue, 9 Sep 2014 21:59:47 +0000 (21:59 +0000)]
Merge "Change Reference.get() intrinsic to Reference.getReferent()."

9 years agoAddress read barrier issue with cl/106467
Hiroshi Yamauchi [Mon, 8 Sep 2014 20:22:56 +0000 (13:22 -0700)]
Address read barrier issue with cl/106467

And tidy/add a check.

Bug: 12687968
Change-Id: If63dc0d9d0a0ce5f2eeb81734ff8f4307865f67d

9 years agoMerge "Remove art-* targets in favor of build-art-* targets."
Brian Carlstrom [Tue, 9 Sep 2014 21:08:19 +0000 (21:08 +0000)]
Merge "Remove art-* targets in favor of build-art-* targets."

9 years agoDisable Clang internal assembler.
Chih-Hung Hsieh [Tue, 9 Sep 2014 20:59:33 +0000 (13:59 -0700)]
Disable Clang internal assembler.

To avoid compilation errors with macros and directives in asm_support_x86.S.

BUG: 17443165
Change-Id: Ia89387bf2213cf1bfd4dd7248a19b47391e8fb67

9 years agoChange Reference.get() intrinsic to Reference.getReferent().
Mathieu Chartier [Tue, 9 Sep 2014 20:51:09 +0000 (13:51 -0700)]
Change Reference.get() intrinsic to Reference.getReferent().

The reference intrinsic was incorrectly inlining
PhantomReference.get(). We now get around this by adding a
layer of indirection. Reference.get() now calls getReferent()
which is intrinsified and inlined.

Requires:
https://android-review.googlesource.com/#/c/107100/

Bug: 17429865
Change-Id: Ie91e70abf43cedf3c707c7bb8a5059e19d2a2577

9 years agoRemove art-* targets in favor of build-art-* targets.
Brian Carlstrom [Mon, 8 Sep 2014 18:13:47 +0000 (11:13 -0700)]
Remove art-* targets in favor of build-art-* targets.

- Build both archs version when available.
- Add --64 and --32 command line flags to the art script.

Change-Id: I037ec94670767f1761adb26f44aafc5592ea3a2b

9 years agoMerge "Change 099-vmdebug test to use File.createTempFile."
Jeff Hao [Tue, 9 Sep 2014 20:22:30 +0000 (20:22 +0000)]
Merge "Change 099-vmdebug test to use File.createTempFile."

9 years agoChange 099-vmdebug test to use File.createTempFile.
Jeff Hao [Tue, 9 Sep 2014 20:07:59 +0000 (13:07 -0700)]
Change 099-vmdebug test to use File.createTempFile.

Avoids issues with concurrency.

Bug: 17439227

(cherry picked from commit 1ae33d6839a0e14a7e37bf9b88896479e30282d2)

Change-Id: I672e83537a12110a77c589697b721b9b26f3c53b

9 years agoMerge "Disable tracing if enabled by default for new tracing test."
Jeff Hao [Tue, 9 Sep 2014 20:19:15 +0000 (20:19 +0000)]
Merge "Disable tracing if enabled by default for new tracing test."

9 years agoDisable tracing if enabled by default for new tracing test.
Jeff Hao [Mon, 8 Sep 2014 22:32:39 +0000 (15:32 -0700)]
Disable tracing if enabled by default for new tracing test.

Bug: 17412385

(cherry picked from commit b087849f5bbbf25bf5b03cf6172d2a50c08119e9)

Change-Id: I3641d6649cddda82c36e52658bf6d743c6446935

9 years agoMerge "Change when sampling thread is reset during shutdown to prevent races."
Jeff Hao [Tue, 9 Sep 2014 20:16:43 +0000 (20:16 +0000)]
Merge "Change when sampling thread is reset during shutdown to prevent races."

9 years agoChange when sampling thread is reset during shutdown to prevent races.
Jeff Hao [Mon, 8 Sep 2014 16:38:18 +0000 (09:38 -0700)]
Change when sampling thread is reset during shutdown to prevent races.

Also adds some extra argument checking and testing for tracing.

Bug: 17412385

(cherry picked from commit f8bdd4e783842577e49f418a0b5962ba49dfdd93)

Change-Id: Ifc4f1a296155d73255b29d264b5475024e6419da

9 years agoMerge "x86: evaluation destination should be after load of source in RA"
Bill Buzbee [Tue, 9 Sep 2014 13:50:53 +0000 (13:50 +0000)]
Merge "x86: evaluation destination should be after load of source in RA"

9 years agoMerge "Small error reporting fix in class linker."
Vladimir Marko [Tue, 9 Sep 2014 09:08:41 +0000 (09:08 +0000)]
Merge "Small error reporting fix in class linker."

9 years agoMerge "ART: Better error reporting on broken oat file"
Andreas Gampe [Tue, 9 Sep 2014 08:22:59 +0000 (08:22 +0000)]
Merge "ART: Better error reporting on broken oat file"

9 years agoART: Better error reporting on broken oat file
Andreas Gampe [Tue, 9 Sep 2014 06:39:45 +0000 (23:39 -0700)]
ART: Better error reporting on broken oat file

Do not blow up when in GetHashBucket if GetHashBucketNum is zero.
Instead back-step to ElfFileOpen, which prints which symbol was
missing from which file.

Bug: 17422404

(cherry picked from commit 1b2140c9bf46388e4f59ecf3d62d99cd78fed12c)

Change-Id: I3b890dd1c31c08b1ccc0f7f668afcceee95f8d00

9 years agoMerge "Fix monitor visit for class initializer"
Sebastien Hertz [Tue, 9 Sep 2014 07:59:13 +0000 (07:59 +0000)]
Merge "Fix monitor visit for class initializer"

9 years agoFix monitor visit for class initializer
Sebastien Hertz [Mon, 8 Sep 2014 08:15:19 +0000 (10:15 +0200)]
Fix monitor visit for class initializer

We do not hold class object's lock when invoking class initializer. Therefore
it is wrong to visit it when looking for monitors owned by a thread.

Bug: 17377924

(cherry picked from commit 6d06f1b34322d91226c9dcd61e53c2b6731f8bb6)

Change-Id: I9a18c421297608dc3109624111f9fea021a16d24

9 years agox86: evaluation destination should be after load of source in RA
Serguei Katkov [Mon, 8 Sep 2014 05:42:27 +0000 (12:42 +0700)]
x86: evaluation destination should be after load of source in RA

In almost most cases working with Register Allocator we must first
load source and then evaluate the destination. In this particular case
for byte-code shl-int/2addr v10, v10 we first find a destination (memory)
then load source (v10 -> physical register) and generate a shift operation
on memory. This is ok for this bytecode but RA thinks that v10 is in register
(we loaded source) and this is incorrect because updated value in memory
and physycal register is not up to date.

Change-Id: Ib4c71f70dcbf78b76ca89897e3bd605a89d77d08
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMerge "ART: Fix unchecked register index validity"
Andreas Gampe [Tue, 9 Sep 2014 05:09:47 +0000 (05:09 +0000)]
Merge "ART: Fix unchecked register index validity"

9 years agoART: Fix unchecked register index validity
Andreas Gampe [Sun, 7 Sep 2014 20:06:12 +0000 (13:06 -0700)]
ART: Fix unchecked register index validity

The static check of index validity is against the type given by
the instruction, e.g., boolean for SPUT_BOOLEAN, but the target_type
is the resolved field type and can differ. An additional check is
necessary to avoid a read out of bounds.

Bug: 17411109

(cherry picked from commit 74ae47a0590feceea31a2388f98c83e3ec0df0ec)

Change-Id: Ie4ed8bbda79f3f6403a24e727450a943447aa71d

9 years agoMerge "Fix darwin run-test problems"
Brian Carlstrom [Tue, 9 Sep 2014 04:55:46 +0000 (04:55 +0000)]
Merge "Fix darwin run-test problems"

9 years agoFix darwin run-test problems
Brian Carlstrom [Tue, 9 Sep 2014 04:37:39 +0000 (21:37 -0700)]
Fix darwin run-test problems

Bug: 17428908

(cherry picked from commit 8a4064e2c0987637b11afcc656478d3113d81618)

Change-Id: Ica403bef3e7d93bf6e9197c44b77e39683e04d55

9 years agoMerge "Add fast path for FindClass using the type dex file."
Mathieu Chartier [Tue, 9 Sep 2014 01:26:14 +0000 (01:26 +0000)]
Merge "Add fast path for FindClass using the type dex file."