OSDN Git Service

android-x86/art.git
10 years agoTest Method.getModifiers() result for proxy methods
Brian Carlstrom [Wed, 12 Mar 2014 15:42:34 +0000 (08:42 -0700)]
Test Method.getModifiers() result for proxy methods

Change-Id: I2ba3be80ea21c5cfc0e2b9463270e34622c8c92b

10 years agoMerge "Remove spurious duplicate line of code"
Ian Rogers [Wed, 12 Mar 2014 05:04:36 +0000 (05:04 +0000)]
Merge "Remove spurious duplicate line of code"

10 years agoMerge "Always reset CFI state."
Ian Rogers [Wed, 12 Mar 2014 04:56:00 +0000 (04:56 +0000)]
Merge "Always reset CFI state."

10 years agoAlways reset CFI state.
Ian Rogers [Tue, 11 Mar 2014 23:29:07 +0000 (16:29 -0700)]
Always reset CFI state.

.cfi_startproc simple may do even less than .cfi_startproc, so don't rely on
it. Instead, use regular .cfi_startporc and always set up the expected entry
state.

Change-Id: I6d3e8b8e4a07621bc99c062359a109eb76f85184

10 years agoRemove spurious duplicate line of code
buzbee [Tue, 11 Mar 2014 23:05:14 +0000 (16:05 -0700)]
Remove spurious duplicate line of code

This CL removes a duplicate line of code which appears to have
been intended for removal during a cleanup, but wasn't.  It would
not have affected correctness, rather it uselessly performed the
same store twice.

Bug originally reported by M Mendell.

Change-Id: If4333a29f32b6bdb944b67aa560d856611041ff6

10 years agoMerge "Put the post zygote non-moving space next to the malloc space."
Hiroshi Yamauchi [Tue, 11 Mar 2014 21:47:18 +0000 (21:47 +0000)]
Merge "Put the post zygote non-moving space next to the malloc space."

10 years agoPut the post zygote non-moving space next to the malloc space.
Hiroshi Yamauchi [Tue, 11 Mar 2014 19:19:04 +0000 (12:19 -0700)]
Put the post zygote non-moving space next to the malloc space.

This change fixes the following problem with the GSS collector: if the
post zygote non-moving space happens to be located after the bump
pointer spaces, the bump pointer space is treated wrongfully as an
immune space. The reasons are 1) the immune space is represented by a
simple address range and 2) the GSS collector treats the post zygote
non-moving space as an immune space at a bump pointer space only
collection.

In addition, this change makes it a reality that all the non-moving
spaces are adjacent, which we tend to assume in the code (eg. the
notion of the immune space represented by a simple address range.)
This should help avoid potential confusions in the future.

Fix a DCHECK failure where usable_size isn't set properly when
-XX:UseTLAB is used.

Change-Id: I585920e433744a390f87e9a25bef6114b2a4623f

10 years agoMerge "Ensure functions start with clean CFA state."
Ian Rogers [Tue, 11 Mar 2014 18:44:00 +0000 (18:44 +0000)]
Merge "Ensure functions start with clean CFA state."

10 years agoEnsure functions start with clean CFA state.
Ian Rogers [Tue, 11 Mar 2014 18:30:20 +0000 (11:30 -0700)]
Ensure functions start with clean CFA state.

.cfi_startproc doesn't reset CFA state and so delivering exceptions and the
like can leave the CFA with an incorrect offset. Reset the state in the
DEFINE_FUNCTION macro.
Also fix using test/run-test with --gdb for the target.

Change-Id: I4c03768e118ef1e06d34fedce856919e6ecba0c4

10 years agoMerge "Fix BitVector::SetInitialBits()."
Vladimir Marko [Tue, 11 Mar 2014 13:49:19 +0000 (13:49 +0000)]
Merge "Fix BitVector::SetInitialBits()."

10 years agoFix BitVector::SetInitialBits().
Vladimir Marko [Tue, 11 Mar 2014 12:42:25 +0000 (12:42 +0000)]
Fix BitVector::SetInitialBits().

Change-Id: Iad3699d76ad69536aa4810329f5863bc995f6551

10 years agoMerge "Avoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE."
Vladimir Marko [Tue, 11 Mar 2014 11:28:49 +0000 (11:28 +0000)]
Merge "Avoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE."

