OSDN Git Service

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

9 years agoMerge "Ignore heap trim requests if we are the zygote"
Mathieu Chartier [Tue, 9 Sep 2014 01:22:38 +0000 (01:22 +0000)]
Merge "Ignore heap trim requests if we are the zygote"

9 years agoMerge "Revert "Fix heap trimmer daemon sleeping.""
Mathieu Chartier [Tue, 9 Sep 2014 01:22:01 +0000 (01:22 +0000)]
Merge "Revert "Fix heap trimmer daemon sleeping.""

9 years agoAdd fast path for FindClass using the type dex file.
Mathieu Chartier [Fri, 5 Sep 2014 01:33:17 +0000 (18:33 -0700)]
Add fast path for FindClass using the type dex file.

If we are using the PathClassLoader with a BootClassLoader
parent, we can handle the common case in the FindClass function
without needing to go back to java code.

Around 10% speedup measured of maps launch, could be noise due to
large variation of app launch times. Eliminates defineClassNative
from being anywhere near the top of sampling profiles.

Bug: 17397179
Bug: 16828525

(cherry picked from commit 8a39e7fe02e9a81853dc7a75cb50d9ece07a9b37)

Change-Id: I1f31de76c1b1a53e32173b1e61a59b0e2f267c98

9 years agoIgnore heap trim requests if we are the zygote
Mathieu Chartier [Mon, 8 Sep 2014 20:35:11 +0000 (13:35 -0700)]
Ignore heap trim requests if we are the zygote

Done to prevent app launching lag due to sleep in heap trimmer
daemon.

Bug: 17310019

(cherry picked from commit f81bfa3e21c8a4e031505470ea954c93949cb30b)

Change-Id: I3942d465781218aa04f7edc899ea87aa091f3cf7

9 years agoRevert "Fix heap trimmer daemon sleeping."
Mathieu Chartier [Mon, 8 Sep 2014 20:08:41 +0000 (20:08 +0000)]
Revert "Fix heap trimmer daemon sleeping."

This reverts commit 698b44634396e8111e96e1116586fde89a838347.

(cherry picked from commit 4d3981c72a546b87c8f5d391ff8b5135b8ca99a7)

Change-Id: I7245bc08ebb95c12e7cc71b97edf9ca11ffbdf61

9 years agoMerge "Add test for hashCode and System.identityHashCode."
Mathieu Chartier [Mon, 8 Sep 2014 23:09:08 +0000 (23:09 +0000)]
Merge "Add test for hashCode and System.identityHashCode."

9 years agoAdd test for hashCode and System.identityHashCode.
Mathieu Chartier [Mon, 8 Sep 2014 21:48:25 +0000 (14:48 -0700)]
Add test for hashCode and System.identityHashCode.

Change-Id: I325e95c23bda05bc9babff428111bb8d21f7f2d4

9 years agoMerge "Delete double finalization hack."
Mathieu Chartier [Mon, 8 Sep 2014 21:00:47 +0000 (21:00 +0000)]
Merge "Delete double finalization hack."

9 years agoMerge "Add CallNonvirtual test"
Brian Carlstrom [Mon, 8 Sep 2014 19:03:44 +0000 (19:03 +0000)]
Merge "Add CallNonvirtual test"

9 years agoAdd CallNonvirtual test
Brian Carlstrom [Mon, 8 Sep 2014 06:52:02 +0000 (23:52 -0700)]
Add CallNonvirtual test

Change-Id: If0cbfc587cb8fe5d47fda1149629954080dd0f6f

9 years agoSmall error reporting fix in class linker.
Vladimir Marko [Mon, 8 Sep 2014 08:55:29 +0000 (09:55 +0100)]
Small error reporting fix in class linker.

Change-Id: Ia9e94df48e9984c25ad8ab5c6ca41f9153984915

9 years agoMerge "Add (simple) side effects flags and equality methods on nodes."
Nicolas Geoffray [Mon, 8 Sep 2014 16:09:18 +0000 (16:09 +0000)]
Merge "Add (simple) side effects flags and equality methods on nodes."

9 years agoAdd (simple) side effects flags and equality methods on nodes.
Nicolas Geoffray [Wed, 3 Sep 2014 13:51:22 +0000 (14:51 +0100)]
Add (simple) side effects flags and equality methods on nodes.

This is in preparation of doing GVN and LICM.

Change-Id: I43050ff846755f9387a62b893d548ecdb54e7e95

9 years agoMerge "Clean-up and make the art script usable on target."
Nicolas Geoffray [Mon, 8 Sep 2014 14:41:40 +0000 (14:41 +0000)]
Merge "Clean-up and make the art script usable on target."

