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
Merge "Quick compiler (arm64) Fix inline Math.round()"
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
Merge "Fix and re-enable FreeList large object space for 64 bit"
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
Merge "Compile time performance improvements focusing on interpret-only."
ART: Consider clinit elimination for inlining

Currently inliner rejects inlining method if class initialization is needed.
However, if it has been proven already that it was done, then inlining
can safely proceed.

Change-Id: Iaf1638fcfffff1bcf66010dc39090c77e009a1bb
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
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
Merge "Fix stale root error in verifier"
Pass current thread as argument to alloc instrumentation.

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

Change-Id: Ic6e7d7d0744f4756787f75d21fddd3c50280b588
Merge "Pass current thread as argument to alloc instrumentation."
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
Merge "Remove dex file index building mutex."
Add time out to dump check point.

Change-Id: I2263c092c9957585ae90cf846e77dc8861f8a14b
Merge "Add time out to dump check point."
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
Merge "Add native support for FinalizerList.makeCircularListIfUnenqueued"
Add 5 minute time out to host run tests.

Change-Id: I88b23ab71b89f81d54162ea34d4e28f72087f2b2
Merge "Add 5 minute time out to host run tests."
Merge "ART: Consider clinit elimination for inlining"