OSDN Git Service

android-x86/art.git
9 years agoMerge "ART: Re-add dlopen"
Andreas Gampe [Sat, 18 Apr 2015 00:52:30 +0000 (00:52 +0000)]
Merge "ART: Re-add dlopen"

9 years agoART: Re-add dlopen
Andreas Gampe [Wed, 8 Apr 2015 01:34:42 +0000 (18:34 -0700)]
ART: Re-add dlopen

Re-add an oat-file path that uses dlopen to load oat files. This
code-path will be necessary to support libunwind unwinding through
properly CFI-annotated oat files, as libunwind consults the linker
about loaded ELF files.

We avoid the original dlopen issue, namely that the semantics of
dlopen disallow loading the same soname twice, by using an extension
of bionic that supersedes the specified behavior.

Change-Id: I4a7e3cb00d1ea156dad84f76826def2a5967c9ca

9 years agoMerge "Fix access past end of args array."
Christopher Ferris [Fri, 17 Apr 2015 22:36:50 +0000 (22:36 +0000)]
Merge "Fix access past end of args array."

9 years agoFix access past end of args array.
Christopher Ferris [Fri, 17 Apr 2015 20:26:09 +0000 (13:26 -0700)]
Fix access past end of args array.

Bug: 20340831
Change-Id: Ibc0995e28e74c65d81f001e5b4d1e4780ff19686

9 years agoMerge "Fix undefined behavior in hash calculation."
Dan Albert [Fri, 17 Apr 2015 17:32:28 +0000 (17:32 +0000)]
Merge "Fix undefined behavior in hash calculation."

9 years agoFix undefined behavior in hash calculation.
Dan Albert [Thu, 16 Apr 2015 18:54:24 +0000 (11:54 -0700)]
Fix undefined behavior in hash calculation.

dex_register might be >= the width of the map hash. Shifting by that
value would be undefined behavior. Constrain the value to within the
valid range.

Change-Id: I9037c5c7ec554850ba3385585aca96fde1d50387

9 years agoMerge "ART: Fix a failing gtest"
David Brazdil [Fri, 17 Apr 2015 17:23:27 +0000 (17:23 +0000)]
Merge "ART: Fix a failing gtest"

9 years agoART: Fix a failing gtest
David Brazdil [Fri, 17 Apr 2015 17:19:30 +0000 (18:19 +0100)]
ART: Fix a failing gtest

Stricter assumptions about the state of linear scan caused a reg alloc
gtest to fail.

Change-Id: I0c568bf996ce6adefe4f000524b38acd3967421e

9 years agoMerge "ART: Improve range search caching in LiveInterval"
David Brazdil [Fri, 17 Apr 2015 16:25:16 +0000 (16:25 +0000)]
Merge "ART: Improve range search caching in LiveInterval"

9 years agoART: Improve range search caching in LiveInterval
David Brazdil [Thu, 16 Apr 2015 17:31:55 +0000 (18:31 +0100)]
ART: Improve range search caching in LiveInterval

Register allocator spends too long in LiveInterval queries. This patch
builds on previously introduced caching of range search results to
further speed up LiveInterval's Covers and FindIntersectionWith.
Only calls which are guaranteed to query the current->GetStart()
position are cached. Other calls are replaced with CoversSlow which
searches through the entire list of ranges.

Change-Id: I84d92b526e174caa70d6477497a06afd85016c4a

9 years agoMerge "ART: Fix incorrect last range when adding high interval"
David Brazdil [Fri, 17 Apr 2015 15:07:25 +0000 (15:07 +0000)]
Merge "ART: Fix incorrect last range when adding high interval"

9 years agoART: Fix incorrect last range when adding high interval
David Brazdil [Fri, 17 Apr 2015 14:49:51 +0000 (15:49 +0100)]
ART: Fix incorrect last range when adding high interval

Adding a high interval clones live ranges but assigns last_range from
the low interval. This should not cause any problems as last_range
is only used for constant-time GetEnd which will return the same
value for both low/high intervals.

Change-Id: Iaf242183436c8ac2f78c0aeea22cd07cd4beacc0

9 years agoMerge "Cleanup unnecessary test conditions in ssa builder."
Calin Juravle [Fri, 17 Apr 2015 10:03:22 +0000 (10:03 +0000)]
Merge "Cleanup unnecessary test conditions in ssa builder."