10 years agoAvoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE.
Vladimir Marko [Thu, 6 Mar 2014 15:18:04 +0000 (15:18 +0000)]
Avoid Cache*LoweringInfo pass when there's no GET/PUT/INVOKE.

Add new data flow flags indicating instance/static field
access. Record merged flags of all insns and use them to skip
the CacheFieldLoweringInfo pass if the method uses no fields
and the CacheMethodLoweringInfo pass if it has no invokes.

Change-Id: I36a36b438ca9b0f104a7baddc0497d736495cc3c

10 years agoMerge "Disable host clang only if WITHOUT_HOST_CLANG is set"
Ying Wang [Tue, 11 Mar 2014 02:03:26 +0000 (02:03 +0000)]
Merge "Disable host clang only if WITHOUT_HOST_CLANG is set"

10 years agoDisable host clang only if WITHOUT_HOST_CLANG is set
Ying Wang [Tue, 11 Mar 2014 01:27:10 +0000 (18:27 -0700)]
Disable host clang only if WITHOUT_HOST_CLANG is set

Bug: 13402154
Change-Id: Ib915e31106aeb2adf64f8fa5d008b34debc205d7

10 years agoMerge "Unify 64bit int constant definitions."
Ian Rogers [Tue, 11 Mar 2014 01:06:50 +0000 (01:06 +0000)]
Merge "Unify 64bit int constant definitions."

10 years agoUnify 64bit int constant definitions.
Ian Rogers [Mon, 10 Mar 2014 23:18:37 +0000 (16:18 -0700)]
Unify 64bit int constant definitions.

LL and ULL prefixes are word size dependent, use the INT64_C and UINT64_C
macros instead.

Change-Id: I5b70027651898814fc0b3e9e22a18a1047e76cb9

10 years agoMerge "Fix LIR generation for long arithmetic operation"
Ian Rogers [Mon, 10 Mar 2014 22:55:12 +0000 (22:55 +0000)]
Merge "Fix LIR generation for long arithmetic operation"

10 years agoMerge "Fix old stack frame size check"
Andreas Gampe [Mon, 10 Mar 2014 22:17:23 +0000 (22:17 +0000)]
Merge "Fix old stack frame size check"

10 years agoFix old stack frame size check
Andreas Gampe [Mon, 10 Mar 2014 21:18:35 +0000 (14:18 -0700)]
Fix old stack frame size check

The test underestimates the frame size for JNI frames, as not enough
overhead is accounted for.

Cherry-picked from commit 291088a2983ff954c137dddcc2ba7cb1c4cc95d2

Change-Id: I6ad96bc9b8eaecd6c888b91b3ffcfc4aeddc5eb8

10 years agoMerge "Don't always allocate constructor newInstance as non movable."
Mathieu Chartier [Mon, 10 Mar 2014 20:34:09 +0000 (20:34 +0000)]
Merge "Don't always allocate constructor newInstance as non movable."

10 years agoDon't always allocate constructor newInstance as non movable.
Mathieu Chartier [Mon, 10 Mar 2014 20:26:27 +0000 (13:26 -0700)]
Don't always allocate constructor newInstance as non movable.

We now only allocate these objects as non movable if the class is a
non movable class (currently fields or methods).

Change-Id: I26700272fceb277e00f25ff3078cef6951296b9d

10 years agoMerge "LongToFp result storage fixed"
Ian Rogers [Mon, 10 Mar 2014 19:19:15 +0000 (19:19 +0000)]
Merge "LongToFp result storage fixed"

10 years agoMerge "AArch64: Add ARM64 Disassembler"
Ian Rogers [Mon, 10 Mar 2014 18:48:31 +0000 (18:48 +0000)]
Merge "AArch64: Add ARM64 Disassembler"

10 years agoMerge "ARM: Inline codegen for long-to-float on ARM."
Ian Rogers [Mon, 10 Mar 2014 18:46:07 +0000 (18:46 +0000)]
Merge "ARM: Inline codegen for long-to-float on ARM."

10 years agoMerge "ARM: Remove duplicated instructions; add vcvt, vmla, vmls disassembler."
Ian Rogers [Mon, 10 Mar 2014 18:32:06 +0000 (18:32 +0000)]
Merge "ARM: Remove duplicated instructions; add vcvt, vmla, vmls disassembler."

