OSDN Git Service

android-x86/art.git
9 years agoMake dexdump2 compile for 64bit devices.
Nicolas Geoffray [Tue, 7 Jul 2015 09:12:10 +0000 (10:12 +0100)]
Make dexdump2 compile for 64bit devices.

Change-Id: I4c990272b20062632d236671415cfb3dbb26c867

9 years agoMerge "Disable sanitization of dex2oat on device."
Evgenii Stepanov [Mon, 6 Jul 2015 23:20:48 +0000 (23:20 +0000)]
Merge "Disable sanitization of dex2oat on device."

9 years agoDisable sanitization of dex2oat on device.
Evgenii Stepanov [Mon, 6 Jul 2015 21:01:25 +0000 (14:01 -0700)]
Disable sanitization of dex2oat on device.

Bug: 22233158
Change-Id: I54990bb167a65275ed28e0cbbab56b936eb70ca4

9 years agoMerge "List dependence of dexdump gtest on dexdump binary."
Aart Bik [Mon, 6 Jul 2015 22:24:11 +0000 (22:24 +0000)]
Merge "List dependence of dexdump gtest on dexdump binary."

9 years agoList dependence of dexdump gtest on dexdump binary.
Aart Bik [Mon, 6 Jul 2015 21:27:27 +0000 (14:27 -0700)]
List dependence of dexdump gtest on dexdump binary.

Change-Id: I1293009a370eff808b5e31cc89110eb9fe3ce32f

9 years agoMerge "Migrated dexdump from Dalvik (libdex) into Art (libart)"
Aart Bik [Mon, 6 Jul 2015 20:25:55 +0000 (20:25 +0000)]
Merge "Migrated dexdump from Dalvik (libdex) into Art (libart)"

9 years agoMigrated dexdump from Dalvik (libdex) into Art (libart)
Aart Bik [Wed, 1 Jul 2015 21:52:26 +0000 (14:52 -0700)]
Migrated dexdump from Dalvik (libdex) into Art (libart)

Rationale:
The new dexdump (temporarily called dexdump2 until we are
satisfied with the migration) is a re-implementation of the
original dexdump utility that was based on Dalvik functions
in libdex into a new dexdump that is now based on Art functions
in libart instead.

The output is identical to the original for *correct* DEX files.
Output in error messages and the usage() may differ, however,
since the new utility relies on Art parsing and verification.

NOTE 1:
ODEX files are no longer supported.

NOTE 2:
Where possible, I kept the file as close to the original
as possible, including some archaic C idioms on memory
allocation; those can be improved over time.

NOTE 3:
I used the standard Android.mk format for the new dexdump,
but this probably needs to be Art-i-fied.

NOTE 4:
Some minor issues that need resolution are marked with a TODO.

Bug: 17442393
Change-Id: I753743f64afcf4b84b8d33efbd1cfcb7908f0c3e

9 years agoMerge "Revert "Revert "Fix LSRA bug with explicit register temporaries"""
Nicolas Geoffray [Mon, 6 Jul 2015 15:28:24 +0000 (15:28 +0000)]
Merge "Revert "Revert "Fix LSRA bug with explicit register temporaries"""

9 years agoMerge "ART: Check switch and array data better in the verifier"
Andreas Gampe [Mon, 6 Jul 2015 15:25:27 +0000 (15:25 +0000)]
Merge "ART: Check switch and array data better in the verifier"

9 years agoART: Check switch and array data better in the verifier
Andreas Gampe [Thu, 2 Jul 2015 05:05:59 +0000 (22:05 -0700)]
ART: Check switch and array data better in the verifier

Incorrect padding (or just malformed code) can lead to pseudo
instructions for data payload not being correctly discoverable in
a linear scan. This is problematic for the optimizing compiler,
which uses such a scan to build its graph.

Use the opcode flag in the insn_flags_ to ensure that a pseudo
instruction referenced from a base instruction was actually
correctly discovered. This does not ensure the letter of the dex
specification for now, which calls for nops for padding. However,
it is unclear what the difference between unreachable code and
padding is.

Bug: 22237618
Bug: https://code.google.com/p/android/issues/detail?id=178522
Change-Id: I823b3f541f326e6e77b15f3e13a7608a39d4b1fb

9 years agoMerge "ART: Unlink old file in OS::CreateEmptyFile"
Andreas Gampe [Mon, 6 Jul 2015 15:21:45 +0000 (15:21 +0000)]
Merge "ART: Unlink old file in OS::CreateEmptyFile"