9 years agoClean-up and make the art script usable on target.
Nicolas Geoffray [Tue, 2 Sep 2014 14:24:25 +0000 (15:24 +0100)]
Clean-up and make the art script usable on target.

Also add a phony target to build what's needed to use it.

Change-Id: I0bca6b0cbe921653de05fec0ae0cbbff63df580e

9 years agoMerge "Runtime support for the new stack maps for the opt compiler."
Nicolas Geoffray [Mon, 8 Sep 2014 11:16:48 +0000 (11:16 +0000)]
Merge "Runtime support for the new stack maps for the opt compiler."

9 years agoRuntime support for the new stack maps for the opt compiler.
Nicolas Geoffray [Tue, 2 Sep 2014 14:17:15 +0000 (15:17 +0100)]
Runtime support for the new stack maps for the opt compiler.

Now most of the methods supported by the compiler can be optimized,
instead of using the baseline.

Change-Id: I80ab36a34913fa4e7dd576c7bf55af63594dc1fa

9 years agoMerge "Quick compiler: Fix handling of unused returns"
buzbee [Mon, 8 Sep 2014 04:22:20 +0000 (04:22 +0000)]
Merge "Quick compiler: Fix handling of unused returns"

9 years agoQuick compiler: Fix handling of unused returns
buzbee [Sun, 7 Sep 2014 18:37:51 +0000 (11:37 -0700)]
Quick compiler: Fix handling of unused returns

As part of the inlining process, the quick compiler will attempt
to eliminate MOVE_RESULT instructions and deliver the result of
the inlined function directly to the eventual use.

The type of the returned value is determined by the subsequent
use (which had already been typed via the size and type
inference pass).  However, if a method result is never used the code
just defaulted to assigning dummy core sink register[s].  This
caused a DCHECK failure on some 64-bit systems for methods returning
an unused reference (although the generated code was correct).

This CL selects sink registers for the unused return case based
on the type of the inlined method, and adds another DCHECK to
verify that the result of the size & type inference pass matches
with the inlined method's type.

Internal b/17328561

Change-Id: I9803ad604fe1bdcf9ff9a1d310cf022a7b6deae2

9 years agoMerge "ART: Make the dominator bitvectors expandable"
Bill Buzbee [Sun, 7 Sep 2014 19:38:44 +0000 (19:38 +0000)]
Merge "ART: Make the dominator bitvectors expandable"

9 years agoMerge "Fix Thumb2Stm, ldm definition of EncodingMap for arm"
Bill Buzbee [Sun, 7 Sep 2014 19:23:21 +0000 (19:23 +0000)]
Merge "Fix Thumb2Stm, ldm definition of EncodingMap for arm"

9 years agoFix Thumb2Stm, ldm definition of EncodingMap for arm
Junmo Park [Mon, 1 Sep 2014 07:41:16 +0000 (16:41 +0900)]
Fix Thumb2Stm, ldm definition of EncodingMap for arm

Thumb2Stm instruction can save r0-r12,r14.
But the definition of EncodingMap only set r0-r12.
So it is fixed likes Thumb2Stmia.

Add new assembler formats kFmtLdmRegList and kFmtStmRegList.

Change-Id: Id03118d602f9d49d9d916f3dd9f3198f24ab9c37

9 years agoMerge "ART: Refactor elf_writer_quick, add symbolizer"
Andreas Gampe [Sat, 6 Sep 2014 05:03:34 +0000 (05:03 +0000)]
Merge "ART: Refactor elf_writer_quick, add symbolizer"

9 years agoART: Refactor elf_writer_quick, add symbolizer
Andreas Gampe [Fri, 5 Sep 2014 04:47:42 +0000 (21:47 -0700)]
ART: Refactor elf_writer_quick, add symbolizer

Refactors some classes in elf_writer_quick.h to elf_builder.h to
be more friendly for re-use. Use this in oatdump to add a symtab
to an oat file.

Bug: 1718762117322125
Change-Id: I2333291334fd98bd09cc5717fb83cb18efe3a029

9 years agoART: Make the dominator bitvectors expandable
Jean Christophe Beyler [Fri, 5 Sep 2014 23:06:42 +0000 (16:06 -0700)]
ART: Make the dominator bitvectors expandable

The dominator based bitvectors are not expandable. However, if we wish
 to add BasicBlocks and recalculate, it is required to make them expandable.

Change-Id: I250684783c233eca31bb40a5bc971c97fcf7c42d
Signed-off-by: Jean Christophe Beyler <jean.christophe.beyler@intel.com>
9 years agoMerge "Fix numerous issues with DdmVmInternal allocation tracking"
Brian Carlstrom [Fri, 5 Sep 2014 23:05:06 +0000 (23:05 +0000)]
Merge "Fix numerous issues with DdmVmInternal allocation tracking"