9 years agoCleanup unnecessary test conditions in ssa builder.
Calin Juravle [Fri, 17 Apr 2015 09:36:57 +0000 (10:36 +0100)]
Cleanup unnecessary test conditions in ssa builder.

Change-Id: Ic36e535aec3f977ebe36bfe20bc54a1033de62c6

9 years agoMerge "Fix value used for shift in quick_cfi_test."
Dan Albert [Thu, 16 Apr 2015 23:24:24 +0000 (23:24 +0000)]
Merge "Fix value used for shift in quick_cfi_test."

9 years agoMerge "Fix build"
Mathieu Chartier [Thu, 16 Apr 2015 21:39:11 +0000 (21:39 +0000)]
Merge "Fix build"

9 years agoFix build
Mathieu Chartier [Thu, 16 Apr 2015 21:34:45 +0000 (14:34 -0700)]
Fix build

art/runtime/mirror/art_method-inl.h:142: error: undefined
reference to 'art::ClassLinker::ResolveType(unsigned short,
art::mirror::ArtMethod*)'

Change-Id: I3c5d26eed13e3f8d0a4d96756c09364707b6358e

9 years agoFix value used for shift in quick_cfi_test.
Dan Albert [Thu, 16 Apr 2015 18:52:45 +0000 (11:52 -0700)]
Fix value used for shift in quick_cfi_test.

The spill mask bit should be shifted by the register number, not the
whole register mask.

Previously this test was shifting by values well over the width of the
type, which is undefined behavior.

Change-Id: Idf750be6d95b4487f8f4570b8c7ff9dba38be9f2

9 years agoMerge "Remove transitive dependency on <cutils/atomic.h>."
Yabin Cui [Thu, 16 Apr 2015 18:35:13 +0000 (18:35 +0000)]
Merge "Remove transitive dependency on <cutils/atomic.h>."

9 years agoRemove transitive dependency on <cutils/atomic.h>.
Yabin Cui [Wed, 15 Apr 2015 22:40:18 +0000 (15:40 -0700)]
Remove transitive dependency on <cutils/atomic.h>.

Bug: 20262261
Change-Id: Ic6c2ed76e692fc09100b917e00ee9b73621ec8f0

9 years agoMerge "Disable parallel GC by default"
Mathieu Chartier [Thu, 16 Apr 2015 17:23:31 +0000 (17:23 +0000)]
Merge "Disable parallel GC by default"

9 years agoMerge "ART: Replace expensive calls to Covers in reg alloc"
David Brazdil [Thu, 16 Apr 2015 17:22:19 +0000 (17:22 +0000)]
Merge "ART: Replace expensive calls to Covers in reg alloc"

9 years agoART: Replace expensive calls to Covers in reg alloc
David Brazdil [Thu, 16 Apr 2015 16:59:03 +0000 (17:59 +0100)]
ART: Replace expensive calls to Covers in reg alloc

LiveInterval::Covers is implemented as a linear-time search over
liveness ranges and can therefore be rather expensive and should be
avoided unless necessary. This patch replaces calls to Covers when
searching for a sibling with the cheaper IsDefinedAt call.

Change-Id: I93fc73529c15a518335f4cbdc3a0def52d9501e5

9 years agoMerge "Don't call ComputeEagerResolvedStrings"
Mathieu Chartier [Thu, 16 Apr 2015 16:52:33 +0000 (16:52 +0000)]
Merge "Don't call ComputeEagerResolvedStrings"

9 years agoDon't call ComputeEagerResolvedStrings
Mathieu Chartier [Thu, 16 Apr 2015 03:03:16 +0000 (20:03 -0700)]
Don't call ComputeEagerResolvedStrings

Doesn't add any strings to the dex caches, takes 50ms on nexus 5
during image writing.

Change-Id: Ib38d456b765a90efc0008955f974446fbe285bff

9 years agoMerge "Remove duplicates phis created during SSA transformation"
Calin Juravle [Thu, 16 Apr 2015 15:53:22 +0000 (15:53 +0000)]
Merge "Remove duplicates phis created during SSA transformation"

9 years agoRemove duplicates phis created during SSA transformation
Calin Juravle [Thu, 16 Apr 2015 11:57:19 +0000 (12:57 +0100)]
Remove duplicates phis created during SSA transformation