9 years agoMerge "Revert "ART: Unlink target oat file before compiling""
Andreas Gampe [Mon, 6 Jul 2015 15:21:35 +0000 (15:21 +0000)]
Merge "Revert "ART: Unlink target oat file before compiling""

9 years agoRevert "Revert "Fix LSRA bug with explicit register temporaries""
Nicolas Geoffray [Mon, 6 Jul 2015 15:12:53 +0000 (15:12 +0000)]
Revert "Revert "Fix LSRA bug with explicit register temporaries""

This reverts commit a5fc140ff315dda9bc0a8e59963ed547676cd941.

Change-Id: Ic322484176e55d0c7cd7250d629b9e5046006a4f

9 years agoMerge "Revert "Fix LSRA bug with explicit register temporaries""
Calin Juravle [Mon, 6 Jul 2015 15:10:41 +0000 (15:10 +0000)]
Merge "Revert "Fix LSRA bug with explicit register temporaries""

9 years agoRevert "Fix LSRA bug with explicit register temporaries"
Calin Juravle [Mon, 6 Jul 2015 15:09:54 +0000 (15:09 +0000)]
Revert "Fix LSRA bug with explicit register temporaries"

register_allocator_test32 fails.

This reverts commit 283b8541546e7673d33d104241623d07c91cf500.

Change-Id: I2a46f3c68de3e8273e402102065c13797045c481

9 years agoMerge "Fix LSRA bug with explicit register temporaries"
Nicolas Geoffray [Mon, 6 Jul 2015 13:51:54 +0000 (13:51 +0000)]
Merge "Fix LSRA bug with explicit register temporaries"

9 years agoFix LSRA bug with explicit register temporaries
Mark Mendell [Fri, 3 Jul 2015 12:26:41 +0000 (08:26 -0400)]
Fix LSRA bug with explicit register temporaries

A temporary with an explicit RegisterLocation, such as ESI on x86 didn't
have the register marked as allocated.  This caused it to not be
saved/restored in the prologue/epilogue, causing problems in the caller
routine, which expected it to be saved.  Found while implementing
https://android-review.googlesource.com/#/c/157522/.

Change-Id: I22ca2b24c2d21b1c6ab6cfb7dec26cb38034a891
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoMerge "ART: Fix graph for switch leaving a try block"
David Brazdil [Mon, 6 Jul 2015 09:29:27 +0000 (09:29 +0000)]
Merge "ART: Fix graph for switch leaving a try block"

9 years agoART: Fix graph for switch leaving a try block
David Brazdil [Fri, 3 Jul 2015 09:34:57 +0000 (10:34 +0100)]
ART: Fix graph for switch leaving a try block

Blocks that GraphBuilder creates for switch-case logic are given
a dex_pc of the branch targets they serve, while in fact they should
be considered part of the switch instruction itself and get its pc.
This caused the try/catch algorithm to either miss try boundaries or
create bogus edges.

This patch fixed the dex_pc of the switch-case blocks and modifies
the try/catch logic to iterate over all blocks as opposed to just
branch targets since multiple blocks can now cover the same dex_pc.

Change-Id: I30fe4f8db0647b869979197a3bc847cf212a7315

9 years agoMerge "Supress OsTest#test_xattr on the bots."
Narayan Kamath [Mon, 6 Jul 2015 08:49:50 +0000 (08:49 +0000)]
Merge "Supress OsTest#test_xattr on the bots."

9 years agoSupress OsTest#test_xattr on the bots.
Narayan Kamath [Fri, 3 Jul 2015 12:20:51 +0000 (13:20 +0100)]
Supress OsTest#test_xattr on the bots.

bug: 22258911
Change-Id: Iba57eb8660e0f46e2b152ca05f49f64a233e0f44

9 years agoMerge "Add implicit null pointer and stack overflow checks for Mips."
Roland Levillain [Fri, 3 Jul 2015 16:18:00 +0000 (16:18 +0000)]
Merge "Add implicit null pointer and stack overflow checks for Mips."

9 years agoAdd implicit null pointer and stack overflow checks for Mips.
Douglas Leung [Thu, 2 Jul 2015 23:42:08 +0000 (16:42 -0700)]
Add implicit null pointer and stack overflow checks for Mips.

Bug: 21555893
Change-Id: I2a995be128a5603d08753c14956dd8c8240ac63c

