| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
To help for build failures.
Change-Id: I6c94dfb50177daa7d89902d78715ccec31bf0e45
|
|
Clean up verifier post-Quick.
Change-Id: I0b05e10dd06edd228fe2068c8afffc4b7d7fdffa
|
|
|
|
unit tests."
|
|
Extended unit tests.
Rationale:
Now that inductions are typed, comparisons should take
the type into account as well.
Change-Id: Ie533bb728d2006390646657573fa743e6fc37ff2
|
|
The explicit dependency of dex2oat on installed file of libart-compiler
isn't necessary: the build sets up the dependency automatically when
dex2oat links liblibart-compiler.
Also the way of the explicit dependency is incorrect if multilib is
involved: a 64-bit dex2oat may depend on 32-bit libart-compiler.
Bug: 27526885
Change-Id: I4a9d72b49f5712695ff5a32b88df5eab9df7c1e4
(cherry-pick from commit 5eec66ea27a2fa5bfa1b4f9bd203c76e2990d7a2)
|
|
fail-before/pass-after regression test."
|
|
Includes a fail-before/pass-after regression test.
Rationale:
In some corner cases, one new instance reached more than one
java.lang.String.<init> method call. As a result, the new
instance instruction appeared multiple times in the vector
uninitialized_strings_. A second removal crashes the compiler.
This change list avoid the crash by simply skipping instructions
that are already removed.
BUG=27847265
Change-Id: I7f8a4f84ea3c184e1529ec3e90bd6749c83c445b
|
|
Use member variables to reuse the storage instead of
repeatedly allocating new storage for local variables.
Bug: 27690481
Change-Id: I614db9b8614d585653cfbff62e9cf7d7f0c58810
|
|
We are skipping version 36 of the dex file format due to a bug in
Dalvik dating back to ICS where dex files marked version 036 would
erroneously be accepted.
Bug: 27538761
Bug: 27809626
Change-Id: Ic053f7e25f5a8c3df83ff34b6656528824b2df12
|
|
|
|
The method would remove predecessors before successors. As a result,
instructions used by dead loop phis would see dangling uses, causing
a DCHECK to fail.
Steps were reordered to remove dependencies in post order.
Bug: 27683071
Change-Id: I8e0e976443fb410908321a065276f1340b757c41
|
|
|
|
GraphChecker tries to verify that Boolean inputs are properly typed.
This is non-trivial in the presence of simplifying optimizations
which capitalize on the fact that a Boolean value is internally
represented as an integer.
This patch removes the test from GraphChecker.
Bug: 27625564
Change-Id: Ic61ea2193765b4578550538e965ca4f80fa4b287
|
|
|
|
|
|
|
|
There may be a lifetime hole between the intervals, which means there is
no interval for the given position.
Litle sister of https://android-review.googlesource.com/#/c/209336/.
bug:27626705
Change-Id: I8082aa5ae2dc37d8fa5d4c430b69e6defa495439
|
|
|
|
Change-Id: I309411b0fffaaed1e218e2c34394bdf6e2f75b48
|
|
Rely on HGraph::SimplifyLoop() to insert suspend checks.
CodeGenerator's CheckLoopEntriesCanBeUsedForOsr() checks the
dex pcs of suspend checks against branch targets to verify
that we always have an appropriate point for OSR transition.
However, the HSuspendChecks that were added by HGraphBuilder
to support the recently removed "baseline" interfered with
this in a specific case, namely an infinite loop where the
back-branch jumps to a nop. In that case, the HSuspendCheck
added by HGraphBuilder had a dex pc different from the block
and the branch target but its presence would stop the
HGraph::SimplifyLoop() from adding a new HSuspendCheck with
the correct dex pc.
Bug: 27623547
Change-Id: I83566a260210bc05aea0c44509a39bb490aa7003
|
|
This reverts commit 845e5064580bd37ad5014f7aa0d078be7265464d.
Add an option to change what OatFileManager considers up-to-date.
In our tests we're allowed to write to the dalvik-cache, so it
cannot be kSpeed.
Bug: 27689078
Change-Id: I0c578705a9921114ed1fb00d360cc7448addc93a
|
|
|
|
Change-Id: I11be5a9b73da207c9eb497bcaffc49d614c1ca89
|
|
|
|
|
|
The art::PrepareForRegisterAllocation visitor can remove an
art::BoundType instruction as value input of an
art::ArraySet instruction, possibly replacing it with an
art::NullConstant. If this happens, remove the need for a
type check in this art::ArraySet.
Bug: 27638110
Change-Id: I6270f8a8e22822a24d8a5919df427ca9c64d121b
|
|
Bots are red. Tentative reverting as this is likely the offender.
Bug: 27689078
This reverts commit a62d2f04a6ecf804f8a78e722a6ca8ccb2dfa931.
Change-Id: I3ec6947a5a4be878ff81f26f17dc36a209734e2a
|
|
Record the compiler filter in the oat header. Use that to determine
when the oat file is up-to-date with respect to a target compiler
filter level.
New xxx-profile filter levels are added to specify if a profile should
be used instead of testing for the presence of a profile file.
This change should allow for different compiler-filters to be set for
different package manager use cases.
Bug: 27689078
Change-Id: Id6706d0ed91b45f307142692ea4316aa9713b023
|
|
|
|
|
|
Bug: 27690481
Change-Id: I15ce5524d94fc1780da02e6471bede66b3a1b82a
|
|
|
|
Remove unused allocation types, mostly from removed Quick.
Move logging one level up to capture memory used by stack
maps during AOT compilation. Raise the reporting threshold
to 8MiB to limit the output to the worst offenders.
Change-Id: I8c7a01bfa90bc8ec5eab66187eb6850a022f3543
|
|
|
|
|
|
- Attach a ImtConflictTable to conflict runtime ArtMethod.
- Initially 0, a new one will be created at the first hit of
the conflict method.
- If the assembly code does not find a target method in the table,
we will create a new one again, copying the data from the previous
table and adding the new mapping.
Implemented for arm/arm64/x86/x64.
bug:27556801
bug:24769046
Change-Id: Ie74d1c77cf73d451a1142bdc5e3683f9f84bb4e7
|
|
There may be a lifetime hole in the interval, which means the interval
does not cover the given position.
bug:27617589
Change-Id: Iabd2b3d82936bed498f87be1a01760210954f97e
|
|
- Define maximum int and long shift & rotate distances as
int32_t constants, as shift & rotate distances are 32-bit
integer values.
- Consider the (long, long) inputs case as invalid for
static evaluation of shift & rotate rotations.
- Add more checks in shift & rotate operations constructors
as well as in art::GraphChecker.
Change-Id: I754b326c3a341c9cc567d1720b327dad6fcbf9d6
|
|
Bug: 27651442
Bug: 27151098
Change-Id: I23a428be68ccf9f9557df01ee7e920eeeb8da2ba
|
|
Ensure art::HNeg is only passed a type having the kind of
its input. For a boolean, byte, short, or char input, it
means HNeg's type should be int.
Bug: 27684275
Change-Id: Ic8442c62090a8ab65590754874a14a0deb7acd8d
|
|
|
|
Change-Id: Ie871763b9a36075fd3d70ee6e2e241ae1ccc36cf
|
|
Rationale:
This changelist implements allowing narrowing conversions within
inductions and loop control. More induction and loops recognized,
more bounds eliminated. We all win. The basic idea is pretty simple
(record type with detected induction) but one has to get all the
details right, as illustrated by the many new unit tests.
BUG=27151098
Change-Id: I254020bfa5fa623799b31bbbb5ccc97d4d5a0100
|
|
|
|
Seem to get randomly compressed incorrectly on volantis. Added
verifiation in the image writer.
Using LZ4HC now silently uses LZ4. This is still safe since both use
the same decompression code.
Bug: 27560444
Change-Id: I652eee7498dc84994993be3a5b0447ec5b246304
|
|
So long, old friend.
Change-Id: I0241c798a34b92bf994fed83888da67d6e7f1891
|