10 years agoAArch64: Add ARM64 Disassembler
Serban Constantinescu [Thu, 27 Feb 2014 15:36:47 +0000 (15:36 +0000)]
AArch64: Add ARM64 Disassembler

This patch adds disassembler support for ARM64 based on VIXL.

Change-Id: Ic7f5e197350809632145d932dbae8f6c16aebd13
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
10 years agoMerge "Add timing split for RevokeAllThreadLocalBuffers."
Mathieu Chartier [Mon, 10 Mar 2014 17:28:50 +0000 (17:28 +0000)]
Merge "Add timing split for RevokeAllThreadLocalBuffers."

10 years agoAdd timing split for RevokeAllThreadLocalBuffers.
Mathieu Chartier [Mon, 10 Mar 2014 16:28:23 +0000 (09:28 -0700)]
Add timing split for RevokeAllThreadLocalBuffers.

This is part of the pause and should be accounted for.

Change-Id: I3165324de810e8fab02719098977402a18013da1

10 years agoMerge "More JNI compiler tests and small fix"
Andreas Gampe [Mon, 10 Mar 2014 16:19:08 +0000 (16:19 +0000)]
Merge "More JNI compiler tests and small fix"

10 years agoMore JNI compiler tests and small fix
Andreas Gampe [Fri, 7 Mar 2014 21:03:19 +0000 (13:03 -0800)]
More JNI compiler tests and small fix

Add checks for alignment, floats, and maximum number of parameters
Fixed x86_64 ABI wrong interpretation (floats not widened in registers)

Change-Id: I6c09af4914b7675ac0275ce21003e317ca44a403

10 years agoARM: Remove duplicated instructions; add vcvt, vmla, vmls disassembler.
Zheng Xu [Thu, 27 Feb 2014 13:30:55 +0000 (13:30 +0000)]
ARM: Remove duplicated instructions; add vcvt, vmla, vmls disassembler.

Remove kThumb2VcvtID in the assembler which was duplicated.
Add vcvt, vmla, vmls in the disassembler.

Change-Id: I14cc39375c922c9917274d8dcfcb515e888fdf26

10 years agoARM: Inline codegen for long-to-float on ARM.
Zheng Xu [Mon, 10 Mar 2014 10:43:02 +0000 (10:43 +0000)]
ARM: Inline codegen for long-to-float on ARM.

long-to-double-to-float using vfp instructions should be faster than the
function provided by toolchain.

Change-Id: I7ff809bca6665f0c1a0d7e6db98d570ce86b7c66

10 years agoMerge "Fix lint errors."
Nicolas Geoffray [Mon, 10 Mar 2014 12:03:57 +0000 (12:03 +0000)]
Merge "Fix lint errors."

10 years agoFix lint errors.
Nicolas Geoffray [Mon, 10 Mar 2014 12:00:43 +0000 (12:00 +0000)]
Fix lint errors.

Change-Id: Ibefa43522ec68ed2a13bd034005d6f424e92957c

10 years agoMerge "Add register support to the optimizing compiler."
Nicolas Geoffray [Mon, 10 Mar 2014 11:42:04 +0000 (11:42 +0000)]
Merge "Add register support to the optimizing compiler."

10 years agoAdd register support to the optimizing compiler.
Nicolas Geoffray [Tue, 4 Mar 2014 14:46:47 +0000 (14:46 +0000)]
Add register support to the optimizing compiler.

Also make if take an input and build the use list for instructions.

Change-Id: I1938cee7dce5bd4c66b259fa2b431d2c79b3cf82

10 years agoMerge "New header fix for gcc 4.7 build."
Nicolas Geoffray [Mon, 10 Mar 2014 11:39:17 +0000 (11:39 +0000)]
Merge "New header fix for gcc 4.7 build."

10 years agoMerge "Cache method lowering info in mir graph."
Vladimir Marko [Mon, 10 Mar 2014 11:30:45 +0000 (11:30 +0000)]
Merge "Cache method lowering info in mir graph."

10 years agoNew header fix for gcc 4.7 build.
Nicolas Geoffray [Mon, 10 Mar 2014 11:27:57 +0000 (11:27 +0000)]
New header fix for gcc 4.7 build.

Change-Id: I09b49368c19d3bfb3a81d8e23b0dacf596d3bda7