9 years agoMerge "Disable static builds for mac and asan."
Calin Juravle [Thu, 2 Jul 2015 17:23:56 +0000 (17:23 +0000)]
Merge "Disable static builds for mac and asan."

9 years agoDisable static builds for mac and asan.
Calin Juravle [Thu, 2 Jul 2015 17:21:14 +0000 (18:21 +0100)]
Disable static builds for mac and asan.

- asan doesn't support static linkage
- we don't need a static build of dex2oat for mac

Change-Id: I7eddd19f1f47e8b2a67ecc0aaf40cb70941febdd

9 years agoMerge "Do not create a HBoundType when the instruction is non-null."
Nicolas Geoffray [Thu, 2 Jul 2015 17:01:02 +0000 (17:01 +0000)]
Merge "Do not create a HBoundType when the instruction is non-null."

9 years agoDo not create a HBoundType when the instruction is non-null.
Nicolas Geoffray [Thu, 2 Jul 2015 14:48:27 +0000 (15:48 +0100)]
Do not create a HBoundType when the instruction is non-null.

We don't need to refine the type after a null check, if the
instruction is known non null or null. As a side effect, this
avoids replacing HLoadClass instructions with HBoundType instructions.

bug:22116987

(cherry picked from commit 3abd437507f8ba30a238a52c273c9944dcb9d5a1)

Change-Id: I5e56de293554534195ade9770b7d1e4b078d685b

9 years agoMerge "Fix mac build: use -lrt only on linux."
Calin Juravle [Thu, 2 Jul 2015 12:52:48 +0000 (12:52 +0000)]
Merge "Fix mac build: use -lrt only on linux."

9 years agoFix mac build: use -lrt only on linux.
Calin Juravle [Thu, 2 Jul 2015 12:48:37 +0000 (13:48 +0100)]
Fix mac build: use -lrt only on linux.

Change-Id: I25e6058d9003fa52ef3c8bd153c2108712ce7f96

9 years agoMerge "Enable ART_BUILD_HOST_STATIC for check builds."
Calin Juravle [Thu, 2 Jul 2015 11:02:38 +0000 (11:02 +0000)]
Merge "Enable ART_BUILD_HOST_STATIC for check builds."

9 years agoEnable ART_BUILD_HOST_STATIC for check builds.
Calin Juravle [Thu, 2 Jul 2015 10:51:22 +0000 (11:51 +0100)]
Enable ART_BUILD_HOST_STATIC for check builds.

Change-Id: Id888c3b0c544ea6a85799f2264b13f1d035fc754

9 years agoMerge "Build statically linked version of dex2oat."
Calin Juravle [Thu, 2 Jul 2015 10:30:06 +0000 (10:30 +0000)]
Merge "Build statically linked version of dex2oat."

9 years agoMerge "Allow for sig chain to be disabled."
Calin Juravle [Thu, 2 Jul 2015 10:29:48 +0000 (10:29 +0000)]
Merge "Allow for sig chain to be disabled."

9 years agoMerge "Implement heap poisoning in ART's Optimizing compiler."
Roland Levillain [Thu, 2 Jul 2015 08:44:21 +0000 (08:44 +0000)]
Merge "Implement heap poisoning in ART's Optimizing compiler."

9 years agoMerge "Added index type of dex byte instructions."
Andreas Gampe [Wed, 1 Jul 2015 20:27:06 +0000 (20:27 +0000)]
Merge "Added index type of dex byte instructions."

9 years agoImplement heap poisoning in ART's Optimizing compiler.
Roland Levillain [Wed, 1 Jul 2015 14:41:14 +0000 (15:41 +0100)]
Implement heap poisoning in ART's Optimizing compiler.