When creating equivalent phis we copy the inputs of the original phi
which may be improperly typed. This will be fixed during the type
propagation but as a result we may have two equivalent phis with the
same type for the same dex register. This is correct but generates more
code and prevent some optimizations.

This CL adds another step in the SSA builder to remove the extra Phi
nodes created due to equality operators.

The graph checker verifies that for a given dex register not two phis
have the same type.

Also, replace zero int constant with null constant when we compare a
reference against null.

Change-Id: Id37cc11a016ea767c7e351575e003d822a9d2e60

9 years agoMerge "ART: Fix whitespace in test"
David Brazdil [Thu, 16 Apr 2015 15:41:52 +0000 (15:41 +0000)]
Merge "ART: Fix whitespace in test"

9 years agoMerge "Fallback to quick in case of soft verification errors"
Calin Juravle [Thu, 16 Apr 2015 15:41:02 +0000 (15:41 +0000)]
Merge "Fallback to quick in case of soft verification errors"

9 years agoART: Fix whitespace in test
David Brazdil [Thu, 16 Apr 2015 15:37:01 +0000 (16:37 +0100)]
ART: Fix whitespace in test

Change-Id: Ia17ac99868efcc7ff32ea63f72644097dd2065bf

9 years agoFallback to quick in case of soft verification errors
Calin Juravle [Mon, 13 Apr 2015 17:42:21 +0000 (18:42 +0100)]
Fallback to quick in case of soft verification errors

Add a regression test: using uninitialized values triggers a soft
verification error and optimizing should not crash.

Thanks to Stephen Kyle (stephenckyle@googlemail.com) for the bug report.

Bug: 19988704
Change-Id: I67174538eed853baff735694b3ae8eb34afe2a39

9 years agoMerge "ART: Adds a regression test for an inliner issue"
David Brazdil [Thu, 16 Apr 2015 15:17:10 +0000 (15:17 +0000)]
Merge "ART: Adds a regression test for an inliner issue"

9 years agoART: Adds a regression test for an inliner issue
David Brazdil [Thu, 16 Apr 2015 14:42:27 +0000 (15:42 +0100)]
ART: Adds a regression test for an inliner issue

Regression test for CL Ieddadcd94135930a1f29ad64ad57349a384da07f.

Change-Id: Ibc8fd827a4b8b3d0cddf7f7590a689ec99bf1329

9 years agoMerge "ART: Hot fix for an inliner issue"
David Brazdil [Thu, 16 Apr 2015 14:25:55 +0000 (14:25 +0000)]
Merge "ART: Hot fix for an inliner issue"

9 years agoART: Hot fix for an inliner issue
David Brazdil [Thu, 16 Apr 2015 14:18:00 +0000 (15:18 +0100)]
ART: Hot fix for an inliner issue

Change 147130 caused a problem with duplicit instruction ids when
inlining methods with constants. This is a hot fix to unblock build.

Change-Id: Ieddadcd94135930a1f29ad64ad57349a384da07f

9 years agoMerge "Split safepoint positions to avoid calling Covers."
Nicolas Geoffray [Thu, 16 Apr 2015 13:36:44 +0000 (13:36 +0000)]
Merge "Split safepoint positions to avoid calling Covers."

9 years agoSplit safepoint positions to avoid calling Covers.
Nicolas Geoffray [Thu, 16 Apr 2015 12:01:01 +0000 (13:01 +0100)]
Split safepoint positions to avoid calling Covers.

This is also in preparation for caller/callee save based
register allocation.

Change-Id: I63954bdae5ea7870568fd93b4d11e1c9dcd6de6f

9 years agoMerge "ART: Remove DCHECKs for boolean type"
David Brazdil [Thu, 16 Apr 2015 10:10:59 +0000 (10:10 +0000)]
Merge "ART: Remove DCHECKs for boolean type"

9 years agoART: Remove DCHECKs for boolean type
David Brazdil [Wed, 15 Apr 2015 15:29:32 +0000 (16:29 +0100)]
ART: Remove DCHECKs for boolean type

Since bool and int are interchangeable types, checking whether an
input is kPrimBoolean can fail when replaced with 0/1 constant or
a phi. This patch removes the problematic DCHECKs, adds a best-effort
verification into SSAChecker but leaves the phi case empty until a
suitable analysis is implemented.

Change-Id: I31e8daf27dd33d2fd74049b82bed1cb7c240c8c6