10 years agoMerge "Add includes to fix gcc 4.7 build."
Nicolas Geoffray [Mon, 10 Mar 2014 11:22:34 +0000 (11:22 +0000)]
Merge "Add includes to fix gcc 4.7 build."

10 years agoAdd includes to fix gcc 4.7 build.
Nicolas Geoffray [Mon, 10 Mar 2014 11:12:54 +0000 (11:12 +0000)]
Add includes to fix gcc 4.7 build.

Change-Id: Idf84f156047270b81c5d10a55a3a1c96b415cddc

10 years agoCache method lowering info in mir graph.
Vladimir Marko [Thu, 23 Jan 2014 15:51:58 +0000 (15:51 +0000)]
Cache method lowering info in mir graph.

This should enable easy inlining checks. It should also
improve compilation time of methods that call the same
methods over and over - it is exactly such methods that
tend to exceed our 100ms time limit.

Change-Id: If01cd18e039071a74a1444570283c153429c9cd4

10 years agoMerge "Support WITHOUT_CLANG builds"
Brian Carlstrom [Sun, 9 Mar 2014 22:29:31 +0000 (22:29 +0000)]
Merge "Support WITHOUT_CLANG builds"

10 years agoSupport WITHOUT_CLANG builds
Brian Carlstrom [Sun, 9 Mar 2014 21:05:04 +0000 (14:05 -0700)]
Support WITHOUT_CLANG builds

(cherry picked from commit c9f7723cdb39f9791775166ec1942e456086ad3c)

Change-Id: I9443e73a07b81038452c694a2f138faecdeff500

10 years agoMerge "Work around arm64 host prebuilt differences."
Ian Rogers [Sun, 9 Mar 2014 07:50:14 +0000 (07:50 +0000)]
Merge "Work around arm64 host prebuilt differences."

10 years agoWork around arm64 host prebuilt differences.
Ian Rogers [Sun, 9 Mar 2014 07:48:23 +0000 (23:48 -0800)]
Work around arm64 host prebuilt differences.

Change-Id: I345c994b06cc513f67270907f3877ad78dbadcc7

10 years agoMerge "JNI down call fixes."
Andreas Gampe [Sun, 9 Mar 2014 02:19:58 +0000 (02:19 +0000)]
Merge "JNI down call fixes."

10 years agoJNI down call fixes.
Ian Rogers [Sat, 8 Mar 2014 23:21:04 +0000 (15:21 -0800)]
JNI down call fixes.

Ensure SIRT isn't accessed via quick callee save frame.
Some tidying of code.

Change-Id: I8fec3e89aa6d2e86789c60a07550db2e92478ca7

10 years agoMerge "Revert "Revert "Make clang the default compiler on host."""
Ian Rogers [Sun, 9 Mar 2014 00:09:05 +0000 (00:09 +0000)]
Merge "Revert "Revert "Make clang the default compiler on host."""

10 years agoRevert "Revert "Make clang the default compiler on host.""
Ian Rogers [Sat, 8 Mar 2014 23:37:07 +0000 (23:37 +0000)]
Revert "Revert "Make clang the default compiler on host.""

This reverts commit d54f3a6219bca6ae018f4395fa0f1254bd4459be.

Change-Id: Id96bb52a0d599f8848010d1589bdf0f70fc7124b

10 years agoMerge "Revert "Make clang the default compiler on host.""
Ian Rogers [Sat, 8 Mar 2014 07:51:20 +0000 (07:51 +0000)]
Merge "Revert "Make clang the default compiler on host.""

10 years agoRevert "Make clang the default compiler on host."
Ian Rogers [Sat, 8 Mar 2014 07:50:13 +0000 (07:50 +0000)]
Revert "Make clang the default compiler on host."

This reverts commit 87f8b4cf0c1d6aab3eb5d1e99cc4e7cf175ef772.

Change-Id: I91a513042f0f9cf66288a296ad4a3b5da7830c7b

10 years agoMerge "Make clang the default compiler on host."
Ian Rogers [Sat, 8 Mar 2014 07:11:56 +0000 (07:11 +0000)]
Merge "Make clang the default compiler on host."

10 years agoMake clang the default compiler on host.
Ian Rogers [Fri, 7 Mar 2014 22:49:39 +0000 (14:49 -0800)]
Make clang the default compiler on host.