- Instrument ARM, ARM64, x86 and x86-64 code generators.
- Note: To turn heap poisoning on in Optimizing, set the
  environment variable `ART_HEAP_POISONING' to "true"
  before compiling ART.

Bug: 12687968
Change-Id: Ib3120b38cf805a8a50207a314b9ccc90c8d93740

9 years agoMerge "Don't print signatures to avoid spaces."
Nicolas Geoffray [Wed, 1 Jul 2015 15:20:35 +0000 (15:20 +0000)]
Merge "Don't print signatures to avoid spaces."

9 years agoMerge "Address additional comments on try-catch CL"
David Brazdil [Wed, 1 Jul 2015 15:16:14 +0000 (15:16 +0000)]
Merge "Address additional comments on try-catch CL"

9 years agoDon't print signatures to avoid spaces.
Nicolas Geoffray [Wed, 1 Jul 2015 15:10:44 +0000 (16:10 +0100)]
Don't print signatures to avoid spaces.

Change-Id: I64340fbd08282acb0eb4142d17d37e69bba507cf

9 years agoAddress additional comments on try-catch CL
David Brazdil [Wed, 1 Jul 2015 14:28:26 +0000 (15:28 +0100)]
Address additional comments on try-catch CL

Extra documentation of try-catch building.

Change-Id: I5048c5fcb354c76fa4a60c3d8d21dd216bc9f6cd

9 years agoMerge "ART: Changes to try-catch in GraphBuilder"
David Brazdil [Wed, 1 Jul 2015 13:54:32 +0000 (13:54 +0000)]
Merge "ART: Changes to try-catch in GraphBuilder"

9 years agoART: Changes to try-catch in GraphBuilder
David Brazdil [Tue, 30 Jun 2015 14:41:36 +0000 (15:41 +0100)]
ART: Changes to try-catch in GraphBuilder

This patch adds an additional case into the insertion algorithm for
HTryBoundary inside HGraphBuilder in order to better handle catch
blocks covered by a TryItem.

Building SSA form also required to stop combining HTryBoundaries for
neighbouring TryItems because it was not clear which exception
handlers belong to which try block.

Change-Id: Ic68bd6ef98fee784609fa593cb08dca1f00a15e0

9 years agoMerge "Do not do a type check when setting null to an array."
Nicolas Geoffray [Wed, 1 Jul 2015 13:00:46 +0000 (13:00 +0000)]
Merge "Do not do a type check when setting null to an array."

9 years agoDo not do a type check when setting null to an array.
Nicolas Geoffray [Wed, 1 Jul 2015 11:56:46 +0000 (12:56 +0100)]
Do not do a type check when setting null to an array.

Change-Id: I7387d45aea697d4a3de273335647220a815a992b

9 years agoMerge "Emit method name at invokes in the graph visualizer."
Nicolas Geoffray [Wed, 1 Jul 2015 12:50:28 +0000 (12:50 +0000)]
Merge "Emit method name at invokes in the graph visualizer."

9 years agoBuild statically linked version of dex2oat.
Calin Juravle [Mon, 8 Jun 2015 09:35:24 +0000 (10:35 +0100)]
Build statically linked version of dex2oat.

Change-Id: Icde39b770781095af7bd87ae6b907ad97a8a05da

9 years agoMerge "Properly delete temp files during run-test"
Sebastien Hertz [Wed, 1 Jul 2015 12:14:44 +0000 (12:14 +0000)]
Merge "Properly delete temp files during run-test"

9 years agoEmit method name at invokes in the graph visualizer.
Nicolas Geoffray [Wed, 1 Jul 2015 12:00:15 +0000 (13:00 +0100)]
Emit method name at invokes in the graph visualizer.

Change-Id: I832f823463569724fca9c38cd70d9dd552f15b3a

9 years agoMerge "Fix a MOV instruction in Optimizing's x86-64 code generator."
Roland Levillain [Wed, 1 Jul 2015 11:58:21 +0000 (11:58 +0000)]
Merge "Fix a MOV instruction in Optimizing's x86-64 code generator."

9 years agoFix a MOV instruction in Optimizing's x86-64 code generator.
Roland Levillain [Wed, 1 Jul 2015 11:47:25 +0000 (12:47 +0100)]
Fix a MOV instruction in Optimizing's x86-64 code generator.

Use `movl' instead of `movw' to store a 32-bit immediate
(integer or reference) into a field.

Also fix art::Location::RegisterOrInt32LongConstant to
properly handle non-long constants.

Change-Id: I34c6ec8eaa1632822a31969f87c9c2d6c5b96326

9 years agoMerge "Use CompareAndBranchIf(Non)Zero when applicable."
Nicolas Geoffray [Wed, 1 Jul 2015 11:46:48 +0000 (11:46 +0000)]
Merge "Use CompareAndBranchIf(Non)Zero when applicable."

9 years agoUse CompareAndBranchIf(Non)Zero when applicable.
Nicolas Geoffray [Wed, 1 Jul 2015 11:22:56 +0000 (12:22 +0100)]
Use CompareAndBranchIf(Non)Zero when applicable.