9 years agoDelete double finalization hack.
Mathieu Chartier [Fri, 5 Sep 2014 21:40:03 +0000 (14:40 -0700)]
Delete double finalization hack.

No longer necessary.

Change-Id: Ie5eb9e9ce4b8473d3b3e65bd108f93223b9a80dd

9 years agoFix numerous issues with DdmVmInternal allocation tracking
Brian Carlstrom [Fri, 5 Sep 2014 20:01:41 +0000 (13:01 -0700)]
Fix numerous issues with DdmVmInternal allocation tracking

Issues addressed:
- Using without JDWP attached caused native crash.
- When buffer is full (64k entries), number of entries reported was 0.
- Disabling tracking after disabling tracking caused native crash.
- Asking for allocations after disabled caused native crash.
- Lock ordering issues between mutator lock and alloc tracker lock.

Adding 098-ddmc test to cover these cases.

Bug: 17392248

(cherry picked from commit a5815065ac0877add9c0db3605d27b4d6c426e61)

Change-Id: Ib0bc18dfcdafcc050ab9dceed3d167dd878d1d7a

9 years agoMerge "Revert "Revert "x86: Fix art_quick_instrumentation_exit"""
Andreas Gampe [Fri, 5 Sep 2014 17:19:23 +0000 (17:19 +0000)]
Merge "Revert "Revert "x86: Fix art_quick_instrumentation_exit"""

9 years agoMerge "ART: X86: Improve multiply in div/rem by literal"
Ian Rogers [Fri, 5 Sep 2014 17:10:25 +0000 (17:10 +0000)]
Merge "ART: X86: Improve multiply in div/rem by literal"

9 years agoMerge "Avoid recomputing the dex checksum during class loading"
Calin Juravle [Fri, 5 Sep 2014 15:35:19 +0000 (15:35 +0000)]
Merge "Avoid recomputing the dex checksum during class loading"

9 years agoAvoid recomputing the dex checksum during class loading
Calin Juravle [Tue, 2 Sep 2014 14:53:55 +0000 (15:53 +0100)]
Avoid recomputing the dex checksum during class loading

Thread the already computed checksum to VerifyOatAndDexFileChecksums and
LoadMultiDexFilesFromOatFile to avoid recomputing it.

Bug:17346103

(cherry picked from commit ca3459398018360d9968a52eebf727df085caf83)

Change-Id: Ie244efaca55b9e7c814b35feec7fce11fab3856d

9 years agoMerge "Remove unreachable code from class_linker.cc"
Calin Juravle [Fri, 5 Sep 2014 15:26:00 +0000 (15:26 +0000)]
Merge "Remove unreachable code from class_linker.cc"

9 years agoRemove unreachable code from class_linker.cc
Calin Juravle [Fri, 5 Sep 2014 15:14:19 +0000 (16:14 +0100)]
Remove unreachable code from class_linker.cc

If the checksum doesn't match the oat_dex_file will be NULL, a case
which is handled in the first if.

Bug: 17402267

Change-Id: If8547ddc8fd7eff59a3b7dd36c07ac4ceb351361

9 years agoART: X86: Improve multiply in div/rem by literal
Mark Mendell [Tue, 2 Sep 2014 16:44:24 +0000 (12:44 -0400)]
ART: X86: Improve multiply in div/rem by literal

Rewrite the multiplication of the magic number by the dividend to save
one instruction by multiplying directly from the dividend, rather than
loading the dividend into EAX/RAX first.

Change-Id: I7934243d90c0739a7f11a8d70f6fb2c000144587
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoRevert "Revert "x86: Fix art_quick_instrumentation_exit""
Andreas Gampe [Fri, 5 Sep 2014 05:43:34 +0000 (05:43 +0000)]
Revert "Revert "x86: Fix art_quick_instrumentation_exit""

Need to use GOT to avoid TEXTREL.

This reverts commit 62aa66f8532b8eb44e882596010b33e7781b0754.

Change-Id: Ife659c28d621596ad288999fa128dcf32fc0b1c7

9 years agoMerge "Revert "x86: Fix art_quick_instrumentation_exit""
Andreas Gampe [Fri, 5 Sep 2014 05:02:20 +0000 (05:02 +0000)]
Merge "Revert "x86: Fix art_quick_instrumentation_exit""

9 years agoRevert "x86: Fix art_quick_instrumentation_exit"
Andreas Gampe [Fri, 5 Sep 2014 05:02:08 +0000 (05:02 +0000)]
Revert "x86: Fix art_quick_instrumentation_exit"

GCC 4.8 can't handle it correctly.