Motivation, GCC's compiler warnings are inferior to clang's. -Wthread-safety is
not supported by GCC starting with version 4.7. As this change only effects the
host, performance issues are an impact on host building and testing alone.
Fix clang gtest building on host with BUILD_HOST_64bit.
Fix clang build regressions caused by unused fields.
Fix x86-64 regression caused by requirement to fire-up quick compiler even in an
interpret-only environment. Long-term this code doesn't belong in the quick
compiler.

Change-Id: Ifc2b10177f40d0724cbbf8dab9653ac03cdd1cee

10 years agoMerge "Fix tests to pass with VerifyObject."
Mathieu Chartier [Sat, 8 Mar 2014 00:33:30 +0000 (00:33 +0000)]
Merge "Fix tests to pass with VerifyObject."

10 years agoFix tests to pass with VerifyObject.
Mathieu Chartier [Fri, 7 Mar 2014 23:00:39 +0000 (15:00 -0800)]
Fix tests to pass with VerifyObject.

A SIRT ref with a null class was causing object verification problems
in space_test.

Change-Id: I95cfc3da5e0fec0155387f75612b0a3f26f6d3c9

10 years agoMerge "Bump oat version due to InstructionSet enum renumbering in change:"
Brian Carlstrom [Fri, 7 Mar 2014 23:10:44 +0000 (23:10 +0000)]
Merge "Bump oat version due to InstructionSet enum renumbering in change:"

10 years agoBump oat version due to InstructionSet enum renumbering in change:
Brian Carlstrom [Fri, 7 Mar 2014 22:36:27 +0000 (14:36 -0800)]
Bump oat version due to InstructionSet enum renumbering in change:

commit ed8dd492e43cbaaa435c4892447072c84dbaf2dc
Author: Serban Constantinescu <serban.constantinescu@arm.com>
Date:   Tue Feb 11 14:15:10 2014 +0000

    AArch64: Add ARM64 Assembler

    This patch adds the ARM64 Assembler and ManagedRegister backend.
    The implementation of the Arm64Assembler class is based on VIXL (a
    programmatic A64 Assembler - see external/vixl ).

    Change-Id: I842fd574637a953c19631eedf26f6c70d9ed7f9e
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Change-Id: I9e689b0a3586d996135f2c12265704ee139c9e4f

10 years agoMerge "Use GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset"
Brian Carlstrom [Fri, 7 Mar 2014 22:31:59 +0000 (22:31 +0000)]
Merge "Use GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset"

10 years agoMerge "Make use of profiling information for dex2oat"
Dave Allison [Fri, 7 Mar 2014 22:21:12 +0000 (22:21 +0000)]
Merge "Make use of profiling information for dex2oat"

10 years agoUse GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset
Brian Carlstrom [Fri, 7 Mar 2014 22:18:15 +0000 (14:18 -0800)]
Use GetEntryPointFromQuickCompiledCode instead of GetQuickOatCodeOffset

The latter is meant for compile time use only when an offset is stored, instead of a pointer to code

Change-Id: I2fa9b8b3aaab0e6cfa1fc31c4d44aab0d9c3d30f

10 years agoMake use of profiling information for dex2oat
Dave Allison [Wed, 29 Jan 2014 02:33:52 +0000 (18:33 -0800)]
Make use of profiling information for dex2oat

If the profile file exists, the compiler driver will read it
and store the data in an internal map.  Then, when we want to work
out whether to compile a method or not, the map is consulted and if
the method shows up with a high enough percentage of use we compile it.

The profile file itself is created by installd and is writeable by the
app.  The file is in /data/dalvik-cache/profiles and is named by
the package name.

This also modifies the profiler itself to:

1. Only count runnable threads (not suspended threads) in the profile
2. Use system properties to allow tuning of the profile parameters
3. Merge profiles from multiple processes using file locking.

Bug: 12877748
Change-Id: Iab2f3a327a2860db2a80d5724277d6c626227f2b

Conflicts:
compiler/dex/frontend.cc
compiler/dex/mir_analysis.cc
compiler/dex/verification_results.cc
compiler/driver/compiler_driver.cc
dex2oat/dex2oat.cc
runtime/class_linker.cc
runtime/runtime.cc
runtime/runtime.h

10 years agoMerge "Add convenience targets for switching between full, smart, interpret-only"
Brian Carlstrom [Fri, 7 Mar 2014 20:47:54 +0000 (20:47 +0000)]
Merge "Add convenience targets for switching between full, smart, interpret-only"