Now that we relocate branches, we can try make more use of cbz/cbnz.

Change-Id: I93ca64107f34eb3c43f2e7102ea90453113dad7a

9 years agoAllow for sig chain to be disabled.
Calin Juravle [Fri, 19 Jun 2015 21:05:39 +0000 (22:05 +0100)]
Allow for sig chain to be disabled.

Tools like dex2oat or patchoat don't need the sig chain or the fault
manager. This also enables building a statically link version of
dex2oat.

Change-Id: I9897728cac48acade854bb027bfde860628ebf84

9 years agoMerge "Quick: Fix a DCHECK to take type conflicts into account."
Andreas Gampe [Wed, 1 Jul 2015 05:17:24 +0000 (05:17 +0000)]
Merge "Quick: Fix a DCHECK to take type conflicts into account."

9 years agoMerge "ART: Symbolize all oat files in /data folder."
Andreas Gampe [Wed, 1 Jul 2015 05:06:20 +0000 (05:06 +0000)]
Merge "ART: Symbolize all oat files in /data folder."

9 years agoART: Symbolize all oat files in /data folder.
Zheng Xu [Tue, 21 Apr 2015 09:35:25 +0000 (17:35 +0800)]
ART: Symbolize all oat files in /data folder.

Now we store oat files not only in /data/dalvik-cache, but also in
other places. This patch tries to pull all oat files from device
/data folder.

Change-Id: Icf81cf28c29da2e248e4fbd84f5920f46ddc4cd6

9 years agoMerge "Explicitly link libz-host to libart."
Evgenii Stepanov [Tue, 30 Jun 2015 22:19:13 +0000 (22:19 +0000)]
Merge "Explicitly link libz-host to libart."

9 years agoMerge "ART: Remove bad FindSymbol call"
Andreas Gampe [Tue, 30 Jun 2015 21:10:50 +0000 (21:10 +0000)]
Merge "ART: Remove bad FindSymbol call"

9 years agoART: Remove bad FindSymbol call
Andreas Gampe [Tue, 30 Jun 2015 18:23:44 +0000 (11:23 -0700)]
ART: Remove bad FindSymbol call

The removed call is superfluous under normal operation and harmful
when running a native-bridged library.

Bug: 22194296
Bug: https://code.google.com/p/android-developer-preview/issues/detail?id=2367
Change-Id: I3eb8f435a6a974a3e87a370b254ba8752f2a59b3

9 years agoART: Unlink old file in OS::CreateEmptyFile
Andreas Gampe [Tue, 30 Jun 2015 17:52:46 +0000 (10:52 -0700)]
ART: Unlink old file in OS::CreateEmptyFile

Update the documentation to make clear that a new file is expected
to be returned. A potentially existing file will not be reused
(and cleared).

Bug: 22047255
Change-Id: I0eb8601c7696d6f7b81547abcc06ff605826dc26

9 years agoRevert "ART: Unlink target oat file before compiling"
Andreas Gampe [Tue, 30 Jun 2015 17:47:40 +0000 (10:47 -0700)]
Revert "ART: Unlink target oat file before compiling"

Change to the old code before changing CreateEmptyFile.

This reverts commit 4591ae27de90988fbcb9af0c942e633f97ab454e.

Bug: 22047255

9 years agoMerge "ART: Unlink target oat file before compiling"
Andreas Gampe [Tue, 30 Jun 2015 17:44:01 +0000 (17:44 +0000)]
Merge "ART: Unlink target oat file before compiling"

9 years agoMerge "Change ART_TEST_GC_STRESS to use new gcstress mode"
Andreas Gampe [Tue, 30 Jun 2015 17:42:23 +0000 (17:42 +0000)]
Merge "Change ART_TEST_GC_STRESS to use new gcstress mode"

9 years agoChange ART_TEST_GC_STRESS to use new gcstress mode
Mathieu Chartier [Sat, 27 Jun 2015 22:42:27 +0000 (15:42 -0700)]
Change ART_TEST_GC_STRESS to use new gcstress mode

Enable new gcstress mode that checks at each allocation site
(with some tracking of stack traces to only do one check per
unique site).

Disable 137-cfi for gcstress, as it's sleeping to "synchronize"
with a forked process, which doesn't work with the slower mode.

Bug: 22014525
Change-Id: Ife70308e45b04f5d97267b4d98f8c75fa96492a1

