OSDN Git Service

android-x86/art.git
8 years agoART: Mterp for arm64
buzbee [Wed, 27 Jan 2016 02:23:19 +0000 (18:23 -0800)]
ART: Mterp for arm64

Ready for review.  All opcodes handled.  All applicable run-tests pass.
Device boots to desktop in interpret-only mode.

Change-Id: I937d8bcf848a831e04d4b9de8d1914667a197d75

8 years agoMerge "Add oat checksum check for app image loading"
Mathieu Chartier [Sat, 30 Jan 2016 00:07:45 +0000 (00:07 +0000)]
Merge "Add oat checksum check for app image loading"

8 years agoMerge "ART: Do not reopen oat file in ImageWriter::UpdateOatFile()."
Mathieu Chartier [Fri, 29 Jan 2016 23:48:56 +0000 (23:48 +0000)]
Merge "ART: Do not reopen oat file in ImageWriter::UpdateOatFile()."

8 years agoMerge "Regression test ensuring unresolved classes are not put in dex cache."
Jeff Hao [Fri, 29 Jan 2016 23:43:04 +0000 (23:43 +0000)]
Merge "Regression test ensuring unresolved classes are not put in dex cache."

8 years agoRegression test ensuring unresolved classes are not put in dex cache.
Jeff Hao [Fri, 29 Jan 2016 02:22:36 +0000 (18:22 -0800)]
Regression test ensuring unresolved classes are not put in dex cache.

Bug: 26792072

(cherry-picked from commit 2bf56594e78ab7b01ee85c1d885c92cb469dfdf2)

Change-Id: I4e9f4ab0b8ff215c39d854ee041c1acfedcf0b6d

8 years agoAdd oat checksum check for app image loading
Mathieu Chartier [Fri, 29 Jan 2016 20:22:17 +0000 (12:22 -0800)]
Add oat checksum check for app image loading

Bug: 26846419
Bug: 22858531

Change-Id: If30028b7d6b5749f5bdbed0c219d014a3b50a11b

8 years agoMerge "Add a comment on ReadBarrier::Mark() about ALWAYS_INLINE."
Hiroshi Yamauchi [Fri, 29 Jan 2016 22:18:47 +0000 (22:18 +0000)]
Merge "Add a comment on ReadBarrier::Mark() about ALWAYS_INLINE."

8 years agoMerge "Fix issue with exception type resolution during linking."
Alex Light [Fri, 29 Jan 2016 21:42:26 +0000 (21:42 +0000)]
Merge "Fix issue with exception type resolution during linking."

8 years agoMerge "Do not use atomic increment in allocation as fence."
Hans Boehm [Fri, 29 Jan 2016 20:40:09 +0000 (20:40 +0000)]
Merge "Do not use atomic increment in allocation as fence."

8 years agoFix issue with exception type resolution during linking.
Alex Light [Fri, 29 Jan 2016 20:24:48 +0000 (12:24 -0800)]
Fix issue with exception type resolution during linking.

When using default methods that cross dex-files we would sometimes
attempt to lookup method information using the wrong dex file. This
fixes this issue.

Bug: 26872564

Change-Id: I3c4b64ef970017356962060f3bd3781b4629a3c8

8 years agoAdd a comment on ReadBarrier::Mark() about ALWAYS_INLINE.
Hiroshi Yamauchi [Fri, 29 Jan 2016 20:06:36 +0000 (12:06 -0800)]
Add a comment on ReadBarrier::Mark() about ALWAYS_INLINE.

This is a follow up on CL 199360.

Bug: 12687968
Bug: 26744236
Change-Id: I9930894a403e897b85d77caf92834afaa9a860a0

8 years agoMerge "Implement compare() on ARM64."
Aart Bik [Fri, 29 Jan 2016 19:01:38 +0000 (19:01 +0000)]
Merge "Implement compare() on ARM64."

8 years agoMerge "ART: Dump full exception on re-init failure message"
Andreas Gampe [Fri, 29 Jan 2016 18:50:18 +0000 (18:50 +0000)]
Merge "ART: Dump full exception on re-init failure message"

8 years agoImplement compare() on ARM64.
Aart Bik [Thu, 28 Jan 2016 22:36:22 +0000 (14:36 -0800)]
Implement compare() on ARM64.

Change-Id: I6b5982aeb7401cd90fc37431a72bdd2b7f3e322b