9 years agoMerge "ART: Don't duplicate null/int/long constants when inlining"
David Brazdil [Thu, 16 Apr 2015 09:49:55 +0000 (09:49 +0000)]
Merge "ART: Don't duplicate null/int/long constants when inlining"

9 years agoART: Don't duplicate null/int/long constants when inlining
David Brazdil [Thu, 16 Apr 2015 09:38:44 +0000 (10:38 +0100)]
ART: Don't duplicate null/int/long constants when inlining

Change-Id: I7e6a3393fcbbcf76b4ba2000915ba6bbbfb7c70e

9 years agoMerge "Revert "[optimizing] Improve x86 parallel moves/swaps""
Calin Juravle [Thu, 16 Apr 2015 09:40:38 +0000 (09:40 +0000)]
Merge "Revert "[optimizing] Improve x86 parallel moves/swaps""

9 years agoMerge "Remove dead blocks for the blocks_ array."
Nicolas Geoffray [Thu, 16 Apr 2015 08:00:07 +0000 (08:00 +0000)]
Merge "Remove dead blocks for the blocks_ array."

9 years agoMerge "ART: Streaming trace mode"
Andreas Gampe [Thu, 16 Apr 2015 04:24:04 +0000 (04:24 +0000)]
Merge "ART: Streaming trace mode"

9 years agoART: Streaming trace mode
Andreas Gampe [Fri, 27 Feb 2015 20:49:04 +0000 (12:49 -0800)]
ART: Streaming trace mode

Add a streaming mode for tracing. Streaming uses a buffer of 16KB
and writes to the output when that buffer gets full. Streaming mode
can be enabled with -Xmethod-trace-stream and is currently not
exposed otherwise.

Add a python script that can parse the streaming format, which
simply contains strings for newly encountered threads and methods
inline, and create output that can be used with traceview.

Add Trace::Pause and Trace::Abort, which can pause and abort tracing.
Abort is different from Stop in that it does not write the data.

Add code to the zygote hooks JNI implementation that pauses tracing
before the fork, making sure that a child cannot clobber the parent's
data.

Add code to the zygote hooks JNI implementation that aborts old
tracing and starts new tracing in the child after the fork. Currently
base the output on the pid. This will not work on an unmodified
device, as the profiles directory is not generally writable, but
we do not have enough information at that point. Consider a scheme
that restarts tracing later.

Change-Id: I93c7bf87e35af582bdfdd3ecc7c52454514220dd

9 years agoDisable parallel GC by default
Mathieu Chartier [Wed, 15 Apr 2015 21:21:33 +0000 (14:21 -0700)]
Disable parallel GC by default

Not using parallel GC seems to reduce avg pauses by ~0.1s on
EvaluateAndApplyChanges. Avoiding creating the thread pool should
help app launch slightly and reduce memory ussage.

Change-Id: Iebec2a17701c76e4145b41d7c0b4f6dd17806efa

9 years agoRemove dead blocks for the blocks_ array.
Nicolas Geoffray [Wed, 15 Apr 2015 17:22:45 +0000 (18:22 +0100)]
Remove dead blocks for the blocks_ array.

This prevents crashing because of structurally incorrect
blocks. Also we now don't need to remove its instructions.

Test case courtesy of Serguei I Katkov.

Change-Id: Ia3ef9580549fc3546e8cd5f346079b1f0ceb2a61

9 years agoRevert "[optimizing] Improve x86 parallel moves/swaps"
Guillaume Sanchez [Wed, 15 Apr 2015 18:57:27 +0000 (18:57 +0000)]
Revert "[optimizing] Improve x86 parallel moves/swaps"

This reverts commit a5c19ce8d200d68a528f2ce0ebff989106c4a933.

This commit introduces a performance regression on CaffeineLogic of 30%.

Change-Id: I917e206e249d44e1748537bc1b2d31054ea4959d

9 years agoMerge "Type MoveOperands."
Nicolas Geoffray [Wed, 15 Apr 2015 14:10:29 +0000 (14:10 +0000)]
Merge "Type MoveOperands."

9 years agoMerge "Move the linear order to the HGraph."
Nicolas Geoffray [Wed, 15 Apr 2015 13:29:02 +0000 (13:29 +0000)]
Merge "Move the linear order to the HGraph."