10 years agoMerge "Release unused parts of a JNI frame before calling native code"
Andreas Gampe [Fri, 7 Mar 2014 20:36:20 +0000 (20:36 +0000)]
Merge "Release unused parts of a JNI frame before calling native code"

10 years agoRelease unused parts of a JNI frame before calling native code
Andreas Gampe [Fri, 7 Mar 2014 02:11:06 +0000 (18:11 -0800)]
Release unused parts of a JNI frame before calling native code

Two-pass process for setting up the JNI frame so we can put Sirt
and native call stack as close together as possible.

Change-Id: I827167a55fafc4eba7d4eaf14a35fc69fd5f85ce

10 years agoMerge "Add more VerifyObject calls."
Mathieu Chartier [Fri, 7 Mar 2014 20:09:48 +0000 (20:09 +0000)]
Merge "Add more VerifyObject calls."

10 years agoAdd more VerifyObject calls.
Mathieu Chartier [Fri, 7 Mar 2014 02:11:53 +0000 (18:11 -0800)]
Add more VerifyObject calls.

Added verify object calls to SirtRef, IndirectReferenceTable,
ReferenceTable.

Removed un-needed verify object in ScopedObjectAccess / DecodeJObject
since object sources are handled.

Bug: 12934910
Change-Id: I55a46a8ea61fed2a77526eda27fd2cce97a9b125

10 years agoMerge "Fix clang errors in ArenaAllocator."
Vladimir Marko [Fri, 7 Mar 2014 19:54:48 +0000 (19:54 +0000)]
Merge "Fix clang errors in ArenaAllocator."

10 years agoFix clang errors in ArenaAllocator.
Vladimir Marko [Fri, 7 Mar 2014 19:41:05 +0000 (19:41 +0000)]
Fix clang errors in ArenaAllocator.

Change-Id: Ib0fa290fd46ff9288f86cda9be2d1c1faf99b964

10 years agoMerge "backtrace: use Java stack to help decode native"
Kenny Root [Fri, 7 Mar 2014 18:47:22 +0000 (18:47 +0000)]
Merge "backtrace: use Java stack to help decode native"

10 years agoMerge "Use ScopedArenaAllocator for CacheFieldLoweringInfo pass."
Vladimir Marko [Fri, 7 Mar 2014 18:34:42 +0000 (18:34 +0000)]
Merge "Use ScopedArenaAllocator for CacheFieldLoweringInfo pass."

10 years agoUse ScopedArenaAllocator for CacheFieldLoweringInfo pass.
Vladimir Marko [Fri, 7 Mar 2014 10:18:14 +0000 (10:18 +0000)]
Use ScopedArenaAllocator for CacheFieldLoweringInfo pass.

Change-Id: Idcc2edeb865e29b1bc42b108fc58a1f964295317

10 years agoMerge "Create a scoped arena allocator and use that for LVN."
Vladimir Marko [Fri, 7 Mar 2014 10:50:35 +0000 (10:50 +0000)]
Merge "Create a scoped arena allocator and use that for LVN."

10 years agoFix LIR generation for long arithmetic operation
Yevgeny Rouban [Fri, 7 Mar 2014 07:35:44 +0000 (14:35 +0700)]
Fix LIR generation for long arithmetic operation

X86Mir2Lir::GenLongArith generated wrong LIR if the first argument
of the operation was promoted. It forgot to swap arguments if
the first was not temp, but the second was temp

Change-Id: I389f72f560ce9924859e17385bc8f64793c77b67
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoMerge "Fix issues with clang and BUILD_HOST_64bit."
Ian Rogers [Fri, 7 Mar 2014 07:20:22 +0000 (07:20 +0000)]
Merge "Fix issues with clang and BUILD_HOST_64bit."

10 years agoAdd convenience targets for switching between full, smart, interpret-only
Brian Carlstrom [Fri, 7 Mar 2014 07:17:15 +0000 (23:17 -0800)]
Add convenience targets for switching between full, smart, interpret-only

Change-Id: Ic0e016404d79fd0e40519f33210b332414adc8bf

10 years agoFix issues with clang and BUILD_HOST_64bit.
Ian Rogers [Fri, 7 Mar 2014 07:11:11 +0000 (23:11 -0800)]
Fix issues with clang and BUILD_HOST_64bit.