8 years agoMerge "Implementation of integer intrinsics on x86_64"
Aart Bik [Fri, 29 Jan 2016 17:43:30 +0000 (17:43 +0000)]
Merge "Implementation of integer intrinsics on x86_64"

8 years agoMerge "Optimizing compiler support for directly calling interface methods"
Alex Light [Fri, 29 Jan 2016 17:38:57 +0000 (17:38 +0000)]
Merge "Optimizing compiler support for directly calling interface methods"

8 years agoART: Do not reopen oat file in ImageWriter::UpdateOatFile().
Vladimir Marko [Fri, 29 Jan 2016 16:27:27 +0000 (16:27 +0000)]
ART: Do not reopen oat file in ImageWriter::UpdateOatFile().

Instead, pass the already opened file from Dex2Oat.

Bug: 26831001
Change-Id: I2341259499067f43ce620b590c5482d28f140e9f

8 years agoMerge "Disable test after failing test was pushed."
Nicolas Geoffray [Fri, 29 Jan 2016 13:45:43 +0000 (13:45 +0000)]
Merge "Disable test after failing test was pushed."

8 years agoDisable test after failing test was pushed.
Nicolas Geoffray [Fri, 29 Jan 2016 13:38:33 +0000 (13:38 +0000)]
Disable test after failing test was pushed.

bug:26869497

Change-Id: I950b9fc164b512290d96d0137957348006796338

8 years agoMerge "Re-enable test 566-polymorphic-inlining."
Nicolas Geoffray [Fri, 29 Jan 2016 12:09:43 +0000 (12:09 +0000)]
Merge "Re-enable test 566-polymorphic-inlining."

8 years agoRe-enable test 566-polymorphic-inlining.
Nicolas Geoffray [Fri, 29 Jan 2016 11:41:25 +0000 (11:41 +0000)]
Re-enable test 566-polymorphic-inlining.

- Can not rely on debug builds.
- Need to wait for the method to be compiled.

Change-Id: I26ce89075075da8555fd59ade56bd04bec23f4ce

8 years agoMerge "Re-enable test 496-checker-inlining-and-class-loader with CC."
Roland Levillain [Fri, 29 Jan 2016 11:53:50 +0000 (11:53 +0000)]
Merge "Re-enable test 496-checker-inlining-and-class-loader with CC."

8 years agoRe-enable test 496-checker-inlining-and-class-loader with CC.
Roland Levillain [Fri, 29 Jan 2016 11:37:48 +0000 (11:37 +0000)]
Re-enable test 496-checker-inlining-and-class-loader with CC.

This test might have been affected by an app image change.
Re-enable it so that we can monitor it on the concurrent
collector configurations.

Bug: 26786304
Bug: 12687968
Change-Id: Iab484418d4a507da6642eec86317d53cc0a2607a

8 years agoMerge "Optimizing: Use dex pc 0 for pattern substitution-generated IGET."
Vladimir Marko [Fri, 29 Jan 2016 11:08:21 +0000 (11:08 +0000)]
Merge "Optimizing: Use dex pc 0 for pattern substitution-generated IGET."

8 years agoMerge "ART: Do not use AT register in MIPS DSS<->RP swap"
David Brazdil [Fri, 29 Jan 2016 11:05:33 +0000 (11:05 +0000)]
Merge "ART: Do not use AT register in MIPS DSS<->RP swap"

8 years agoOptimizing: Use dex pc 0 for pattern substitution-generated IGET.
Vladimir Marko [Fri, 29 Jan 2016 10:24:41 +0000 (10:24 +0000)]
Optimizing: Use dex pc 0 for pattern substitution-generated IGET.

In the read barrier configuration, HInstanceFieldGet needs
a slow-path with a runtime call with an associated stack map
and we assert that we have a valid dex pc for stack maps.
Fix the pattern substitution-generated HInstanceFieldGet to
use the valid, if bogus, dex pc 0.

Bug: 26854537
Bug: 12687968

Change-Id: I9f379ea530ce3f89af8db40169a6c41b525abbd7

8 years agoMerge "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""
Nicolas Geoffray [Fri, 29 Jan 2016 10:25:28 +0000 (10:25 +0000)]
Merge "Revert "reflection: Add new 1.8 AnnotatedElement methods and tests""

8 years agoRevert "reflection: Add new 1.8 AnnotatedElement methods and tests"
Nicolas Geoffray [Fri, 29 Jan 2016 10:25:01 +0000 (10:25 +0000)]
Revert "reflection: Add new 1.8 AnnotatedElement methods and tests"