9 years agoMove the linear order to the HGraph.
Nicolas Geoffray [Wed, 15 Apr 2015 13:17:44 +0000 (14:17 +0100)]
Move the linear order to the HGraph.

Bug found by Zheng Xu: SsaLivenessAnalysis being a stack allocated
object, we should not refer to it in later phases of the compiler.
Specifically, the code generator was using the linear order, which
was stored in the liveness analysis object.

Change-Id: I574641f522b7b86fc43f3914166108efc72edb3b

9 years agoType MoveOperands.
Nicolas Geoffray [Wed, 15 Apr 2015 10:56:51 +0000 (11:56 +0100)]
Type MoveOperands.

The ParallelMoveResolver implementation needs to know if a move
is for 64bits or not, to handle swaps correctly.

Bug found, and test case courtesy of Serguei I. Katkov.

Change-Id: I9a0917a1cfed398c07e57ad6251aea8c9b0b8506

9 years agoMerge "ART: Implement HBooleanNot instruction"
David Brazdil [Wed, 15 Apr 2015 11:53:08 +0000 (11:53 +0000)]
Merge "ART: Implement HBooleanNot instruction"

9 years agoART: Implement HBooleanNot instruction
David Brazdil [Fri, 3 Apr 2015 15:02:44 +0000 (16:02 +0100)]
ART: Implement HBooleanNot instruction

Optimizations simplifying operations on boolean values (boolean
simplifier, instruction simplifier) can benefit from having a special
HInstruction for negating booleans in order to perform more transforms
and produce faster machine code.

This patch implements HBooleanNot as 'x xor 1', assuming that booleans
are 1-bit integers and allowing for a single-instruction negation on
all supported platforms.

Change-Id: I33a2649c1821255b18a86ca68ed16416063c739f

9 years agoMerge "Do not deduplicate code if --debuggable is set."
David Srbecky [Wed, 15 Apr 2015 10:15:09 +0000 (10:15 +0000)]
Merge "Do not deduplicate code if --debuggable is set."

9 years agoMerge "Revert "Add a check in the location summary.""
Nicolas Geoffray [Wed, 15 Apr 2015 10:08:06 +0000 (10:08 +0000)]
Merge "Revert "Add a check in the location summary.""

9 years agoRevert "Add a check in the location summary."
Nicolas Geoffray [Wed, 15 Apr 2015 10:07:52 +0000 (10:07 +0000)]
Revert "Add a check in the location summary."

My assumption was wrong. We actually can use same as first input with any, *only if* the generate code does not clobber the first input. We use this for, e.g. DivZeroCheck, NullCheck.

This reverts commit 95bf7547986e68d4ac93b0a529aaa8eb3c998c1f.

Change-Id: Ib72d73fe580f5bc707b41c651f2c8936bd4e2407

9 years agoDo not deduplicate code if --debuggable is set.
David Srbecky [Wed, 15 Apr 2015 01:46:30 +0000 (02:46 +0100)]
Do not deduplicate code if --debuggable is set.

This ensures that the correct method is displayed in backtrace, and it
makes it possible to reliably set native breakpoints in the methods.

I assume this will also be needed for java debugging as soon as the
ArtMethod* is removed from the stackframe.

Change-Id: I289e85461c231fde2d45473bb19aff9ad5fb496d

9 years agoMerge "Add a check in the location summary."
Nicolas Geoffray [Wed, 15 Apr 2015 09:17:19 +0000 (09:17 +0000)]
Merge "Add a check in the location summary."

9 years agoMerge "Refactor safepoints in register allocator."
Nicolas Geoffray [Wed, 15 Apr 2015 09:17:03 +0000 (09:17 +0000)]
Merge "Refactor safepoints in register allocator."

9 years agoRefactor safepoints in register allocator.
Nicolas Geoffray [Tue, 14 Apr 2015 13:10:59 +0000 (14:10 +0100)]
Refactor safepoints in register allocator.

This is in preparation for adding logic around callee/caller
saved in the register allocator.

Change-Id: I4204169f0a6a01074880538833144be7b0810882

9 years agoAdd a check in the location summary.
Nicolas Geoffray [Tue, 14 Apr 2015 16:05:16 +0000 (17:05 +0100)]
Add a check in the location summary.

Having SameAsFirstInput for out, and first input Any does not
make sense currently. If it's stack, we are going to overwrite
it, potentially clobbering another local. And constant does not
make sense.