Change-Id: Id954d0c1144de6eaf89a4d27d205e3bf6ccb655f

10 years agoMerge "Enable annotalysis on clang ART builds."
Ian Rogers [Fri, 7 Mar 2014 03:17:31 +0000 (03:17 +0000)]
Merge "Enable annotalysis on clang ART builds."

10 years agoEnable annotalysis on clang ART builds.
Ian Rogers [Thu, 6 Mar 2014 20:13:39 +0000 (12:13 -0800)]
Enable annotalysis on clang ART builds.

Fix clang build errors aswell as restructure locking/mutex code for correct
thread safety analysis support.
Reorder make dependencies so that host builds build first as they should
provide better compilation errors than target.
Remove host's use of -fno-omit-frame-pointer as it has no value with correct
use of CFI, which we should have.

Change-Id: I72cea8da9a3757b1a0b3acb4081feccb7c6cef90

10 years agoMerge "Defer heap transitions to heap trimming daemon."
Mathieu Chartier [Fri, 7 Mar 2014 01:18:07 +0000 (01:18 +0000)]
Merge "Defer heap transitions to heap trimming daemon."

10 years agoMerge "Restore obj after RequestConcurrentGC."
Mathieu Chartier [Fri, 7 Mar 2014 00:16:50 +0000 (00:16 +0000)]
Merge "Restore obj after RequestConcurrentGC."

10 years agoRestore obj after RequestConcurrentGC.
Mathieu Chartier [Thu, 6 Mar 2014 23:52:27 +0000 (15:52 -0800)]
Restore obj after RequestConcurrentGC.

RequestConcurrentGC can cause thread suspension, this means that
another thread could transition the heap or cause moving GC.

Bug: 12934910

Change-Id: I5c07161e2e849d7acbdf939f1c24e1ba361a1d6a

10 years agoDefer heap transitions to heap trimming daemon.
Mathieu Chartier [Sat, 1 Mar 2014 00:48:42 +0000 (16:48 -0800)]
Defer heap transitions to heap trimming daemon.

This fixes the case where quick back and forth process state changes
would cause a lot of heap transitions.

Change-Id: Ia5be792edcf26079b2aa23b9c115f6b0a9a39a1c

10 years agobacktrace: use Java stack to help decode native
Kenny Root [Wed, 5 Mar 2014 22:57:21 +0000 (14:57 -0800)]
backtrace: use Java stack to help decode native

Before change:

  native: usb_host_run+16 [0x400a43f9] (/libusbhost.so)
  native: android::Vector<int>::do_move_forward(void*, void const*, unsigned int) const+54 [0x501b1c5b] (/libandroid_servers.so)
  native: ??? [0x624de480] (/system@framework@boot.oat)
  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)
  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)

After change:

  native: usb_host_run+16 [0x400933f9] (libusbhost.so)
  native: android::Vector<int>::do_move_forward(void*, void const*, unsigned int) const+54 [0x4e984c5b] (libandroid_servers.so)
  native: Java_com_android_server_usb_UsbHostManager_monitorUsbHostBus__+92 [0x624de480] (system@framework@boot.oat)
  at com.android.server.usb.UsbHostManager.monitorUsbHostBus(Native method)
  at com.android.server.usb.UsbHostManager.access$000(UsbHostManager.java:38)

Change-Id: Iea550a251a12e9ba7df9582fd454093bfa4e90e0

10 years agoMerge "Disable compaction for jni workarounds."
Mathieu Chartier [Thu, 6 Mar 2014 19:56:20 +0000 (19:56 +0000)]
Merge "Disable compaction for jni workarounds."

10 years agoDisable compaction for jni workarounds.
Mathieu Chartier [Thu, 6 Mar 2014 19:11:48 +0000 (11:11 -0800)]
Disable compaction for jni workarounds.

Compaction can't work when jni workarounds is enabled. Also some
other refactoring.

Change-Id: Ia7b0f2b39c79f5a0a5f50874d823b950ab02a0c3

10 years agoMerge "Make heap reference poisoning work with the interpreter."
Hiroshi Yamauchi [Thu, 6 Mar 2014 18:33:59 +0000 (18:33 +0000)]
Merge "Make heap reference poisoning work with the interpreter."

