OSDN Git Service

android-x86/art.git
9 years agoam 486728d8: Merge "Address small comments in HGraphBuilder"
David Brazdil [Wed, 8 Jul 2015 18:13:52 +0000 (18:13 +0000)]
am 486728d8: Merge "Address small comments in HGraphBuilder"

* commit '486728d82e5b36a5ff3d40d282d9c32f7305bc3a':
  Address small comments in HGraphBuilder

9 years agoam 4880fd56: Merge "Revert "Revert "ART: Ignore try blocks with no throwing instructi...
David Brazdil [Wed, 8 Jul 2015 18:13:51 +0000 (18:13 +0000)]
am 4880fd56: Merge "Revert "Revert "ART: Ignore try blocks with no throwing instructions"""

* commit '4880fd5695ea1726dde27bb448dae1338d0a0973':
  Revert "Revert "ART: Ignore try blocks with no throwing instructions""

9 years agoMerge "Address small comments in HGraphBuilder"
David Brazdil [Wed, 8 Jul 2015 18:02:56 +0000 (18:02 +0000)]
Merge "Address small comments in HGraphBuilder"

9 years agoAddress small comments in HGraphBuilder
David Brazdil [Wed, 8 Jul 2015 15:44:00 +0000 (16:44 +0100)]
Address small comments in HGraphBuilder

Change-Id: Ife0a19f6e07146c8e03922f1330527d092f5e236

9 years agoMerge "Revert "Revert "ART: Ignore try blocks with no throwing instructions"""
David Brazdil [Wed, 8 Jul 2015 18:00:22 +0000 (18:00 +0000)]
Merge "Revert "Revert "ART: Ignore try blocks with no throwing instructions"""

9 years agoam d9acfe21: Merge "Migrated dexlist from Dalvik (libdex) into Art (libart)"
Aart Bik [Wed, 8 Jul 2015 17:59:36 +0000 (17:59 +0000)]
am d9acfe21: Merge "Migrated dexlist from Dalvik (libdex) into Art (libart)"

* commit 'd9acfe21f6eb09a22db69958dfb05c1f48f779bd':
  Migrated dexlist from Dalvik (libdex) into Art (libart)

9 years agoMerge "Migrated dexlist from Dalvik (libdex) into Art (libart)"
Aart Bik [Wed, 8 Jul 2015 17:47:23 +0000 (17:47 +0000)]
Merge "Migrated dexlist from Dalvik (libdex) into Art (libart)"

9 years agoRevert "Revert "ART: Ignore try blocks with no throwing instructions""
David Brazdil [Wed, 8 Jul 2015 17:26:51 +0000 (17:26 +0000)]
Revert "Revert "ART: Ignore try blocks with no throwing instructions""

The original CL broke libcore tests because monitor-exit instructions
did not have any side-effects and got removed by DCE once not labelled
throwing any more.

This reverts commit efe374d7c25c1d48945a9198d96469de99e0c1bd.

Change-Id: I624c0f91676d9baaada6f33be9d7091f68d57535

9 years agoam 98bea9fd: Merge "Revert "ART: Ignore try blocks with no throwing instructions""
David Brazdil [Wed, 8 Jul 2015 17:07:21 +0000 (17:07 +0000)]
am 98bea9fd: Merge "Revert "ART: Ignore try blocks with no throwing instructions""

* commit '98bea9fdab2c5f964a95f9e76620b0b35c050a8a':
  Revert "ART: Ignore try blocks with no throwing instructions"

9 years agoMerge "Revert "ART: Ignore try blocks with no throwing instructions""
David Brazdil [Wed, 8 Jul 2015 16:58:19 +0000 (16:58 +0000)]
Merge "Revert "ART: Ignore try blocks with no throwing instructions""

9 years agoRevert "ART: Ignore try blocks with no throwing instructions"
David Brazdil [Wed, 8 Jul 2015 16:58:07 +0000 (16:58 +0000)]
Revert "ART: Ignore try blocks with no throwing instructions"