Change-Id: I0ce357137487ed3dcecf4efd9922a039a2a1a29d

9 years agoMerge "ARM64: Remove suspend register."
Vladimir Marko [Wed, 15 Apr 2015 08:28:59 +0000 (08:28 +0000)]
Merge "ARM64: Remove suspend register."

9 years agoMerge "ART: More nullptr checks in unstarted runtime"
Andreas Gampe [Wed, 15 Apr 2015 05:44:30 +0000 (05:44 +0000)]
Merge "ART: More nullptr checks in unstarted runtime"

9 years agoART: More nullptr checks in unstarted runtime
Andreas Gampe [Wed, 15 Apr 2015 05:16:14 +0000 (22:16 -0700)]
ART: More nullptr checks in unstarted runtime

More checks necessary for the compiler-driver test.

Change-Id: I29bc20d1f571df5407f9b5fca212e3e79ef9cdc7

9 years agoMerge "Split .debug_info section to compilation units."
David Srbecky [Wed, 15 Apr 2015 01:10:13 +0000 (01:10 +0000)]
Merge "Split .debug_info section to compilation units."

9 years agoSplit .debug_info section to compilation units.
David Srbecky [Tue, 14 Apr 2015 00:57:43 +0000 (01:57 +0100)]
Split .debug_info section to compilation units.

This resolves old TODO in the code.  It is also very important
for performance and memory usage of any tools which might be
consuming the debug data.  Without this split, the tools
would be forced to decode (and probably store in memory) all of
debug data even for a simple query.  With this change it should
be easy to find only the relevant compilation unit.

Change-Id: I9f285eaa01632b6adea39cae866df6f76e9d0062

9 years agoMerge "Remove suspend point from field loading"
Mathieu Chartier [Tue, 14 Apr 2015 22:54:07 +0000 (22:54 +0000)]
Merge "Remove suspend point from field loading"

9 years agoRemove suspend point from field loading
Mathieu Chartier [Tue, 14 Apr 2015 22:43:10 +0000 (15:43 -0700)]
Remove suspend point from field loading

The error was that we had a partially constructed field array when we
got suspended by moving GC. This caused the already allocated fields
to not get updated, and be stale roots the next GC. Fixes test 125
with GSS collector.

Change-Id: I7278def915f540b6a9d12677a6ba61637f5949a2

9 years agoMerge "ART: Store classpath information into oat file"
Andreas Gampe [Tue, 14 Apr 2015 21:17:04 +0000 (21:17 +0000)]
Merge "ART: Store classpath information into oat file"

9 years agoART: Store classpath information into oat file
Andreas Gampe [Thu, 9 Apr 2015 18:15:04 +0000 (11:15 -0700)]
ART: Store classpath information into oat file

Store a "dependency list" of class-path dex-files into the key-value
store of an oat file. The list is made up of dex locations and
corresponding checksums.

Add tests for encoding, decoding and checking the list.

Bug: 19781184
Change-Id: Ie700dd37e6e086db599c95d329ac1f1d2ff0b758

9 years agoMerge "ART: Add Security cutout to unstarted runtime"
Andreas Gampe [Tue, 14 Apr 2015 21:07:05 +0000 (21:07 +0000)]
Merge "ART: Add Security cutout to unstarted runtime"

9 years agoMerge "ART: Make the PathClassLoader fast-path recursive"
Andreas Gampe [Tue, 14 Apr 2015 21:06:16 +0000 (21:06 +0000)]
Merge "ART: Make the PathClassLoader fast-path recursive"

9 years agoART: Make the PathClassLoader fast-path recursive
Andreas Gampe [Tue, 14 Apr 2015 05:14:19 +0000 (22:14 -0700)]
ART: Make the PathClassLoader fast-path recursive

Allow an arbitrary nesting of path class-loaders. This will also
handle the fake java.lang.BootClassLoader as a class-loader object
correctly (which is of some importance to compile-time initialization).

Bug: 19781184
Bug: 19542228
Change-Id: I61f0249cf4ec8df08a83ccbd29bcf067619c28c0

9 years agoMerge "Fix test 104 for --relocate --no-patchoat"
Mathieu Chartier [Tue, 14 Apr 2015 18:54:15 +0000 (18:54 +0000)]
Merge "Fix test 104 for --relocate --no-patchoat"