Breaks interpreter access checks:

+Exception in thread "main" java.lang.InternalError: java.lang.IllegalAccessError: Method 'void java.lang.reflect.Proxy.doNewInstanceCheck()' is inaccessible to class '$Proxy0' (declaration of '$Proxy0' appears in generated class)

This reverts commit c167ee9b65f05f7c6f007d587fd1655388edaee9.

Change-Id: I6c9429cb6f298e89a2da22f7ded0728251321446

8 years agoART: Do not use AT register in MIPS DSS<->RP swap
David Brazdil [Fri, 29 Jan 2016 09:50:09 +0000 (09:50 +0000)]
ART: Do not use AT register in MIPS DSS<->RP swap

LoadFromOffset clobbers AT if stack offset does not fit in int16_t.
We should never hit that limit but let's stay on the safe side.

Change-Id: I77f564dc3edd0b47d06f8fafb5610c7c0205e9b2

8 years agoMerge "ART: Fix single-step interpretation for mterp"
Bill Buzbee [Fri, 29 Jan 2016 03:33:23 +0000 (03:33 +0000)]
Merge "ART: Fix single-step interpretation for mterp"

8 years agoDo not use atomic increment in allocation as fence.
Hans Boehm [Fri, 29 Jan 2016 01:19:15 +0000 (17:19 -0800)]
Do not use atomic increment in allocation as fence.

A sequentially consistent fetch_and_add implemented with ARM v8 acquire
release operations is not a fence.  Don't use it as one.

The result may also be somewhat faster, since a sequentially consistent
increment requires more fencing than needed for the increment.

Bug: 16377103
Change-Id: I5b1add098d3488aa755f140612e54521b80aa749

8 years agoART: Fix single-step interpretation for mterp
buzbee [Thu, 28 Jan 2016 23:48:55 +0000 (15:48 -0800)]
ART: Fix single-step interpretation for mterp