9 years agoMerge "ART: Fix test 036-finalizer"
Andreas Gampe [Tue, 30 Jun 2015 17:37:26 +0000 (17:37 +0000)]
Merge "ART: Fix test 036-finalizer"

9 years agoART: Fix test 036-finalizer
Mathieu Chartier [Sat, 27 Jun 2015 22:42:27 +0000 (15:42 -0700)]
ART: Fix test 036-finalizer

Need to fix bug in test 036 where some allocation sites could cause
GC to run which caused the test to fail due to a weak reference
getting cleared. This change is required for the new GCSTRESS mode.

Bug: 22014525
Change-Id: I8099d2f03bc2f14f4ca6d49133f0d17d8aa49a7b

9 years agoART: Unlink target oat file before compiling
Andreas Gampe [Sat, 27 Jun 2015 01:58:42 +0000 (18:58 -0700)]
ART: Unlink target oat file before compiling

Dex2oat must create a new file (new inode) when writing to a target
given by name, as the existing file may be in use. So unlink any
existing file first.

Bug: 22047255

(cherry picked from commit 52f0aeb8e9f16fa5c3067f6a36be701354448924)

Change-Id: Ief942c71564076e39c1e8340d5c4c55286f75896

9 years agoMerge "Make compiler-related gtests honor ART_USE_OPTIMIZING_COMPILER."
Roland Levillain [Tue, 30 Jun 2015 15:05:03 +0000 (15:05 +0000)]
Merge "Make compiler-related gtests honor ART_USE_OPTIMIZING_COMPILER."

9 years agoMake compiler-related gtests honor ART_USE_OPTIMIZING_COMPILER.
Roland Levillain [Tue, 30 Jun 2015 13:16:48 +0000 (14:16 +0100)]
Make compiler-related gtests honor ART_USE_OPTIMIZING_COMPILER.

Previously, gtests using the art::CommonCompilerTest
class were using Quick as compiler.  Now, setting the
environment variable ART_USE_OPTIMIZING_COMPILER to `true`
before building and running these tests will use Optimizing
instead.

Change-Id: I724a3215d2eb1841089745fbabb5cb58b0422ef3

9 years agoProperly delete temp files during run-test
Sebastien Hertz [Tue, 30 Jun 2015 11:57:39 +0000 (13:57 +0200)]
Properly delete temp files during run-test

Bug: 22190679
Change-Id: Ic5cb98d296df924d9ee724c757c526ad70744612

9 years agoExplicitly link libz-host to libart.
Evgenii Stepanov [Mon, 29 Jun 2015 23:23:34 +0000 (16:23 -0700)]
Explicitly link libz-host to libart.

A change in system/core/libziparchive will make libziparchive-host
depend on libz-host as a shared library instead of a static library.
As a result, only on MacOS, libziparchive-host will stop re-exporting
libz-host interface. Libart uses both and must link both.

Change-Id: Ie4ae9b27903cbcbdb2d2043969a7fceba32249be

9 years agoAdded index type of dex byte instructions.
Aart Bik [Mon, 29 Jun 2015 18:03:55 +0000 (11:03 -0700)]
Added index type of dex byte instructions.

Rationale:
The information was already in the instruction_list but not
exposed as enum through a getter. This CL adds that ability.
This information is needed by the upcoming Art-based dexdump.

NOTE:
Added "Index" to the enum constants naming convention.

NOTE:
Fixed few incorrect quickened entries in instruction_list.

Bug: 17442393

Change-Id: Ica18ae43135f78f29e9832f5a101d497e54724cf

9 years agoMerge "ART: Fix CFI annotation for art_quick_aput_obj"
Andreas Gampe [Mon, 29 Jun 2015 21:01:14 +0000 (21:01 +0000)]
Merge "ART: Fix CFI annotation for art_quick_aput_obj"

9 years agoMerge "Rename ZipEntryName to ZipString"
Yusuke Sato [Mon, 29 Jun 2015 17:49:28 +0000 (17:49 +0000)]
Merge "Rename ZipEntryName to ZipString"

9 years agoART: Fix CFI annotation for art_quick_aput_obj
Mathieu Chartier [Sat, 27 Jun 2015 22:42:27 +0000 (15:42 -0700)]
ART: Fix CFI annotation for art_quick_aput_obj

Fix the CFI state after an early return.

Bug: 22014525
Change-Id: I56b9ba8cf8c47d70a642f064e59c7e04a476dd2f