9 years agoFix test 104 for --relocate --no-patchoat
Mathieu Chartier [Tue, 14 Apr 2015 18:33:53 +0000 (11:33 -0700)]
Fix test 104 for --relocate --no-patchoat

Failure caused by keeping an array live in a vreg, this caused
getDeclaredMethod to throw OOME.

Change-Id: Id2aa976af0978cdd7354fb94b3becfcc85e19ca2

9 years agoMerge "Fix valgrind tests"
Mathieu Chartier [Tue, 14 Apr 2015 18:12:13 +0000 (18:12 +0000)]
Merge "Fix valgrind tests"

9 years agoFix valgrind tests
Mathieu Chartier [Tue, 14 Apr 2015 16:35:18 +0000 (09:35 -0700)]
Fix valgrind tests

Delete large objects in space destructor. Also some cleanup.

Change-Id: I4c4e90149841a156b7a3236201b37683e14890fb

9 years agoMerge "ART: Add a null-check to unstarted-runtime"
Andreas Gampe [Tue, 14 Apr 2015 17:33:50 +0000 (17:33 +0000)]
Merge "ART: Add a null-check to unstarted-runtime"

9 years agoMerge "getRuntimeStat() support (ART)."
Hiroshi Yamauchi [Tue, 14 Apr 2015 17:31:12 +0000 (17:31 +0000)]
Merge "getRuntimeStat() support (ART)."

9 years agoART: Add a null-check to unstarted-runtime
Andreas Gampe [Tue, 14 Apr 2015 17:10:33 +0000 (10:10 -0700)]
ART: Add a null-check to unstarted-runtime

Check the string parameter to Class.forName before using it.

Bug: 19542228
Change-Id: I0d5c44122055c46e251451b1c0f687bbaf64d13e

9 years agoART: Add Security cutout to unstarted runtime
Andreas Gampe [Mon, 13 Apr 2015 21:17:09 +0000 (14:17 -0700)]
ART: Add Security cutout to unstarted runtime

This allows limited I/O in the compiler to read security.properties,
which in turn allows to compile-time initialize Security, and thus
Services and most of the providers.

Bug: 19498458
Bug: 19542228
Change-Id: I853952b83ca99006907c070734f767259c975517

9 years agoMerge "Opt Compiler: ARM64 goodness"
Roland Levillain [Tue, 14 Apr 2015 16:34:44 +0000 (16:34 +0000)]
Merge "Opt Compiler: ARM64 goodness"

9 years agoARM64: Remove suspend register.
Zheng Xu [Tue, 14 Apr 2015 12:04:41 +0000 (20:04 +0800)]
ARM64: Remove suspend register.

It also clean up build/remove frame used by JNI compiler and generates
stp/ldp instead of str/ldr. Also x19 has been unblocked in both quick and
optimizing compiler.

Change-Id: Idbeac0942265f493266b2ef9b7a65bb4054f0e2d

9 years agoMerge "Fix a bug in type propagation."
Nicolas Geoffray [Tue, 14 Apr 2015 15:35:23 +0000 (15:35 +0000)]
Merge "Fix a bug in type propagation."

9 years agoFix a bug in type propagation.
Nicolas Geoffray [Tue, 14 Apr 2015 14:11:57 +0000 (15:11 +0100)]
Fix a bug in type propagation.

If a phi requests its inputs to be of a certain type, the inputs need
to propagate that type to their users, as those users might be
phis.

Bug report and test courtesy of Serguei I Katkov.

Change-Id: I79baac271566ec4fa684c1edf11a1b3383d896a9

9 years agoMerge "Revert "ART: Turn of native stack dump on x86 on-device""
Christopher Ferris [Tue, 14 Apr 2015 00:18:12 +0000 (00:18 +0000)]
Merge "Revert "ART: Turn of native stack dump on x86 on-device""

9 years agoMerge "Fix DCHECK failures from Class::VisitFieldRoots"
Mathieu Chartier [Mon, 13 Apr 2015 23:54:09 +0000 (23:54 +0000)]
Merge "Fix DCHECK failures from Class::VisitFieldRoots"

9 years agoRevert "ART: Turn of native stack dump on x86 on-device"
Christopher Ferris [Mon, 13 Apr 2015 23:18:02 +0000 (23:18 +0000)]
Revert "ART: Turn of native stack dump on x86 on-device"