For bring-up (and failover) purposes, mterp can bail out to the
switch interpreter to handle a single opcode.  This CL fixes the
handoff of the result register (a bug that was masked by an earlier
revision which passed it around by reference, rather than by value.

Change-Id: Iba9e1576f52b3660348c89466438bdc0526227d0

8 years agoMerge "Fix "Never Interpret" option for all interpreters"
Bill Buzbee [Thu, 28 Jan 2016 23:59:33 +0000 (23:59 +0000)]
Merge "Fix "Never Interpret" option for all interpreters"

8 years agoFix "Never Interpret" option for all interpreters
buzbee [Thu, 28 Jan 2016 22:20:06 +0000 (14:20 -0800)]
Fix "Never Interpret" option for all interpreters

CL 196596 added support for an option to bypass interpretation.
However, it only covers 2 our of 3 interpreters (missing mterp).
This change moves the control up a level to the common interpreter
entry where it will take effect before we select which interpreter
to use.

Also, it corrects a somewhat academic bug in that the existing
code that assumes that (dex_pc == 0) means that we just entered a
method.  If a method's dex code internally branched to address 0,
we could issue bogus method entry events.  By moving this test up
a level, we should avoid this situation.  Note, though, that dx
would never generate this pattern, and it's hard to imagine even
hand-generated dex code that would trigger a deoptimization in this
situation.

Change-Id: I6684bbf63570e02f5b01ce423c656889a890de7d

8 years agoOptimizing compiler support for directly calling interface methods
Alex Light [Thu, 7 Jan 2016 22:49:16 +0000 (14:49 -0800)]
Optimizing compiler support for directly calling interface methods

This teaches the optimizing compiler how to perform invoke-super on
interfaces. This should make the invokes generally faster.

Bug: 24618811

Change-Id: I7f9b0fb1209775c1c8837ab5d21f8acba3cc72a5

8 years agoART: Dump full exception on re-init failure message
Andreas Gampe [Thu, 28 Jan 2016 23:31:39 +0000 (15:31 -0800)]
ART: Dump full exception on re-init failure message

It is a recurring issue to investigate the underlying issue. Just
dumping the top-level failure type is not very helpful. Take the
logcat hit and dump the full exception (including causes).

Change-Id: If071df9667473410222438e1c5f956c9b56b4d77

8 years agoMerge "Disable test for now."
Nicolas Geoffray [Thu, 28 Jan 2016 23:08:56 +0000 (23:08 +0000)]
Merge "Disable test for now."

8 years agoDisable test for now.
Nicolas Geoffray [Thu, 28 Jan 2016 23:07:47 +0000 (23:07 +0000)]
Disable test for now.

Change-Id: Ibc7f2a2b1fb35c7b0b9d8a34b5e6adc243a67776

8 years agoMerge "Clear image file in image writer"
Mathieu Chartier [Thu, 28 Jan 2016 23:00:23 +0000 (23:00 +0000)]
Merge "Clear image file in image writer"

8 years agoMerge "Remove ALWAYS_INLINE from ReadBarrier::Mark()."
Hiroshi Yamauchi [Thu, 28 Jan 2016 21:52:56 +0000 (21:52 +0000)]
Merge "Remove ALWAYS_INLINE from ReadBarrier::Mark()."

8 years agoRemove ALWAYS_INLINE from ReadBarrier::Mark().
Hiroshi Yamauchi [Thu, 28 Jan 2016 21:39:41 +0000 (13:39 -0800)]
Remove ALWAYS_INLINE from ReadBarrier::Mark().

This fixes a Ritzperf EAAC performance regression in the read barrier
config.

Bug: 26744236
Bug: 12687968
Change-Id: Ieaeb57def0e3a9eeb5fd8b1234658b45fd31ce77

8 years agoMerge "Fix image test with GSS"
Mathieu Chartier [Thu, 28 Jan 2016 20:15:55 +0000 (20:15 +0000)]
Merge "Fix image test with GSS"

8 years agoFix image test with GSS
Mathieu Chartier [Thu, 28 Jan 2016 17:49:55 +0000 (09:49 -0800)]
Fix image test with GSS

There was a gap between image space and non moving space for some
reason. No time for a better fix.

Bug: 26849108

Change-Id: If7fe9db060b7accbffd1b4636ce4e0d82a02ed7b

8 years agoClear image file in image writer
Mathieu Chartier [Thu, 28 Jan 2016 20:02:00 +0000 (12:02 -0800)]
Clear image file in image writer

The goal is to not erase the image file in installd in case we abort
compilation due to no new profile data. Currently aborting results in
an empty image file.

Bug: 22858531
Change-Id: I32eee3391f860f4a373db3d746d096cc36d623f2

8 years agoImplementation of integer intrinsics on x86_64
Aart Bik [Thu, 28 Jan 2016 01:00:35 +0000 (17:00 -0800)]
Implementation of integer intrinsics on x86_64

Rationale:
Efficient implementations of common integer operations.
Already tested in:
  564-checker-bitcount
  565-checker-rotate:
  566-checker-signum
  567-checker-compare
  568-checker-onebit  (extended to deal with run-time zero)

Change-Id: Ib48c76eee751e7925056d7f26797e9a9b5ae60dd

8 years agoMerge "Remove some more read barriers in image relocation"
Mathieu Chartier [Thu, 28 Jan 2016 19:02:13 +0000 (19:02 +0000)]
Merge "Remove some more read barriers in image relocation"

8 years agoRemove some more read barriers in image relocation
Mathieu Chartier [Thu, 28 Jan 2016 02:37:48 +0000 (18:37 -0800)]
Remove some more read barriers in image relocation

Bug: 26786304
Bug: 22858531
Change-Id: I70dacae7657ebf6dac2b3dad7726eebe5a2b2649

8 years agoMerge "Doh. Forgot to ensure it's compiled."
Nicolas Geoffray [Thu, 28 Jan 2016 18:19:15 +0000 (18:19 +0000)]
Merge "Doh. Forgot to ensure it's compiled."

8 years agoMerge "Optimizing: Try pattern substitution when we cannot inline."
Vladimir Marko [Thu, 28 Jan 2016 18:16:14 +0000 (18:16 +0000)]
Merge "Optimizing: Try pattern substitution when we cannot inline."

8 years agoDoh. Forgot to ensure it's compiled.
Nicolas Geoffray [Thu, 28 Jan 2016 18:15:53 +0000 (18:15 +0000)]
Doh. Forgot to ensure it's compiled.

Change-Id: I7b1786497c6bd0e83d8afe70fabecfacc8ca6a3a

8 years agoMerge "Fix issue with IMT dispatch."
Alex Light [Thu, 28 Jan 2016 18:15:07 +0000 (18:15 +0000)]
Merge "Fix issue with IMT dispatch."

8 years agoOptimizing: Try pattern substitution when we cannot inline.
Vladimir Marko [Fri, 22 Jan 2016 12:09:44 +0000 (12:09 +0000)]
Optimizing: Try pattern substitution when we cannot inline.

Change-Id: I7c01f4494bac8498accc0f087044ec509fee4c98

8 years agoMerge "Stop verifier ResolveClass from putting unresolved classes in dex cache."
Jeff Hao [Thu, 28 Jan 2016 18:07:16 +0000 (18:07 +0000)]
Merge "Stop verifier ResolveClass from putting unresolved classes in dex cache."

8 years agoStop verifier ResolveClass from putting unresolved classes in dex cache.
Jeff Hao [Thu, 28 Jan 2016 03:14:53 +0000 (19:14 -0800)]
Stop verifier ResolveClass from putting unresolved classes in dex cache.

Bug: 26792072

(cherry-picked from commit 340bd820b1d7552417beb47325f12caea8ba718b)

Change-Id: I6d1b5aaa4a05e42881aebf9d907fc66fce2144ad

8 years agoMerge "Factor out common code for SetPendingNext."
Richard Uhler [Thu, 28 Jan 2016 18:01:12 +0000 (18:01 +0000)]
Merge "Factor out common code for SetPendingNext."

8 years agoMerge "ART: Add missing swaps to MIPS codegen"
David Brazdil [Thu, 28 Jan 2016 17:42:55 +0000 (17:42 +0000)]
Merge "ART: Add missing swaps to MIPS codegen"

8 years agoART: Add missing swaps to MIPS codegen
David Brazdil [Thu, 28 Jan 2016 17:14:52 +0000 (17:14 +0000)]
ART: Add missing swaps to MIPS codegen

Change-Id: I0fb50280ddf43f817d991c15d3b6cdeb4635d6c2

8 years agoMerge "Do not enforce deterministic compilation with read barriers."
Roland Levillain [Thu, 28 Jan 2016 17:28:03 +0000 (17:28 +0000)]
Merge "Do not enforce deterministic compilation with read barriers."

8 years agoMerge "Add a comment to oatdump for 0 size symbols"
Tamas Berghammer [Thu, 28 Jan 2016 17:04:24 +0000 (17:04 +0000)]
Merge "Add a comment to oatdump for 0 size symbols"

8 years agoMerge "Change log to avoid polluting logcat."
Nicolas Geoffray [Thu, 28 Jan 2016 16:42:40 +0000 (16:42 +0000)]
Merge "Change log to avoid polluting logcat."

8 years agoAdd a comment to oatdump for 0 size symbols
Tamas Berghammer [Thu, 28 Jan 2016 16:30:14 +0000 (16:30 +0000)]
Add a comment to oatdump for 0 size symbols

The symbolizer inside oatdump generates 0 size symbols for the
trampoline symbols. Add a comment explaining why we emitting them with
0 size.

Change-Id: I16ed87554681ce57aafc26517a1e674647b5f9ac

8 years agoMerge "ART: Fix gtest after liveness CL"
David Brazdil [Thu, 28 Jan 2016 16:25:00 +0000 (16:25 +0000)]
Merge "ART: Fix gtest after liveness CL"

8 years agoART: Fix gtest after liveness CL
David Brazdil [Thu, 28 Jan 2016 16:22:40 +0000 (16:22 +0000)]
ART: Fix gtest after liveness CL

Change-Id: I2d029044cebe6e1ee7d7efb2e20541060f88c07c

8 years agoMerge "Implement first kind of polymorphic inlining."
Nicolas Geoffray [Thu, 28 Jan 2016 16:09:16 +0000 (16:09 +0000)]
Merge "Implement first kind of polymorphic inlining."

8 years agoImplement first kind of polymorphic inlining.
Nicolas Geoffray [Thu, 17 Dec 2015 14:57:09 +0000 (14:57 +0000)]
Implement first kind of polymorphic inlining.

Add HClassTableGet to fetch an ArtMethod from the vtable or imt,
and compare it to the only method the profiling saw.

Change-Id: I76afd3689178f10e3be048aa3ac9a97c6f63295d

8 years agoMerge "ART: Implement HSelect"
David Brazdil [Thu, 28 Jan 2016 15:52:08 +0000 (15:52 +0000)]
Merge "ART: Implement HSelect"

8 years agoART: Implement HSelect
David Brazdil [Mon, 14 Dec 2015 11:44:01 +0000 (11:44 +0000)]
ART: Implement HSelect

This patch adds a new HIR instruction to Optimizing. HSelect returns
one of two inputs based on the outcome of a condition.

This is only initial implementation which:
 - defines the new instruction,
 - repurposes BooleanSimplifier to emit it,
 - extends InstructionSimplifier to statically resolve it,
 - updates existing code and tests accordingly.

Code generators currently emit fallback if/then/else code and will be
updated in follow-up CLs to use platform-specific conditional moves
when possible.

Change-Id: Ib61b17146487ebe6b55350c2b589f0b971dcaaee

8 years agoMerge "ART: Implement support for instruction inlining"
David Brazdil [Thu, 28 Jan 2016 15:48:32 +0000 (15:48 +0000)]
Merge "ART: Implement support for instruction inlining"

8 years agoART: Implement support for instruction inlining
David Brazdil [Tue, 26 Jan 2016 11:28:37 +0000 (11:28 +0000)]
ART: Implement support for instruction inlining

Optimizing HIR contains 'non-materialized' instructions which are
emitted at their use sites rather than their defining sites. This
was not properly handled by the liveness analysis which did not
adjust the use positions of the inputs of such instructions.
Despite the analysis being incorrect, the current use cases never
produce incorrect code.

This patch generalizes the concept of inlined instructions and
updates liveness analysis to set the compute use positions correctly.

Change-Id: Id703c154b20ab861241ae5c715a150385d3ff621

8 years agoMerge "Emit symbol names for trampoline symbols in oatdump"
Tamas Berghammer [Thu, 28 Jan 2016 15:37:54 +0000 (15:37 +0000)]
Merge "Emit symbol names for trampoline symbols in oatdump"

8 years agoMerge "Fix ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."
Roland Levillain [Thu, 28 Jan 2016 15:33:33 +0000 (15:33 +0000)]
Merge "Fix ARM & ARM64 UnsafeCASObject intrinsic with heap poisoning."

8 years agoDo not enforce deterministic compilation with read barriers.
Roland Levillain [Thu, 28 Jan 2016 14:37:01 +0000 (14:37 +0000)]
Do not enforce deterministic compilation with read barriers.

Forcing determinism of the boot image compilation (on host)
does not work when read barriers are enabled, as the former
switches the GC to a non-concurrent one by passing the
option `-Xgc:nonconcurrent`.

Also make dex2oat abort when invoked with
`--force-determinism` while read barriers are enabled.

Bug: 12687968
Bug: 26687569
Change-Id: I37b388fccbe4502a90def8031a898f1a40df6a9f

8 years agoMerge "Re-enable some run-tests with CC after mterp fix."
Roland Levillain [Thu, 28 Jan 2016 12:32:01 +0000 (12:32 +0000)]
Merge "Re-enable some run-tests with CC after mterp fix."

8 years agoMerge "Don't crash if the perf map creation failed"
Tamas Berghammer [Thu, 28 Jan 2016 12:06:37 +0000 (12:06 +0000)]
Merge "Don't crash if the perf map creation failed"

8 years agoDon't crash if the perf map creation failed
Tamas Berghammer [Wed, 27 Jan 2016 16:15:56 +0000 (16:15 +0000)]
Don't crash if the perf map creation failed

The perf map file is used in the jit compiler to emit the symbol name
for the start address of each jitted function. The file is stored in
/data/misc/trace (previously /data) what is only accessible on
userdebug builds. This change modifies the code to work on user builds
with not using the perf map file if we failed to create it.

Change-Id: Icfecd4bdab94ffc528ec218f3ac2b872fbdacf37

8 years agoChange log to avoid polluting logcat.
Nicolas Geoffray [Thu, 28 Jan 2016 09:29:31 +0000 (09:29 +0000)]
Change log to avoid polluting logcat.

Change-Id: I804afe9e3a78876f4fc2d74ae084419530435840

8 years agoMerge "Revert "Revert "Lift the spill at each irreducible loop block restriction."""
Nicolas Geoffray [Thu, 28 Jan 2016 09:14:04 +0000 (09:14 +0000)]
Merge "Revert "Revert "Lift the spill at each irreducible loop block restriction."""

8 years agoRevert "Revert "Lift the spill at each irreducible loop block restriction.""
Nicolas Geoffray [Wed, 27 Jan 2016 14:15:23 +0000 (14:15 +0000)]
Revert "Revert "Lift the spill at each irreducible loop block restriction.""

This reverts commit 2818dbcd75ea9beadcba9d18e2f68523108d0cf5.

Change-Id: I92b2b60b4f08f50cacfea4132f1c28cfbd628f1a

8 years agoMerge changes from topic 'pointer_conversion'
Mathieu Chartier [Thu, 28 Jan 2016 03:02:05 +0000 (03:02 +0000)]
Merge changes from topic 'pointer_conversion'

* changes:
  Pass template args down
  Fix pointer conversion error in SetElementPtrSize

8 years agoPass template args down
Mathieu Chartier [Thu, 28 Jan 2016 00:37:19 +0000 (16:37 -0800)]
Pass template args down

Fixes failing DCHECK in dex2oatd

(cherry picked from commit 3df47c1c675e62cf0e5853699149c1181a48b28f)

Change-Id: I96a3b582705e4bffa39ee8e24ec43ff0d7a57ccd

8 years agoFix pointer conversion error in SetElementPtrSize
Mathieu Chartier [Wed, 27 Jan 2016 23:30:10 +0000 (15:30 -0800)]
Fix pointer conversion error in SetElementPtrSize

SetElementPtrSize used to cast from pointer to uint64_t which
could sign extend with 32 bit dex2oat for 64 bit app image.
Also removed C style casts and added more logging.

Bug: 22858531

(cherry picked from commit d22886357d4c53f74ca298faa7ad2555794e17e0)

Change-Id: I479124328fbc497cfcae20c43b4b55827e446527

8 years agoMerge "ART: Add option to ensure deterministic compilation"
Andreas Gampe [Thu, 28 Jan 2016 00:17:21 +0000 (00:17 +0000)]
Merge "ART: Add option to ensure deterministic compilation"

8 years agoART: Add option to ensure deterministic compilation
Andreas Gampe [Wed, 20 Jan 2016 21:33:13 +0000 (13:33 -0800)]
ART: Add option to ensure deterministic compilation

To ensure reliable stable generation of a boot image, add a flag
for forced determinism, trading compile time for a deterministic
output.

We have to run certain passes in the compiler-driver single-threaded.
It is also necessary to try to make the heap layout deterministic.
Switch to nonconcurrent GC, use the free-list implementation for LOS,
and try to allocate the main space at a known location. This is best
effort at the moment.

To allow the compiler phase to be parallelized, const-strings need
to be created beforehand.

The identity hashcode seed needs to be pinned.

Besides the Dex object we also need to null the DexFile pointer in
dex caches.

For classes, we need to remove the clinit thread ID.

Fix oatdump alignment padding accounting.

Bug: 26687569
Change-Id: Ia82120e8f715bb3691d861817b12778ac677355a

8 years agoFix issue with IMT dispatch.
Alex Light [Wed, 27 Jan 2016 00:07:41 +0000 (16:07 -0800)]
Fix issue with IMT dispatch.

If a default and an abstract method map to the same IMT slot one could
end up invoking the default method when one invokes the abstract
method.

Bug: 24618811
Bug: 26827549

Change-Id: I2ccb8e8b5362eb4961531b63e7b946ad8ef936a6

8 years agoMerge "reflection: Add new 1.8 AnnotatedElement methods and tests"
Igor Murashkin [Wed, 27 Jan 2016 21:36:13 +0000 (21:36 +0000)]
Merge "reflection: Add new 1.8 AnnotatedElement methods and tests"

8 years agoMerge "ART: Make sure dex files are verified in the compiler"
Andreas Gampe [Wed, 27 Jan 2016 21:14:50 +0000 (21:14 +0000)]
Merge "ART: Make sure dex files are verified in the compiler"

8 years agoreflection: Add new 1.8 AnnotatedElement methods and tests
Igor Murashkin [Fri, 15 Jan 2016 00:05:47 +0000 (16:05 -0800)]
reflection: Add new 1.8 AnnotatedElement methods and tests

Also:
* Bump the size of the Class vtable size since 3 new virtuals were
added to java.lang.Class
* Refactor Method#isDefault test into a separate file within 048 test.

Change-Id: I8420a4d208bb60874a9cf996766313c7d5058c45

8 years agoART: Make sure dex files are verified in the compiler
Andreas Gampe [Wed, 27 Jan 2016 01:23:47 +0000 (17:23 -0800)]
ART: Make sure dex files are verified in the compiler

Follow-up to 9bdf108885a27ba05fae8501725649574d7c491b. Make sure
that dex files from the oat writer are verified with the dex file
verifier.

Bug: 26793137
Bug: 26808512
Change-Id: I1a5f51751491eead21d8f9f1b31e37c7374c72a5

8 years agoMerge "Move heap trim outside of zygote creation lock region"
Mathieu Chartier [Wed, 27 Jan 2016 19:09:08 +0000 (19:09 +0000)]
Merge "Move heap trim outside of zygote creation lock region"

8 years agoMerge "Clear dalvik-cache before running test on host."
David Srbecky [Wed, 27 Jan 2016 18:56:46 +0000 (18:56 +0000)]
Merge "Clear dalvik-cache before running test on host."

8 years agoMerge "Implemented checker/unit test for various operations."
Aart Bik [Wed, 27 Jan 2016 18:46:33 +0000 (18:46 +0000)]
Merge "Implemented checker/unit test for various operations."

8 years agoMove heap trim outside of zygote creation lock region
Mathieu Chartier [Wed, 27 Jan 2016 18:44:20 +0000 (10:44 -0800)]
Move heap trim outside of zygote creation lock region

Fixes lock order violation due if non moving space is a RosAllocSpace
since the trim requires acquiring the mutator lock.

Change-Id: Iff0b8c943e261702eda65b3c255fda24a6fe14c2

8 years agoClear dalvik-cache before running test on host.
David Srbecky [Wed, 27 Jan 2016 18:42:06 +0000 (18:42 +0000)]
Clear dalvik-cache before running test on host.

The test 137-cfi is run twice and the stale data causes problems.

Change-Id: I631cc73c8e832534d0a276b7d23a654adeacebee

8 years agoMerge "ART: Allow --no-inline-from to specify multiple dex files."
Vladimir Marko [Wed, 27 Jan 2016 18:33:38 +0000 (18:33 +0000)]
Merge "ART: Allow --no-inline-from to specify multiple dex files."

8 years agoART: Allow --no-inline-from to specify multiple dex files.
Vladimir Marko [Wed, 27 Jan 2016 16:15:08 +0000 (16:15 +0000)]
ART: Allow --no-inline-from to specify multiple dex files.

This will allow tests to specify arbitrary dex files from
which we should not inline, in addition to core-oj, so that
we can test the related functionality. Additionally, should
the core-oj.jar core grow beyond a single classes.dex and
require a multi-dex .jar, this change makes sure that we
prevent inlining also from the extra classes<N>.dex files.

Change-Id: I74da4839bf9bb405dd62ad80563bf646a7a65dd9

8 years agoEmit symbol names for trampoline symbols in oatdump
Tamas Berghammer [Tue, 26 Jan 2016 18:03:43 +0000 (18:03 +0000)]
Emit symbol names for trampoline symbols in oatdump

Modify the symbolizer functionality of oatdump to emit symbols for
the trampolines in the begining of each oat file.

Change-Id: I083c160ff54784f904743f87bcc18881e6ce0603

8 years agoRe-enable some run-tests with CC after mterp fix.
Roland Levillain [Wed, 27 Jan 2016 17:57:37 +0000 (17:57 +0000)]
Re-enable some run-tests with CC after mterp fix.

These tests might have been affected by a moving GC issue in
the fast interpreter:
- 004-ThreadStress
- 141-class-unload

Re-enable them so that we can monitor them on the concurrent
collector configurations.

Bug: 26786154
Bug: 25866001
Bug: 12687968
Change-Id: I3b4902501ea1d13ef5454974be68b82ee196a169

8 years agoMerge "Show registered native allocations in ahat."
Richard Uhler [Wed, 27 Jan 2016 17:57:10 +0000 (17:57 +0000)]
Merge "Show registered native allocations in ahat."

8 years agoMerge "Cast method pointer to uintptr_t before uint64_t"
Mathieu Chartier [Wed, 27 Jan 2016 17:47:57 +0000 (17:47 +0000)]
Merge "Cast method pointer to uintptr_t before uint64_t"

8 years agoMerge "Change the order of functions in .debug_frame to save space."
David Srbecky [Wed, 27 Jan 2016 16:31:44 +0000 (16:31 +0000)]
Merge "Change the order of functions in .debug_frame to save space."