9 years agoMerge "Do not replace a live phi with a dead phi."
Nicolas Geoffray [Mon, 29 Jun 2015 14:03:00 +0000 (14:03 +0000)]
Merge "Do not replace a live phi with a dead phi."

9 years agoDo not replace a live phi with a dead phi.
Nicolas Geoffray [Mon, 29 Jun 2015 13:34:46 +0000 (14:34 +0100)]
Do not replace a live phi with a dead phi.

A dead phi is not properly typed. Therefore, always use the live phi
equivalent instead.

bug:21865466
Change-Id: Id5e26ae4062cc18f5532d5b95cc024480652d5b2

9 years agoMerge "Revert "Revert "Do not update the type of something we already know."""
Nicolas Geoffray [Mon, 29 Jun 2015 13:04:19 +0000 (13:04 +0000)]
Merge "Revert "Revert "Do not update the type of something we already know."""

9 years agoRevert "Revert "Do not update the type of something we already know.""
Nicolas Geoffray [Mon, 29 Jun 2015 12:43:54 +0000 (13:43 +0100)]
Revert "Revert "Do not update the type of something we already know.""

This reverts commit 63107a804ce17db9789051e1fe310d99d1dae1cb.

bug:22116987
Change-Id: I49a376a5bd2073a69babe122ec0d26e5d2f82461

9 years agoMerge "Revert "Do not update the type of something we already know.""
Calin Juravle [Mon, 29 Jun 2015 11:43:39 +0000 (11:43 +0000)]
Merge "Revert "Do not update the type of something we already know.""

9 years agoRevert "Do not update the type of something we already know."
Calin Juravle [Mon, 29 Jun 2015 11:43:16 +0000 (11:43 +0000)]
Revert "Do not update the type of something we already know."

This reverts commit 30eb58c548bee08468f68eb140a74a51dd7d9b43.

Change-Id: Icd959e868160fc3ee7031dd2927554ac5b21d40f

9 years agoMerge "Do not update the type of something we already know."
Nicolas Geoffray [Mon, 29 Jun 2015 11:03:34 +0000 (11:03 +0000)]
Merge "Do not update the type of something we already know."

9 years agoDo not update the type of something we already know.
Nicolas Geoffray [Mon, 29 Jun 2015 09:56:34 +0000 (10:56 +0100)]
Do not update the type of something we already know.

This is both an optimization to avoid unneeded nodes,
and correctness to avoid replacing the second input
of `HInstanceOf` and `HCheckCast` to something that is
not `HLoadClass`.

bug:22116987

Change-Id: I4907197a9002883d7cae8265a9642512b6201396

9 years agoMerge "Exercise sun.misc.Unsafe.compareAndSwapObject."
Roland Levillain [Mon, 29 Jun 2015 08:17:39 +0000 (08:17 +0000)]
Merge "Exercise sun.misc.Unsafe.compareAndSwapObject."

9 years agoMerge "Quick: Disable GVN, DCE and LVN for type conflicts."
Bill Buzbee [Sat, 27 Jun 2015 14:06:42 +0000 (14:06 +0000)]
Merge "Quick: Disable GVN, DCE and LVN for type conflicts."

9 years agoQuick: Fix a DCHECK to take type conflicts into account.
Vladimir Marko [Sat, 27 Jun 2015 12:44:06 +0000 (13:44 +0100)]
Quick: Fix a DCHECK to take type conflicts into account.

Bug: 21865466
Change-Id: I010c7058b5a58bea1ec61af5bd6a12c2eb8de1b4

9 years agoQuick: Disable GVN, DCE and LVN for type conflicts.
Vladimir Marko [Sat, 27 Jun 2015 12:32:11 +0000 (13:32 +0100)]
Quick: Disable GVN, DCE and LVN for type conflicts.

Bug: 22136903
Change-Id: I657d4b5e623696e1264c2c6c9ad4e7fd466d759c

9 years agoMerge "Fixed a nullptr bug in SweepAllocationRecords()"
Mathieu Chartier [Sat, 27 Jun 2015 03:08:44 +0000 (03:08 +0000)]
Merge "Fixed a nullptr bug in SweepAllocationRecords()"

9 years agoMerge "ART: Fix CFI annotation in arm64, x86 and x86-64 assembly"
Andreas Gampe [Sat, 27 Jun 2015 02:56:44 +0000 (02:56 +0000)]
Merge "ART: Fix CFI annotation in arm64, x86 and x86-64 assembly"