This reverts commit 2f0751ea75e5f093d9ce7b8587e65a2ca3de0855.

Bug: 20040863

Change-Id: Ibd40916c0f84512b0ba13af09d4fd345be39e227

9 years agoFix DCHECK failures from Class::VisitFieldRoots
Mathieu Chartier [Fri, 10 Apr 2015 21:23:35 +0000 (14:23 -0700)]
Fix DCHECK failures from Class::VisitFieldRoots

We now use GetDeclaringClassUnchecked when marking roots to fix
flaky test failures. Fixed a race condition in root marking where
we could have non zero field array length with a null pointer.
Fixed a race condition where we could be marking roots before
FixupTemporaryDeclaringClass had finished. The solution is to
only do the declaring class CHECK if we are at least resolved.
Fixed JDWP tests by changing FieldId / MethodId to be 64 bits.

Also some cleanup.

Change-Id: Ibac09519860d93c3f68a5cc964bbc91dc10a279a

9 years agoMerge "Append [DEDUPED] suffix to all deduped methods in the symbol table."
David Srbecky [Mon, 13 Apr 2015 22:42:56 +0000 (22:42 +0000)]
Merge "Append [DEDUPED] suffix to all deduped methods in the symbol table."

9 years agogetRuntimeStat() support (ART).
Hiroshi Yamauchi [Thu, 2 Apr 2015 17:18:12 +0000 (10:18 -0700)]
getRuntimeStat() support (ART).

Export some runtime stats (currently GC stats) via
VMDebug.getRuntimeStat().

Added several new GC stats such as blocking GC counts and GC count
histograms.

Bug: 19825248
Change-Id: I8ece9ed241dc3982dfd983d7159090ba82940dce

9 years agoAppend [DEDUPED] suffix to all deduped methods in the symbol table.
David Srbecky [Sun, 12 Apr 2015 12:12:26 +0000 (13:12 +0100)]
Append [DEDUPED] suffix to all deduped methods in the symbol table.

This resolves old TODO in the code.  The first method was never
marked as deduped and only the subsequent copies were recognised.
Therefore the suffix might have been missing in backtraces.

Change-Id: I4882d90f3049f7e196cd38c8987ba02960dab338

9 years agoMerge "Move the file which defines DWARF enums."
David Srbecky [Mon, 13 Apr 2015 22:25:38 +0000 (22:25 +0000)]
Merge "Move the file which defines DWARF enums."

9 years agoMove the file which defines DWARF enums.
David Srbecky [Sun, 12 Apr 2015 07:47:47 +0000 (08:47 +0100)]
Move the file which defines DWARF enums.

It was previously part of the runtime since it was needed
by the linker.  This is no longer the case so we can move
it to the DWARF utility library.

Change-Id: I1874fad45d27fd9ebbae17dd82d43322190f91ef

9 years agoMerge "Add test for x86-64 DWARF register mapping."
David Srbecky [Mon, 13 Apr 2015 20:44:26 +0000 (20:44 +0000)]
Merge "Add test for x86-64 DWARF register mapping."

9 years agoAdd test for x86-64 DWARF register mapping.
David Srbecky [Sun, 12 Apr 2015 13:58:39 +0000 (14:58 +0100)]
Add test for x86-64 DWARF register mapping.

This is the only mapping which is non-trivial.

Change-Id: I59be4b6ffb0ffbbf00ddb72e77e80cfb9e89d9f2

9 years agoMerge "Add --include-cfi compiler option."
David Srbecky [Mon, 13 Apr 2015 20:34:10 +0000 (20:34 +0000)]
Merge "Add --include-cfi compiler option."

9 years agoAdd --include-cfi compiler option.
David Srbecky [Sun, 12 Apr 2015 10:40:39 +0000 (11:40 +0100)]
Add --include-cfi compiler option.

Decouple generation of CFI from the rest of debug symbols.
This makes it possible to generate oat with CFI but without
the rest of debug symbols.

This is in line with intention of the .eh_frame section.
The section does not have the .debug_ prefix because it
is considered somewhat different to the rest of debug symbols.

Change-Id: I32816ecd4f30ac4e0dc69d69a4993e349c737f96

9 years agoMerge "Remove the --gen-gdb-info compiler option."
David Srbecky [Mon, 13 Apr 2015 20:00:53 +0000 (20:00 +0000)]
Merge "Remove the --gen-gdb-info compiler option."