10 years agoCreate a scoped arena allocator and use that for LVN.
Vladimir Marko [Wed, 12 Feb 2014 18:02:05 +0000 (18:02 +0000)]
Create a scoped arena allocator and use that for LVN.

This saves more than 0.5s of boot.oat compilation time
on Nexus 5.

TODO: Move other stuff to the scoped allocator. This CL
alone increases the peak memory allocation. By reusing
the memory for other parts of the compilation we should
reduce this overhead.

Change-Id: Ifbc00aab4f3afd0000da818dfe68b96713824a08

10 years agoMerge "Fix host architecture for 64bit."
Ian Rogers [Thu, 6 Mar 2014 09:36:38 +0000 (09:36 +0000)]
Merge "Fix host architecture for 64bit."

10 years agoFix host architecture for 64bit.
Ian Rogers [Thu, 6 Mar 2014 09:13:39 +0000 (01:13 -0800)]
Fix host architecture for 64bit.

Also, hack x86 assembler for use as a x86-64 trampoline compiler's assembler.
Implement missing x86-64 quick resolution trampoline.
Add x86-64 to the quick elf writer.

Change-Id: I08216c67014a83492ada12898ab8000218ba7bb4

10 years agoMerge "Lock ranking fix for monitor IDs."
Ian Rogers [Thu, 6 Mar 2014 07:43:22 +0000 (07:43 +0000)]
Merge "Lock ranking fix for monitor IDs."

10 years agoLock ranking fix for monitor IDs.
Ian Rogers [Thu, 6 Mar 2014 07:40:59 +0000 (23:40 -0800)]
Lock ranking fix for monitor IDs.

Free-ing objects holds a lock and so the monitor ID lock needs to be
of a lower rank.

Change-Id: I594ac04c1f76c5d6fd2e752886040565001d4eaf

10 years agoMerge "Generic JNI implementation for x86_64"
Ian Rogers [Thu, 6 Mar 2014 07:05:11 +0000 (07:05 +0000)]
Merge "Generic JNI implementation for x86_64"

10 years agoGeneric JNI implementation for x86_64
Andreas Gampe [Thu, 6 Mar 2014 00:11:04 +0000 (16:11 -0800)]
Generic JNI implementation for x86_64

Starting implementation for generic JNI on x86_64. Frames are of
large static size (>4K) right now, should be compacted later. Passes
the whole of jni_compiler_test.

Change-Id: I88ac3e13a534afe7568d62a1ef97cb766e8260e4

10 years agoLongToFp result storage fixed
Maxim Kazantsev [Thu, 6 Mar 2014 04:33:26 +0000 (11:33 +0700)]
LongToFp result storage fixed

When converting long values to floating-point, the resulting value
was not stored properly. This was the reason of incorrect results
of arithmetic operations where such conversions were used.

Performance measurement in Quadrant Pro KPI benchmark was blocked
by long-to-fp conversion errors.

This patch ensures that result of long-to-fp conversion is stored
properly.

Change-Id: I94beffcf7f0146c0c6d5b8ae33b020c985843db0
Signed-off-by: Maxim Kazantsev <maxim.kazantsev@intel.com>
10 years agoMake heap reference poisoning work with the interpreter.
Hiroshi Yamauchi [Thu, 27 Feb 2014 22:44:36 +0000 (14:44 -0800)]
Make heap reference poisoning work with the interpreter.

It is disabled by default.

Bug: 12687968
Change-Id: Iee0cad647f341a7b566f4cf74c2770d1c19312c9

10 years agoMerge "Revert "Revert "Avoid compiling monster methods in boot image"""
Brian Carlstrom [Thu, 6 Mar 2014 02:10:21 +0000 (02:10 +0000)]
Merge "Revert "Revert "Avoid compiling monster methods in boot image"""

10 years agoMerge "Size and offset fixes to compile for 64b host"
Andreas Gampe [Thu, 6 Mar 2014 01:03:26 +0000 (01:03 +0000)]
Merge "Size and offset fixes to compile for 64b host"

10 years agoSize and offset fixes to compile for 64b host
Andreas Gampe [Thu, 6 Mar 2014 00:46:44 +0000 (16:46 -0800)]
Size and offset fixes to compile for 64b host

Some Runtime fields have moved after deletion of other fields.
ParsedOptions uses size_t, but parsing function works on unsigned int.

Change-Id: I6b7f25787af5d3f9e38554abea2bfb220299f475