9 years agoFixed a nullptr bug in SweepAllocationRecords()
Man Cao [Sat, 27 Jun 2015 02:54:41 +0000 (19:54 -0700)]
Fixed a nullptr bug in SweepAllocationRecords()

nullptr shouldn't be passed to IsMarkedCallBack functions.

Change-Id: Idfa3c0096b5ed0914fd0dd034ebc2176861f84eb

9 years agoART: Fix CFI annotation in arm64, x86 and x86-64 assembly
Andreas Gampe [Sat, 27 Jun 2015 02:49:24 +0000 (19:49 -0700)]
ART: Fix CFI annotation in arm64, x86 and x86-64 assembly

To be able to unroll in the exception case, the state needs to be
reset to before the jump.

Bug: 22014525
Change-Id: Ic60400b5bf0efcb713c24df1728623d072f344ab

9 years agoMerge "ART: Fix invalid access and DCHECK in verifier"
Andreas Gampe [Sat, 27 Jun 2015 01:04:07 +0000 (01:04 +0000)]
Merge "ART: Fix invalid access and DCHECK in verifier"

9 years agoART: Fix invalid access and DCHECK in verifier
Andreas Gampe [Sat, 27 Jun 2015 00:33:47 +0000 (17:33 -0700)]
ART: Fix invalid access and DCHECK in verifier

If we get a throwing failure when setting types from the signature,
the work instruction index is still invalid. Do not try to copy the
line then.

As a throwing failure might happen in the above instance, but the
flow analysis expects to have a cleared failure flag before processing
each instruction, clear the flag.

Bug: 21645819
Bug: 22080519

(cherry picked from commit 3ae8da0a803370be9dd410226438f636af553e22)

Change-Id: I224c4dad98fa5bb50e62210f0ee30c0dd020e3a6

9 years agoMerge "ART: Fix streaming tracing issues"
Andreas Gampe [Fri, 26 Jun 2015 21:25:19 +0000 (21:25 +0000)]
Merge "ART: Fix streaming tracing issues"

9 years agoART: Fix streaming tracing issues
Andreas Gampe [Tue, 23 Jun 2015 05:53:45 +0000 (22:53 -0700)]
ART: Fix streaming tracing issues

Fix a lock ordering issue in streaming-mode tracing.

Fix a moving-GC issue in streaming-mode tracing. DexCache
objects are not good keys for a map.

Expose streaming mode for testing in run-tests.

Bug: 21760614

(cherry picked from commit b91205e40fe692061edde19ecb87d51414a7fcee)

Change-Id: Idcd0575684ee3cc0cec3f81b4fdd0d5988c11e8c

9 years agoMerge "Require mutator lock for DeleteLocalRef"
Mathieu Chartier [Fri, 26 Jun 2015 20:08:26 +0000 (20:08 +0000)]
Merge "Require mutator lock for DeleteLocalRef"

9 years agoRequire mutator lock for DeleteLocalRef
Mathieu Chartier [Fri, 26 Jun 2015 17:47:08 +0000 (10:47 -0700)]
Require mutator lock for DeleteLocalRef

There was a race condition where suspended threads could call
DeleteLocalRef while the GC was marking their roots. This could
cause the GC to attempt to mark a null object.

Bug: 22119403

Change-Id: I962c717bb87b2acb2a4710a2d7ab16793e031401

9 years agoMerge "ART: Ignore repeated field indexes when loading a class."
Vladimir Marko [Fri, 26 Jun 2015 17:25:29 +0000 (17:25 +0000)]
Merge "ART: Ignore repeated field indexes when loading a class."

9 years agoMerge "Revert "Revert "ART: Implement try/catch blocks in Builder"""
David Brazdil [Fri, 26 Jun 2015 14:52:36 +0000 (14:52 +0000)]
Merge "Revert "Revert "ART: Implement try/catch blocks in Builder"""

9 years agoART: Ignore repeated field indexes when loading a class.
Vladimir Marko [Wed, 24 Jun 2015 13:28:03 +0000 (14:28 +0100)]
ART: Ignore repeated field indexes when loading a class.

This provides a deterministic behavior for classes with
duplicate field indexes in class_data_item and avoids
failures when verifying the field ordering in debug build.

Regression test not feasible without hand-edited dex file.
(Smali deduplicates field definitions.)

Bug: 21868015
Change-Id: I4f97ba005e063686f8f44248ed7f1286d987888a