Turns out monitor-exit *can* throw... Need to investigate

This reverts commit 8f8ee680bec71a28d9d7b7538e8c7ca100a18184.

Change-Id: I8b42690918833c917b6a7fc3ceea932b7c1a6f15

9 years agoam 761f281e: Merge "Revert "Use the object class as top in reference type propagation""
Calin Juravle [Wed, 8 Jul 2015 16:05:52 +0000 (16:05 +0000)]
am 761f281e: Merge "Revert "Use the object class as top in reference type propagation""

* commit '761f281e6f78b1c48103cbd45385a5c410e2be07':
  Revert "Use the object class as top in reference type propagation"

9 years agoam c7d5ae36: Merge "ART: Release inputs in Long.reverse intrinsic in x86"
Andreas Gampe [Wed, 8 Jul 2015 16:05:49 +0000 (16:05 +0000)]
am c7d5ae36: Merge "ART: Release inputs in Long.reverse intrinsic in x86"

* commit 'c7d5ae363bc43ebba0f21c6ee4a2164dfbb209a9':
  ART: Release inputs in Long.reverse intrinsic in x86

9 years agoMerge "Revert "Use the object class as top in reference type propagation""
Calin Juravle [Wed, 8 Jul 2015 15:57:32 +0000 (15:57 +0000)]
Merge "Revert "Use the object class as top in reference type propagation""

9 years agoRevert "Use the object class as top in reference type propagation"
Calin Juravle [Wed, 8 Jul 2015 15:57:18 +0000 (15:57 +0000)]
Revert "Use the object class as top in reference type propagation"

failing on the build bot on some targets but not locally. needs more investigation.

This reverts commit 20e6071362b84a9782b633a893c29ebde458205e.

Change-Id: I6965483f569fb862f9bdb66d459b747ded54de71

9 years agoMerge "ART: Release inputs in Long.reverse intrinsic in x86"
Andreas Gampe [Wed, 8 Jul 2015 15:50:00 +0000 (15:50 +0000)]
Merge "ART: Release inputs in Long.reverse intrinsic in x86"

9 years agoART: Release inputs in Long.reverse intrinsic in x86
Andreas Gampe [Tue, 7 Jul 2015 20:25:58 +0000 (13:25 -0700)]
ART: Release inputs in Long.reverse intrinsic in x86