This reverts commit 5324dc896b69fc14a24334f52169e2319b9b3842.

Change-Id: I2478a52f147b585658d0e5769c3fce7f2c75240e

9 years agoMerge "x86: Fix art_quick_instrumentation_exit"
Andreas Gampe [Fri, 5 Sep 2014 02:56:43 +0000 (02:56 +0000)]
Merge "x86: Fix art_quick_instrumentation_exit"

9 years agox86: Fix art_quick_instrumentation_exit
Dmitry Petrochenko [Wed, 27 Aug 2014 11:45:56 +0000 (18:45 +0700)]
x86: Fix art_quick_instrumentation_exit

Make sure that we use a move-immediate instead of a
move-from-address (previously this was a load, whereas now
we are interested in the address as a value).

Change-Id: I4048c4a97abcc6524fe976bdc35b834d8f3bc592
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
9 years agoMerge "Add test case for runFinalization."
Mathieu Chartier [Thu, 4 Sep 2014 22:32:40 +0000 (22:32 +0000)]
Merge "Add test case for runFinalization."

9 years agoAdd test case for runFinalization.
Mathieu Chartier [Thu, 4 Sep 2014 21:15:35 +0000 (14:15 -0700)]
Add test case for runFinalization.

There was a bug causing runFinalization to return before recently
freed objects were finalized. This is a regression test for this bug.

Bug: 17381967
Change-Id: Ide6e2037685324423e83965fae3935f3e7f0aba6

9 years agoMerge "Fix arm64 build warning (promoted to error)."
Dave Allison [Thu, 4 Sep 2014 21:59:58 +0000 (21:59 +0000)]
Merge "Fix arm64 build warning (promoted to error)."

9 years agoMerge "ART: Change ART for new native bridge sequence"
Andreas Gampe [Thu, 4 Sep 2014 21:47:08 +0000 (21:47 +0000)]
Merge "ART: Change ART for new native bridge sequence"

9 years agoMerge "ART: Fix host run-test script"
Andreas Gampe [Thu, 4 Sep 2014 21:37:19 +0000 (21:37 +0000)]
Merge "ART: Fix host run-test script"

9 years agoFix arm64 build warning (promoted to error).
Dave Allison [Thu, 4 Sep 2014 21:33:42 +0000 (14:33 -0700)]
Fix arm64 build warning (promoted to error).

This refactors code that caused an warning on the arm64 build.

Change-Id: I1c0ddabb7061ea289d98b03554bf764c26256078

9 years agoART: Fix host run-test script
Andreas Gampe [Thu, 4 Sep 2014 21:19:51 +0000 (14:19 -0700)]
ART: Fix host run-test script

When using gdb, do not pipe and grep. GDB is interactive...

Change-Id: Idd944a8ff7a8c254f47c840bc5b2c1e352e8b105

9 years agoART: Change ART for new native bridge sequence
Andreas Gampe [Wed, 3 Sep 2014 04:22:18 +0000 (21:22 -0700)]
ART: Change ART for new native bridge sequence

Initialize or unload after a fork.

Change-Id: I5a20de1cb68dd1802937b369b14c50c9c1031c67

9 years agoMerge "Make nested signal more generic"
Dave Allison [Thu, 4 Sep 2014 18:06:25 +0000 (18:06 +0000)]
Merge "Make nested signal more generic"

9 years agoMerge "Fix heap trimmer daemon sleeping."
Mathieu Chartier [Thu, 4 Sep 2014 17:51:02 +0000 (17:51 +0000)]
Merge "Fix heap trimmer daemon sleeping."

9 years agoFix heap trimmer daemon sleeping.
Mathieu Chartier [Thu, 4 Sep 2014 04:26:36 +0000 (21:26 -0700)]
Fix heap trimmer daemon sleeping.

Problem:
Heap trimmer daemon sleeping caused app launch occasionally to take a
while due stopping the heap trimming thread taking a long time.

The heap trimmer thread now never sleeps, we prevent issues caused
by frequent back and forth process state changes by only
transitioning to background if it has been kCollectorTransitionWait
time since the last transition to background. Similar logic for heap
trimming.

(cherry picked from commit 698b44634396e8111e96e1116586fde89a838347)

Change-Id: I5b2894e92eb79351eec35078d49c8457d2fd67a8

9 years agoMake nested signal more generic
Dave Allison [Fri, 29 Aug 2014 19:06:16 +0000 (12:06 -0700)]
Make nested signal more generic

This moves the nested signal catching code up to a slightly higher
level in the fault manager.  Originally it was down in the DumpJavaStack
function but it needs to be up in the caller of that to allow for other
handlers like the stack dumper.

Change-Id: I31029f555dd9b501f4b5c0ed5c95777004873126