In the worst case we are using two temps each for input and output.
Then we do not have a temp left over for the swap operations. The
input is dead, however, after the first swap. So try to release it
(a no-op if it isn't actually a temp).

Bug: 22324327
Change-Id: I1fc50159afdad14160e34abeaf4670958171d6b2

9 years agoam 7d5e4d05: Merge "ART: Ignore try blocks with no throwing instructions"
David Brazdil [Wed, 8 Jul 2015 15:37:44 +0000 (15:37 +0000)]
am 7d5e4d05: Merge "ART: Ignore try blocks with no throwing instructions"

* commit '7d5e4d056d6b8f54b2a7b054136e53ecbf97d314':
  ART: Ignore try blocks with no throwing instructions

9 years agoMerge "ART: Ignore try blocks with no throwing instructions"
David Brazdil [Wed, 8 Jul 2015 15:23:53 +0000 (15:23 +0000)]
Merge "ART: Ignore try blocks with no throwing instructions"

9 years agoART: Ignore try blocks with no throwing instructions
David Brazdil [Wed, 8 Jul 2015 11:11:42 +0000 (12:11 +0100)]
ART: Ignore try blocks with no throwing instructions

In order to avoid complex removal of redundant exceptional edges in
the SSA builder, this patch modified the graph builder to consider
blocks without throwing instructions as not in a try block, even if
covered by a TryItem.

In some corner cases, this may generate more TryBoundaries than
necessary, but those can be removed once the SSA form is built.

Change-Id: I158c4542b2c1964a8dd532f82e921b9cb1997e1e

9 years agoam c7432f3b: Merge "Use the object class as top in reference type propagation"
Calin Juravle [Wed, 8 Jul 2015 15:08:45 +0000 (15:08 +0000)]
am c7432f3b: Merge "Use the object class as top in reference type propagation"

* commit 'c7432f3b8cd7dd6fd198fe5cf7238650921cb306':
  Use the object class as top in reference type propagation

9 years agoam c21dc873: Merge "Fix oatdump after ArtMethod change."
Nicolas Geoffray [Wed, 8 Jul 2015 15:08:44 +0000 (15:08 +0000)]
am c21dc873: Merge "Fix oatdump after ArtMethod change."

* commit 'c21dc873f5a6ce31d73299ee71805031ddb9b65a':
  Fix oatdump after ArtMethod change.

9 years agoMerge "Use the object class as top in reference type propagation"
Calin Juravle [Wed, 8 Jul 2015 15:00:00 +0000 (15:00 +0000)]
Merge "Use the object class as top in reference type propagation"

9 years agoMerge "Fix oatdump after ArtMethod change."
Nicolas Geoffray [Wed, 8 Jul 2015 14:59:35 +0000 (14:59 +0000)]
Merge "Fix oatdump after ArtMethod change."

9 years agoFix oatdump after ArtMethod change.
Nicolas Geoffray [Wed, 8 Jul 2015 14:55:28 +0000 (15:55 +0100)]
Fix oatdump after ArtMethod change.

ArtMethod is now word aligned, and not necessarily 8 byte aligned.

Change-Id: I8bd6b2f156d7f2ab191d6f2675b013713bbf258d

9 years agoam 30502f1f: Merge "Revert "Revert "Remove interpreter entrypoint in ArtMethod."""
Nicolas Geoffray [Wed, 8 Jul 2015 14:05:05 +0000 (14:05 +0000)]
am 30502f1f: Merge "Revert "Revert "Remove interpreter entrypoint in ArtMethod."""

* commit '30502f1fc8357bdaf11b70e6fc8f5311c6237194':
  Revert "Revert "Remove interpreter entrypoint in ArtMethod.""

9 years agoMerge "Revert "Revert "Remove interpreter entrypoint in ArtMethod."""
Nicolas Geoffray [Wed, 8 Jul 2015 13:52:41 +0000 (13:52 +0000)]
Merge "Revert "Revert "Remove interpreter entrypoint in ArtMethod."""

9 years agoRevert "Revert "Remove interpreter entrypoint in ArtMethod.""
Nicolas Geoffray [Wed, 8 Jul 2015 10:11:59 +0000 (10:11 +0000)]
Revert "Revert "Remove interpreter entrypoint in ArtMethod.""

The start of the interned strings in the image was not aligned
properly, now that ArtMethods just need to be word aligned.

This reverts commit 7070ccd8b6439477eafeea7ed3736645d78e003f.

bug:22242193

Change-Id: I580c23310c33c239fe0e5d15c72f23a936f58ed1

9 years agoUse the object class as top in reference type propagation
Calin Juravle [Wed, 1 Jul 2015 17:41:04 +0000 (18:41 +0100)]
Use the object class as top in reference type propagation

This properly types all instructions, making it safe to query the type
at any time.

Change-Id: I3ee2f0f79253cdf45b10ddab37ecb473345ca53a

9 years agoam a4e43032: Merge "Accept 0xFFFFFFFF as dex debug info offset."
David Srbecky [Wed, 8 Jul 2015 11:21:45 +0000 (11:21 +0000)]
am a4e43032: Merge "Accept 0xFFFFFFFF as dex debug info offset."

* commit 'a4e4303253a31aa2a03d25c48a6228d30286d579':
  Accept 0xFFFFFFFF as dex debug info offset.

9 years agoMerge "Accept 0xFFFFFFFF as dex debug info offset."
David Srbecky [Wed, 8 Jul 2015 11:08:32 +0000 (11:08 +0000)]
Merge "Accept 0xFFFFFFFF as dex debug info offset."

9 years agoam 3e18a895: Merge "Fuse long and FP compare & condition on x86/x86-64 in Optimizing."
Roland Levillain [Wed, 8 Jul 2015 10:48:52 +0000 (10:48 +0000)]
am 3e18a895: Merge "Fuse long and FP compare & condition on x86/x86-64 in Optimizing."

* commit '3e18a8958d2caa4980c4cee4e537313a61adf3d8':
  Fuse long and FP compare & condition on x86/x86-64 in Optimizing.

9 years agoMerge "Fuse long and FP compare & condition on x86/x86-64 in Optimizing."
Roland Levillain [Wed, 8 Jul 2015 10:36:47 +0000 (10:36 +0000)]
Merge "Fuse long and FP compare & condition on x86/x86-64 in Optimizing."

9 years agoam 569e81e5: Merge "Revert "Remove interpreter entrypoint in ArtMethod.""
Nicolas Geoffray [Wed, 8 Jul 2015 09:56:32 +0000 (09:56 +0000)]
am 569e81e5: Merge "Revert "Remove interpreter entrypoint in ArtMethod.""

* commit '569e81e500725f52116b7d0342ec80a6d1e0089b':
  Revert "Remove interpreter entrypoint in ArtMethod."

9 years agoam d5bd4fdd: Merge "Remove interpreter entrypoint in ArtMethod."
Nicolas Geoffray [Wed, 8 Jul 2015 09:56:31 +0000 (09:56 +0000)]
am d5bd4fdd: Merge "Remove interpreter entrypoint in ArtMethod."

* commit 'd5bd4fdd46dce3c33abf17376fbceadcc1aff547':
  Remove interpreter entrypoint in ArtMethod.

9 years agoMerge "Revert "Remove interpreter entrypoint in ArtMethod.""
Nicolas Geoffray [Wed, 8 Jul 2015 09:42:05 +0000 (09:42 +0000)]
Merge "Revert "Remove interpreter entrypoint in ArtMethod.""

9 years agoRevert "Remove interpreter entrypoint in ArtMethod."
Nicolas Geoffray [Wed, 8 Jul 2015 09:41:54 +0000 (09:41 +0000)]
Revert "Remove interpreter entrypoint in ArtMethod."

Build failures on bots. Investigating.

This reverts commit fa2c054b28d4b540c1b3651401a7a091282a015f.

Change-Id: Id65b2009aa66cb291fb8c39758a58e0b0d22616c

9 years agoMerge "Remove interpreter entrypoint in ArtMethod."
Nicolas Geoffray [Wed, 8 Jul 2015 08:56:49 +0000 (08:56 +0000)]
Merge "Remove interpreter entrypoint in ArtMethod."

9 years agoRemove interpreter entrypoint in ArtMethod.
Nicolas Geoffray [Wed, 1 Jul 2015 13:32:54 +0000 (14:32 +0100)]
Remove interpreter entrypoint in ArtMethod.

Saves 4/8 bytes for each ArtMethod.

Change-Id: I110ecdddf8516b0759a31fa157609643e6d60b15

9 years agoMigrated dexlist from Dalvik (libdex) into Art (libart)
Aart Bik [Wed, 8 Jul 2015 00:09:41 +0000 (17:09 -0700)]
Migrated dexlist from Dalvik (libdex) into Art (libart)

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

Bug: 22322814
Change-Id: I0f034d66c1a1f3c5450423f57fcdc23e2f5a1e29

9 years agoAccept 0xFFFFFFFF as dex debug info offset.
David Srbecky [Tue, 7 Jul 2015 18:13:29 +0000 (19:13 +0100)]
Accept 0xFFFFFFFF as dex debug info offset.

Bug: 22023362
Change-Id: I03e5c74f5ece4dbe1fab37d8b5f857582b04f57c

9 years agoam a100332e: Merge "Build rule for dexdump regression test on host."
Aart Bik [Tue, 7 Jul 2015 18:07:37 +0000 (18:07 +0000)]
am a100332e: Merge "Build rule for dexdump regression test on host."

* commit 'a100332ee0f4b842c28ec2448f97e40a882cd837':
  Build rule for dexdump regression test on host.

9 years agoMerge "Build rule for dexdump regression test on host."
Aart Bik [Tue, 7 Jul 2015 17:52:34 +0000 (17:52 +0000)]
Merge "Build rule for dexdump regression test on host."

9 years agoam 53ed3c5f: Merge "ART: Fix opsize in LoadArgDirect"
Andreas Gampe [Tue, 7 Jul 2015 17:02:48 +0000 (17:02 +0000)]
am 53ed3c5f: Merge "ART: Fix opsize in LoadArgDirect"

* commit '53ed3c5f71c983f01cd10a805255c1301438ab8c':
  ART: Fix opsize in LoadArgDirect

9 years agoMerge "ART: Fix opsize in LoadArgDirect"
Andreas Gampe [Tue, 7 Jul 2015 16:46:06 +0000 (16:46 +0000)]
Merge "ART: Fix opsize in LoadArgDirect"

9 years agoART: Fix opsize in LoadArgDirect
Andreas Gampe [Mon, 6 Jul 2015 21:00:39 +0000 (14:00 -0700)]
ART: Fix opsize in LoadArgDirect

If the destination register is a reference, use kReference for the
op size.

Bug: 22244733
Change-Id: Idf52f2ee4c65b5dc41cb66257d95281dc6f32255

9 years agoFuse long and FP compare & condition on x86/x86-64 in Optimizing.
Mark Mendell [Fri, 10 Apr 2015 17:18:51 +0000 (13:18 -0400)]
Fuse long and FP compare & condition on x86/x86-64 in Optimizing.

This is a preliminary implementation of fusing long/float/double
compares with conditions to avoid materializing the result from the
compare and condition.

The information from a HCompare is transferred to the HCondition if it
is legal.  There must be only a single use of the HCompare, the HCompare
and HCondition must be in the same block, the HCondition must not need
materialization.

Added GetOppositeCondition() to HCondition to return the flipped
condition.

Bug: 21120453
Change-Id: I1f1db206e6dc336270cd71070ed3232dedc754d6
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoam ee35ff80: Merge "Improve code generation for ARM64 VisitArrayGet/Set."
Nicolas Geoffray [Tue, 7 Jul 2015 11:00:45 +0000 (11:00 +0000)]
am ee35ff80: Merge "Improve code generation for ARM64 VisitArrayGet/Set."

* commit 'ee35ff809616324cbada38cbc0610eb09da09b35':
  Improve code generation for ARM64 VisitArrayGet/Set.

9 years agoMerge "Improve code generation for ARM64 VisitArrayGet/Set."
Nicolas Geoffray [Tue, 7 Jul 2015 10:48:12 +0000 (10:48 +0000)]
Merge "Improve code generation for ARM64 VisitArrayGet/Set."

9 years agoImprove code generation for ARM64 VisitArrayGet/Set.
Alexandre Rames [Tue, 7 Jul 2015 10:34:16 +0000 (11:34 +0100)]
Improve code generation for ARM64 VisitArrayGet/Set.

We prefer the code sequence
   add temp, obj, #offset
   ldr out, [temp, index LSL #shift_amount]
to
   add temp, obj, index LSL #shift_amount
   ldr out, [temp, #offset]

Change-Id: I98f51a1b5a5ecd84c677d6dbd4c4bfc0f157f5e2

9 years agoam 00dec6a9: Merge "Make dexdump2 compile for 64bit devices."
Nicolas Geoffray [Tue, 7 Jul 2015 10:00:59 +0000 (10:00 +0000)]
am 00dec6a9: Merge "Make dexdump2 compile for 64bit devices."

* commit '00dec6a9506364806227f21f6a053176a6723fe9':
  Make dexdump2 compile for 64bit devices.

9 years agoam 399426d9: Merge "Added next condition check to branch instruction"
Roland Levillain [Tue, 7 Jul 2015 10:00:58 +0000 (10:00 +0000)]
am 399426d9: Merge "Added next condition check to branch instruction"

* commit '399426d95de2fd4f317527319a72f4abfa4cc0a0':
  Added next condition check to branch instruction

9 years agoam 4e869c81: Merge "Make oatdump work with .art files and code generated by Optimizing."
Roland Levillain [Tue, 7 Jul 2015 10:00:56 +0000 (10:00 +0000)]
am 4e869c81: Merge "Make oatdump work with .art files and code generated by Optimizing."

* commit '4e869c818c44f9e65c9807ff5df4cd5de155d260':
  Make oatdump work with .art files and code generated by Optimizing.

9 years agoMerge "Make dexdump2 compile for 64bit devices."
Nicolas Geoffray [Tue, 7 Jul 2015 09:13:48 +0000 (09:13 +0000)]
Merge "Make dexdump2 compile for 64bit devices."

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 "Added next condition check to branch instruction"
Roland Levillain [Tue, 7 Jul 2015 09:09:06 +0000 (09:09 +0000)]
Merge "Added next condition check to branch instruction"

9 years agoMerge "Make oatdump work with .art files and code generated by Optimizing."
Roland Levillain [Tue, 7 Jul 2015 08:52:10 +0000 (08:52 +0000)]
Merge "Make oatdump work with .art files and code generated by Optimizing."

9 years agoBuild rule for dexdump regression test on host.
Aart Bik [Tue, 7 Jul 2015 00:45:30 +0000 (17:45 -0700)]
Build rule for dexdump regression test on host.

Bug: 17442393

Change-Id: I7795ba014e57080572769286cb3f8e3d4931e706

9 years agoam bb5965c8: Merge "Disable sanitization of dex2oat on device."
Evgenii Stepanov [Mon, 6 Jul 2015 23:38:43 +0000 (23:38 +0000)]
am bb5965c8: Merge "Disable sanitization of dex2oat on device."

* commit 'bb5965c8891c748a30120ff20e873bbfe2dbf5d5':
  Disable sanitization of dex2oat on device.

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 agoam 288b3001: Merge "List dependence of dexdump gtest on dexdump binary."
Aart Bik [Mon, 6 Jul 2015 22:44:38 +0000 (22:44 +0000)]
am 288b3001: Merge "List dependence of dexdump gtest on dexdump binary."

* commit '288b30015d136a81e5899439c398ca476e332006':
  List dependence of dexdump gtest on dexdump binary.

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 agoam e7ea17b7: Merge "Migrated dexdump from Dalvik (libdex) into Art (libart)"
Aart Bik [Mon, 6 Jul 2015 20:40:43 +0000 (20:40 +0000)]
am e7ea17b7: Merge "Migrated dexdump from Dalvik (libdex) into Art (libart)"

* commit 'e7ea17b726ab415a0dc98c0a3901497bbcf3a4c3':
  Migrated dexdump from Dalvik (libdex) into Art (libart)

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 agoam d4e2738f: Merge "Revert "Revert "Fix LSRA bug with explicit register temporaries"""
Nicolas Geoffray [Mon, 6 Jul 2015 15:35:05 +0000 (15:35 +0000)]
am d4e2738f: Merge "Revert "Revert "Fix LSRA bug with explicit register temporaries"""

* commit 'd4e2738fa7a062fee6beb88204c7420e64e5d9a6':
  Revert "Revert "Fix LSRA bug with explicit register temporaries""

9 years agoam 7fb6ddb8: Merge "ART: Check switch and array data better in the verifier"
Andreas Gampe [Mon, 6 Jul 2015 15:35:04 +0000 (15:35 +0000)]
am 7fb6ddb8: Merge "ART: Check switch and array data better in the verifier"

* commit '7fb6ddb874af342c5117559044f826ad1270e72b':
  ART: Check switch and array data better in the verifier

9 years agoam a3c31dfd: Merge "ART: Unlink old file in OS::CreateEmptyFile"
Andreas Gampe [Mon, 6 Jul 2015 15:35:03 +0000 (15:35 +0000)]
am a3c31dfd: Merge "ART: Unlink old file in OS::CreateEmptyFile"

* commit 'a3c31dfd721e54bd00fa7bfe218a69e5483a5a5d':
  ART: Unlink old file in OS::CreateEmptyFile

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

* commit 'd5c5ea39775276e38df8b5981a8423777254e098':
  Revert "ART: Unlink target oat file before compiling"

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 agoam f7aa6c05: Merge "Revert "Fix LSRA bug with explicit register temporaries""
Calin Juravle [Mon, 6 Jul 2015 15:21:13 +0000 (15:21 +0000)]
am f7aa6c05: Merge "Revert "Fix LSRA bug with explicit register temporaries""

* commit 'f7aa6c05a1c7d70182d43abaf3ff43b6d463eec0':
  Revert "Fix LSRA bug with explicit register temporaries"

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 agoam 16d6d0ef: Merge "Fix LSRA bug with explicit register temporaries"
Nicolas Geoffray [Mon, 6 Jul 2015 14:06:37 +0000 (14:06 +0000)]
am 16d6d0ef: Merge "Fix LSRA bug with explicit register temporaries"

* commit '16d6d0effdcdba70e97518be591f409dc8460a03':
  Fix LSRA bug with explicit register temporaries

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 agoam 51f38e3a: Merge "ART: Fix graph for switch leaving a try block"
David Brazdil [Mon, 6 Jul 2015 09:42:26 +0000 (09:42 +0000)]
am 51f38e3a: Merge "ART: Fix graph for switch leaving a try block"

* commit '51f38e3adf58ba4e35b5374fb8c4b87cb3112abd':
  ART: Fix graph for switch leaving a try block

9 years agoam b2409d91: Merge "Supress OsTest#test_xattr on the bots."
Narayan Kamath [Mon, 6 Jul 2015 09:42:23 +0000 (09:42 +0000)]
am b2409d91: Merge "Supress OsTest#test_xattr on the bots."

* commit 'b2409d91a2bb8d190712c009940659cea080cd65':
  Supress OsTest#test_xattr on the bots.

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 agoam 4a305daf: Merge "Add implicit null pointer and stack overflow checks for Mips."
Roland Levillain [Fri, 3 Jul 2015 16:27:30 +0000 (16:27 +0000)]
am 4a305daf: Merge "Add implicit null pointer and stack overflow checks for Mips."

* commit '4a305daf77a9b80d6abb7817a836aa59d2db521d':
  Add implicit null pointer and stack overflow checks for Mips.

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 agoam b447598f: Merge "Disable static builds for mac and asan."
Calin Juravle [Thu, 2 Jul 2015 17:33:01 +0000 (17:33 +0000)]
am b447598f: Merge "Disable static builds for mac and asan."

* commit 'b447598f6900f05f0b1940a0731ee374c57c3100':
  Disable static builds for mac and asan.

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 agoam aefdcd9a: Merge "Do not create a HBoundType when the instruction is non-null."
Nicolas Geoffray [Thu, 2 Jul 2015 17:08:41 +0000 (17:08 +0000)]
am aefdcd9a: Merge "Do not create a HBoundType when the instruction is non-null."

* commit 'aefdcd9a06bc436a0f0908230856d1054018cd93':
  Do not create a HBoundType when the instruction is non-null.

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 agoam 06b6da5c: Merge "Fix mac build: use -lrt only on linux."
Calin Juravle [Thu, 2 Jul 2015 13:04:13 +0000 (13:04 +0000)]
am 06b6da5c: Merge "Fix mac build: use -lrt only on linux."

* commit '06b6da5ccbf9246c697b8cf1be0ba58ce616521d':
  Fix mac build: use -lrt only on linux.

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."