OSDN Git Service

android-x86/art.git
9 years agoART: Fix issues with SplitBlock
Mathew Zaleski [Mon, 15 Sep 2014 13:44:14 +0000 (09:44 -0400)]
ART: Fix issues with SplitBlock

The SplitBlock is a public interface from MIRGraph to be able to create two
blocks from one. This interface can be called not just during the control
flow graph building phase, but later. At that later point, extended instructions
may have already been inserted.

For example, SpecialMethodInliner can insert kMirOpNullCheck and kMirOpNop,
and then another pass tries to split block that contains this. The DCHECK
will fail even though the split is semantically correct.

Signed-off-by: Mathew Zaleski <mathew.zaleski@intel.com>
Conflicts:

compiler/dex/mir_graph.cc

Change-Id: I8bb3551407907909cda444a3379da2eb9331b9ff

9 years agoMerge "Do not use kDiesAtEntry when inputs must be in specific reg."
Nicolas Geoffray [Tue, 7 Oct 2014 11:29:10 +0000 (11:29 +0000)]
Merge "Do not use kDiesAtEntry when inputs must be in specific reg."

9 years agoDo not use kDiesAtEntry when inputs must be in specific reg.
Nicolas Geoffray [Tue, 7 Oct 2014 11:24:52 +0000 (12:24 +0100)]
Do not use kDiesAtEntry when inputs must be in specific reg.

The way the register allocator blocks registers currently
does not handle these cases. Since it only applies to x86 for now,
just ensure such requests cannot happen.

Change-Id: Idfa25532b9b4996a192d05800f56c6e44edd3a8a

9 years agoMerge "Add a prepare for register allocation pass."
Nicolas Geoffray [Tue, 7 Oct 2014 10:20:01 +0000 (10:20 +0000)]
Merge "Add a prepare for register allocation pass."

9 years agoMerge "Make which dex2oat version to use configurable."
Nicolas Geoffray [Tue, 7 Oct 2014 09:38:37 +0000 (09:38 +0000)]
Merge "Make which dex2oat version to use configurable."

9 years agoMerge "Fix a merge error in cl 108991."
Hiroshi Yamauchi [Mon, 6 Oct 2014 22:06:33 +0000 (22:06 +0000)]
Merge "Fix a merge error in cl 108991."

9 years agoMerge "Add way to warn about missing JNI_ABORT"
Mathieu Chartier [Mon, 6 Oct 2014 21:46:26 +0000 (21:46 +0000)]
Merge "Add way to warn about missing JNI_ABORT"

9 years agoFix a merge error in cl 108991.
Hiroshi Yamauchi [Mon, 6 Oct 2014 21:24:36 +0000 (14:24 -0700)]
Fix a merge error in cl 108991.

Bug: 12687968
Change-Id: I37603c154b252321b59a5ea02c6a92f5a9300667

9 years agoAdd way to warn about missing JNI_ABORT
Mathieu Chartier [Mon, 6 Oct 2014 20:41:33 +0000 (13:41 -0700)]
Add way to warn about missing JNI_ABORT

Bug: 16858794
Change-Id: I6794a14ee323ef95569cc7646619e6869771c7c6

9 years agoMerge "Merge host-run-test-jar and push-and-run-test-jar."
Nicolas Geoffray [Mon, 6 Oct 2014 20:01:08 +0000 (20:01 +0000)]
Merge "Merge host-run-test-jar and push-and-run-test-jar."

9 years agoMerge host-run-test-jar and push-and-run-test-jar.
Nicolas Geoffray [Mon, 6 Oct 2014 11:23:04 +0000 (12:23 +0100)]
Merge host-run-test-jar and push-and-run-test-jar.

- Too many code duplication between the two files.
- Also fix --zygote and --gdb invocations.

Change-Id: I1f99320e63a7a0f19ad1ad2b12693901b8c6bb43

9 years agoMerge "Handlerize methods across some GC points."
Hiroshi Yamauchi [Mon, 6 Oct 2014 18:22:05 +0000 (18:22 +0000)]
Merge "Handlerize methods across some GC points."

9 years agoAdd a prepare for register allocation pass.
Nicolas Geoffray [Tue, 30 Sep 2014 12:54:09 +0000 (13:54 +0100)]
Add a prepare for register allocation pass.

- Currently the pass just changes the uses of checks to the
  actual values.
- Also optimize array access, now that inputs can be constants.
- And fix another bug in the register allocator reveiled by
  this change.

Change-Id: I43be0dbde9330ee5c8f9d678de11361292d8bd98

9 years agoHandlerize methods across some GC points.
Hiroshi Yamauchi [Mon, 6 Oct 2014 17:46:14 +0000 (10:46 -0700)]
Handlerize methods across some GC points.

Bug: 12687968
Change-Id: I0d5b0a78488ba76db4d25991d8db95b24bb624e9

9 years agoMerge "Add support for inputs dying at entry of instructions."
Nicolas Geoffray [Mon, 6 Oct 2014 15:37:52 +0000 (15:37 +0000)]
Merge "Add support for inputs dying at entry of instructions."

9 years agoAdd support for inputs dying at entry of instructions.
Nicolas Geoffray [Tue, 30 Sep 2014 21:40:23 +0000 (22:40 +0100)]
Add support for inputs dying at entry of instructions.

- Start using it in places where it makes sense.
- Also improve suspend check on arm to use subs directly.

Change-Id: I09ac0589f5ccb9b850ee757c76dcbcf35ee8cd01

9 years agoMake which dex2oat version to use configurable.
Nicolas Geoffray [Mon, 6 Oct 2014 13:55:06 +0000 (14:55 +0100)]
Make which dex2oat version to use configurable.

Change-Id: I86503a51538c0b48ad96e8624b81461c2ba3279a

9 years agoMerge "Respect USE_CLANG_PLATFORM_BUILD for art builds"
Brian Carlstrom [Sat, 4 Oct 2014 20:52:26 +0000 (20:52 +0000)]
Merge "Respect USE_CLANG_PLATFORM_BUILD for art builds"

9 years agoRespect USE_CLANG_PLATFORM_BUILD for art builds
Bernhard Rosenkraenzer [Sat, 4 Oct 2014 17:02:06 +0000 (19:02 +0200)]
Respect USE_CLANG_PLATFORM_BUILD for art builds

Without this patch, ART_TARGET_CLANG is set to false unconditionally.
It should be set to whatever USE_CLANG_PLATFORM_BUILD requests, if the
latter is set.

Change-Id: I29c4397c308a1549c2097aad2c997fe732be27ac
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
9 years agoMerge "Make host-run-test-ar take --no-prebuild."
Nicolas Geoffray [Sat, 4 Oct 2014 09:42:17 +0000 (09:42 +0000)]
Merge "Make host-run-test-ar take --no-prebuild."

9 years agoMake host-run-test-ar take --no-prebuild.
Nicolas Geoffray [Sat, 4 Oct 2014 09:40:54 +0000 (10:40 +0100)]
Make host-run-test-ar take --no-prebuild.

Forgot to update this file in last commit.

Change-Id: I7f7c6ecbabecaaabdeffa3fb5a50a9e9e78d03c0

9 years agoMerge "Merge push-and-run-{prebuilt}-test-jar files."
Nicolas Geoffray [Sat, 4 Oct 2014 09:04:45 +0000 (09:04 +0000)]
Merge "Merge push-and-run-{prebuilt}-test-jar files."

9 years agoMerge "Add some missing TEMP_FAILURE_RETRYs around unlink(2)"
Brian Carlstrom [Sat, 4 Oct 2014 00:49:29 +0000 (00:49 +0000)]
Merge "Add some missing TEMP_FAILURE_RETRYs around unlink(2)"

9 years agoAdd some missing TEMP_FAILURE_RETRYs around unlink(2)
Brian Carlstrom [Tue, 30 Sep 2014 23:18:01 +0000 (16:18 -0700)]
Add some missing TEMP_FAILURE_RETRYs around unlink(2)

Change-Id: Ibf446d37092933dce165d7a95c0ff2e52b94ce46

9 years agoMerge "ART: Prepare for ELF64."
Brian Carlstrom [Sat, 4 Oct 2014 00:22:15 +0000 (00:22 +0000)]
Merge "ART: Prepare for ELF64."

9 years agoMerge "Add test for getDeclaredClasses of with missing class"
Brian Carlstrom [Sat, 4 Oct 2014 00:11:32 +0000 (00:11 +0000)]
Merge "Add test for getDeclaredClasses of with missing class"

9 years agoAdd test for getDeclaredClasses of with missing class
Brian Carlstrom [Fri, 3 Oct 2014 17:28:47 +0000 (10:28 -0700)]
Add test for getDeclaredClasses of with missing class

Bug: 17782530
Change-Id: I399621344c3835226c9df9678217fca62cbd5c92

9 years agoMerge "Quick compiler: Fix ambiguous LoadValue()"
buzbee [Fri, 3 Oct 2014 20:51:09 +0000 (20:51 +0000)]
Merge "Quick compiler: Fix ambiguous LoadValue()"

9 years agoQuick compiler: Fix ambiguous LoadValue()
buzbee [Fri, 3 Oct 2014 20:14:17 +0000 (13:14 -0700)]
Quick compiler: Fix ambiguous LoadValue()

Internal b/17790197 & hat tip to Stephen Kyle

The following custom-edited dex program demonstrated
incorrect code generation caused by type confusion.
In the example, the constant held in v0 is used in both
float and int contexts, and the register class gets
confused at the if-eq.

.method private static getInt()I
    .registers 4
    const/16 v0, 100
    const/4 v1, 1
    const/4 v2, 7
    :loop
    if-eq v2, v0, :done
    add-int v2, v2, v1
    goto :loop
    :done
    add-float v3, v0, v1
    return v2
.end method

The bug was introduced in c/96499, "Quick compiler: reference cleanup"
That CL created a convenience variant of LoadValue which selected the
target register type based on the type of the RegLocation.  It should
not have done so.  The type of a RegLocation is the compiler's best
guess of the Dalvik type - and Dalvik allows constants to be used
in multiple type contexts.  All code generation utilities must specify
desired register class based on the capabilities of the instructions
to be emitted.  In the failing case, OpCmpImmBranch (and
GenCompareZeroAndBranch) will be using core registers, so the
LoadValue must specify  either kCoreReg or kRefReg.

The CL deletes the dangerous LoadValue() variant.

Change-Id: Ie4ec6e51b19676dbbb9628c72c8b3473a419e7ec

9 years agoART: Prepare for ELF64.
Tong Shen [Thu, 4 Sep 2014 00:24:56 +0000 (17:24 -0700)]
ART: Prepare for ELF64.

Only expose necessary interface in ElfFile, and move all details into template class ElfFileImpl.

Change-Id: I9df2bbc55f32ba0ba91f4f3d5d0009e84a2ddf74

9 years agoMerge "AArch64: oat patches should be 32-bit ints."
Vladimir Marko [Fri, 3 Oct 2014 17:08:04 +0000 (17:08 +0000)]
Merge "AArch64: oat patches should be 32-bit ints."

9 years agoMerge push-and-run-{prebuilt}-test-jar files.
Nicolas Geoffray [Fri, 3 Oct 2014 11:08:38 +0000 (12:08 +0100)]
Merge push-and-run-{prebuilt}-test-jar files.

Can't find a reason why those two files forked...

Change-Id: I5ef3dd76aa3b2d843c8b4b57365edec3bf2c3f3b

9 years agoMerge "Revert "Fix OOM throwing if it happens in finalizer reference""
Nicolas Geoffray [Fri, 3 Oct 2014 11:00:56 +0000 (11:00 +0000)]
Merge "Revert "Fix OOM throwing if it happens in finalizer reference""

9 years agoRevert "Fix OOM throwing if it happens in finalizer reference"
Nicolas Geoffray [Fri, 3 Oct 2014 10:54:19 +0000 (10:54 +0000)]
Revert "Fix OOM throwing if it happens in finalizer reference"

This reverts commit 6d7729d6ae8b2ac3800e92092d61390ce4e3b6d7.

Change-Id: I3e863b7372657ee85b0e48029c3a3e2b4ba75a7c

9 years agoAArch64: oat patches should be 32-bit ints.
Matteo Franchin [Mon, 8 Sep 2014 17:29:24 +0000 (18:29 +0100)]
AArch64: oat patches should be 32-bit ints.

This makes the arm64 backend consistent with the behaviour of the code
in oat_writer.cc and in the patchoat tool.
It also reduces the size of boot.oat by 1.6% (aosp_arm64-eng build).

Change-Id: Ia0b96737159c08955cd7b776ee396ff578cd58f6

9 years agoMerge "Revert "Rename registers in arm64.""
Nicolas Geoffray [Fri, 3 Oct 2014 10:08:30 +0000 (10:08 +0000)]
Merge "Revert "Rename registers in arm64.""

9 years agoRevert "Rename registers in arm64."
Nicolas Geoffray [Fri, 3 Oct 2014 10:07:42 +0000 (10:07 +0000)]
Revert "Rename registers in arm64."

This reverts commit 11daa0adbb30f341ccbdec64a2d43d8eeb111288.

Change-Id: I2ce0879dce8fbf5512649d0d9c3a2c189c23dd5f

9 years agoMerge "Remove all uses of MIR_INLINED."
Vladimir Marko [Fri, 3 Oct 2014 10:07:38 +0000 (10:07 +0000)]
Merge "Remove all uses of MIR_INLINED."

9 years agoMerge "Rename registers in arm64."
Nicolas Geoffray [Fri, 3 Oct 2014 09:44:25 +0000 (09:44 +0000)]
Merge "Rename registers in arm64."

9 years agoMerge "Fix OOM throwing if it happens in finalizer reference"
Hiroshi Yamauchi [Fri, 3 Oct 2014 00:32:48 +0000 (00:32 +0000)]
Merge "Fix OOM throwing if it happens in finalizer reference"

9 years agoMerge "Fix test-art-(host|target)-run-test(32|64) targets."
Ian Rogers [Fri, 3 Oct 2014 00:10:36 +0000 (00:10 +0000)]
Merge "Fix test-art-(host|target)-run-test(32|64) targets."

9 years agoFix test-art-(host|target)-run-test(32|64) targets.
Ian Rogers [Thu, 2 Oct 2014 23:35:52 +0000 (16:35 -0700)]
Fix test-art-(host|target)-run-test(32|64) targets.

Fix extra hyphen and missing target.

Change-Id: Ib7f87172693507ff693bcebe2629e5dfd64b1b3a

9 years agoMerge "Fix x86_64 assembler LoadRef to use movl."
Hiroshi Yamauchi [Thu, 2 Oct 2014 22:58:32 +0000 (22:58 +0000)]
Merge "Fix x86_64 assembler LoadRef to use movl."

9 years agoMerge "Colorize warnings when building with clang."
Ian Rogers [Thu, 2 Oct 2014 21:51:25 +0000 (21:51 +0000)]
Merge "Colorize warnings when building with clang."

9 years agoMerge "More native bridge tests"
Calin Juravle [Thu, 2 Oct 2014 17:28:21 +0000 (17:28 +0000)]
Merge "More native bridge tests"

9 years agoColorize warnings when building with clang.
Ian Rogers [Thu, 2 Oct 2014 16:41:44 +0000 (09:41 -0700)]
Colorize warnings when building with clang.

Change-Id: Icbb26779852d2fc2344bac597d43c4301646ac90

9 years agoRemove all uses of MIR_INLINED.
Vladimir Marko [Thu, 2 Oct 2014 16:24:53 +0000 (17:24 +0100)]
Remove all uses of MIR_INLINED.

They are not needed since
  https://android-review.googlesource.com/103763

Change-Id: I1dffe5e219db615be9d9aaceb72ad9bd7c69b58e

9 years agoMerge "Fix build_all_egdes in MIRGraph::ProcessCanThrow()."
Vladimir Marko [Thu, 2 Oct 2014 09:58:10 +0000 (09:58 +0000)]
Merge "Fix build_all_egdes in MIRGraph::ProcessCanThrow()."

9 years agoFix OOM throwing if it happens in finalizer reference
Dmitry Petrochenko [Wed, 1 Oct 2014 06:31:58 +0000 (13:31 +0700)]
Fix OOM throwing if it happens in finalizer reference

The Class::Alloc should return null if OOM happened during
adding finalizer reference, even if finalizable object is
allocated succesfully.

Change-Id: I66c1cdda50228bf1302839785ce4d4889b676f5b
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoMore native bridge tests
Calin Juravle [Wed, 1 Oct 2014 17:57:29 +0000 (18:57 +0100)]
More native bridge tests

Test for os.arch.

Bug: 17713104

(cherry picked from commit ba16b0796aafb6ad4c96c5e10b713d73edc0b857)

Change-Id: I45bde49c778f176cdfc779b211053a2747adb3fc

9 years agoMerge "Quick: Fix LVN/GVN handling of acquire operations."
Vladimir Marko [Wed, 1 Oct 2014 17:45:38 +0000 (17:45 +0000)]
Merge "Quick: Fix LVN/GVN handling of acquire operations."

9 years agoFix build_all_egdes in MIRGraph::ProcessCanThrow().
Vladimir Marko [Wed, 1 Oct 2014 16:38:02 +0000 (17:38 +0100)]
Fix build_all_egdes in MIRGraph::ProcessCanThrow().

Calculate build_all_edges only after in_try_block has
received its final value. This was a minor omission in
  https://android-review.googlesource.com/100505

Change-Id: Icc9189d2092bbd29fcf1706e4d6074a6d915cebe

9 years agoQuick: Fix LVN/GVN handling of acquire operations.
Vladimir Marko [Mon, 29 Sep 2014 16:58:10 +0000 (17:58 +0100)]
Quick: Fix LVN/GVN handling of acquire operations.

Acquire operations, i.e. MONITOR_ENTER and volatile GETs,
change the thread's view of the memory, so subsequent loads
must get new value names in LVN/GVN. Release operations do
not affect this thread's view of the memory, they the only
push the modifications for other threads to see.

Bug: 17689750
Change-Id: I9442d89b1d2c5252b99b02851b71bb85f871d734

9 years agoMerge "Revert "Introduce a class to implement optimization passes.""
Nicolas Geoffray [Wed, 1 Oct 2014 14:59:51 +0000 (14:59 +0000)]
Merge "Revert "Introduce a class to implement optimization passes.""

9 years agoRevert "Introduce a class to implement optimization passes."
Nicolas Geoffray [Wed, 1 Oct 2014 14:59:23 +0000 (14:59 +0000)]
Revert "Introduce a class to implement optimization passes."

This reverts commit bf9cd7ba2118a75f5aa9b56241c4d5fa00dedeb8.

Change-Id: I0a483446666c9c24c45925a5fc199debdefd8b3e

9 years agoMerge "Introduce a class to implement optimization passes."
Roland Levillain [Wed, 1 Oct 2014 14:38:10 +0000 (14:38 +0000)]
Merge "Introduce a class to implement optimization passes."

9 years agoIntroduce a class to implement optimization passes.
Roland Levillain [Tue, 30 Sep 2014 15:15:14 +0000 (16:15 +0100)]
Introduce a class to implement optimization passes.

- Add art::HOptimization.
- Rename art::ConstantPropagation to art::HConstantFolding in
  compiler/optimizing/constant_folding.h to avoid name
  clashes with a class of the same name in
  compiler/dex/post_opt_passes.h.
- Rename art::DeadCodeElimination to
  art::HDeadCodeElimination for consistency reasons.
- Have art::HDeadCodeElimination and art::HConstantFolding
  derive from art::HOptimization.
- Start to use these optimizations in
  art:OptimizingCompiler::TryCompile.

Change-Id: Iaab350c122d87b2333b3760312b15c0592d7e010

9 years agoRename registers in arm64.
Nicolas Geoffray [Wed, 1 Oct 2014 09:49:08 +0000 (10:49 +0100)]
Rename registers in arm64.

Change-Id: I4c3ed96be2a7efaa674486515c84c689f382eceb

9 years agoMerge "Add VMRuntime.isBootClassPathOnDisk"
Brian Carlstrom [Wed, 1 Oct 2014 05:06:24 +0000 (05:06 +0000)]
Merge "Add VMRuntime.isBootClassPathOnDisk"

9 years agoAdd VMRuntime.isBootClassPathOnDisk
Brian Carlstrom [Mon, 29 Sep 2014 18:22:54 +0000 (11:22 -0700)]
Add VMRuntime.isBootClassPathOnDisk

Bug: 17679443

(cherry picked from commit 95a935415d44903b28326424beb4db5c013ef089)

Change-Id: Iba40291dead3f0b6715903c986370fd0cf1e41e1

9 years agoMerge "Enable -Wunreachable-code"
Ian Rogers [Tue, 30 Sep 2014 23:10:02 +0000 (23:10 +0000)]
Merge "Enable -Wunreachable-code"

9 years agoEnable -Wunreachable-code
Ian Rogers [Tue, 30 Sep 2014 22:43:59 +0000 (15:43 -0700)]
Enable -Wunreachable-code

Caught bugs in DeoptimizeStackVisitor and assemble_x86 SIB encoding.
Add UNREACHABLE macro to document code expected to be unreachable.
Bug: 17731047

Change-Id: I2e363fe5b38a1246354d98be18c902a6031c0b9e

9 years agoMerge "ART: Fix GenReduceVector and GenSetVector"
Bill Buzbee [Tue, 30 Sep 2014 19:53:21 +0000 (19:53 +0000)]
Merge "ART: Fix GenReduceVector and GenSetVector"

9 years agoMerge "ART: Reset bb id to the last list mir"
Bill Buzbee [Tue, 30 Sep 2014 19:46:09 +0000 (19:46 +0000)]
Merge "ART: Reset bb id to the last list mir"

9 years agoFix x86_64 assembler LoadRef to use movl.
Hiroshi Yamauchi [Tue, 30 Sep 2014 17:56:14 +0000 (10:56 -0700)]
Fix x86_64 assembler LoadRef to use movl.

As references are 32-bit, we should use movl instead movq.

Change-Id: Iffefbb9d86d5f40375f73994fd481f9bd28499b2

9 years agoMerge "ART: Allow overridable calculation of basic block dataflow"
Bill Buzbee [Tue, 30 Sep 2014 19:17:28 +0000 (19:17 +0000)]
Merge "ART: Allow overridable calculation of basic block dataflow"

9 years agoMerge "Update maximum number of reachable blocks in last step"
Bill Buzbee [Tue, 30 Sep 2014 19:16:40 +0000 (19:16 +0000)]
Merge "Update maximum number of reachable blocks in last step"

9 years agoART: Allow overridable calculation of basic block dataflow
Razvan A Lupusoru [Mon, 29 Sep 2014 18:59:12 +0000 (11:59 -0700)]
ART: Allow overridable calculation of basic block dataflow

Currently dataflow information is not calculated for catch blocks in order to
reduce overhead. However, this makes assumption that the lack of this
information is only preventing local optimizations to catch block. But in
reality this problematic for global optimizations.

However, since no optimizations need complete information for now, simply
leave logic same but factor it out in separate method.

Change-Id: I5c13344c18409bd172a5d9b07577b4a1353cc733
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoMerge "Get heap poisoning working in 64-bit."
Hiroshi Yamauchi [Tue, 30 Sep 2014 17:11:27 +0000 (17:11 +0000)]
Merge "Get heap poisoning working in 64-bit."

9 years agoMerge "Disable ThreadStress."
Nicolas Geoffray [Tue, 30 Sep 2014 15:52:05 +0000 (15:52 +0000)]
Merge "Disable ThreadStress."

9 years agoMerge "ART: Fix typo"
Andreas Gampe [Tue, 30 Sep 2014 15:40:37 +0000 (15:40 +0000)]
Merge "ART: Fix typo"

9 years agoART: Fix typo
Andreas Gampe [Tue, 30 Sep 2014 15:39:37 +0000 (08:39 -0700)]
ART: Fix typo

Fixes a miss-translation in the pedantic change.

Change-Id: Ibdce896bf3667e06f10d60f160803451096b08ba

9 years agoMerge "ART: Fix some -Wpedantic errors"
Andreas Gampe [Tue, 30 Sep 2014 14:47:23 +0000 (14:47 +0000)]
Merge "ART: Fix some -Wpedantic errors"

9 years agoDisable ThreadStress.
Nicolas Geoffray [Tue, 30 Sep 2014 14:05:13 +0000 (15:05 +0100)]
Disable ThreadStress.

Change-Id: Ieead69051687a8cc4687ab0c8c8879d780da01f3

9 years agoMerge "AArch64: address some outstanding TODOs."
Vladimir Marko [Tue, 30 Sep 2014 13:00:02 +0000 (13:00 +0000)]
Merge "AArch64: address some outstanding TODOs."

9 years agoMerge "Remove selinux dependency."
Nicolas Geoffray [Tue, 30 Sep 2014 12:59:42 +0000 (12:59 +0000)]
Merge "Remove selinux dependency."

9 years agoMerge "Improve detection of lifetime holes."
Nicolas Geoffray [Tue, 30 Sep 2014 12:53:06 +0000 (12:53 +0000)]
Merge "Improve detection of lifetime holes."

9 years agoImprove detection of lifetime holes.
Nicolas Geoffray [Mon, 29 Sep 2014 11:00:40 +0000 (12:00 +0100)]
Improve detection of lifetime holes.

The check concluding that the next use was in a successor
was too conservative: two blocks following each other
in terms of liveness are not necessarily predecessor/sucessor.

Change-Id: Ideec98046c812aa5fb63781141b5fde24c706d6d

9 years agoRemove selinux dependency.
Nicolas Geoffray [Tue, 30 Sep 2014 12:48:16 +0000 (13:48 +0100)]
Remove selinux dependency.

Seems that the dependency was for the zygote code, which is
now in frameworks.

Change-Id: Id186d6ff794730e710628f275b258be499950051

9 years agoMerge "Revert "Enable computed goto interpreter on the host""
Sebastien Hertz [Tue, 30 Sep 2014 12:06:19 +0000 (12:06 +0000)]
Merge "Revert "Enable computed goto interpreter on the host""

9 years agoRevert "Enable computed goto interpreter on the host"
Sebastien Hertz [Tue, 30 Sep 2014 10:00:11 +0000 (12:00 +0200)]
Revert "Enable computed goto interpreter on the host"

This reverts commit 66d9bdb94f21106aaaa31a8fd686098672075e04.

Bug: 17716550
Change-Id: Ib404242c86e96e8edf019a2dcc14f0f8294b79e8

9 years agoAArch64: address some outstanding TODOs.
Matteo Franchin [Tue, 15 Jul 2014 14:20:27 +0000 (15:20 +0100)]
AArch64: address some outstanding TODOs.

Fix comments in arm64_lir.h. Rename Arm* to A64* and replace FWIDE,
FUNWIDE, ... with WIDE, UNWIDE, ...

Change-Id: I4900902e28463ea5e00e34ea40ddfc15704c0bfa

9 years agoMerge "ART: Fix movnti assembler"
Ian Rogers [Tue, 30 Sep 2014 06:15:29 +0000 (06:15 +0000)]
Merge "ART: Fix movnti assembler"

9 years agoART: Fix some -Wpedantic errors
Andreas Gampe [Tue, 30 Sep 2014 03:07:43 +0000 (20:07 -0700)]
ART: Fix some -Wpedantic errors

Remove extra semicolons.

Dollar signs in C++ identifiers are an extension.

Named variadic macros are an extension.

Binary literals are a C++14 feature.

Enum re-declarations are not allowed.

Overflow.

Change-Id: I7d16b2217b2ef2959ca69de84eaecc754517714a

9 years agoGet heap poisoning working in 64-bit.
Hiroshi Yamauchi [Fri, 26 Sep 2014 21:55:38 +0000 (14:55 -0700)]
Get heap poisoning working in 64-bit.

This adds the reference negate code in arm64 and x86_64 that's used by
the jni compiler.

Bug: 12687968
Bug: 8367515
Change-Id: I28a44bcead1ee613866645620b4eaf54fad6a3aa

9 years agoMerge "ART: Better IllegalAccessException message"
Andreas Gampe [Mon, 29 Sep 2014 18:40:54 +0000 (18:40 +0000)]
Merge "ART: Better IllegalAccessException message"

9 years agoART: Better IllegalAccessException message
Andreas Gampe [Tue, 23 Sep 2014 17:38:30 +0000 (10:38 -0700)]
ART: Better IllegalAccessException message

Bug: 17618578
Bug: 17614623
Change-Id: I0e3f15e676acd6ed5844fc86e136f75cc335372d

9 years agoMerge "ART: Deprecate CompilationUnit's code_item"
Ian Rogers [Mon, 29 Sep 2014 18:31:02 +0000 (18:31 +0000)]
Merge "ART: Deprecate CompilationUnit's code_item"

9 years agoMerge "ART: More verifier error output"
Andreas Gampe [Mon, 29 Sep 2014 18:29:17 +0000 (18:29 +0000)]
Merge "ART: More verifier error output"

9 years agoMerge "ART: Do a pre-pass for monitor_enter dex pc search"
Andreas Gampe [Mon, 29 Sep 2014 18:29:04 +0000 (18:29 +0000)]
Merge "ART: Do a pre-pass for monitor_enter dex pc search"

9 years agoMerge "Reduce scope of MIR analysis attributes."
Ian Rogers [Mon, 29 Sep 2014 18:24:23 +0000 (18:24 +0000)]
Merge "Reduce scope of MIR analysis attributes."

9 years agoART: Deprecate CompilationUnit's code_item
Razvan A Lupusoru [Thu, 11 Sep 2014 22:24:59 +0000 (15:24 -0700)]
ART: Deprecate CompilationUnit's code_item

The code_item field is tracked in both the CompilationUnit and the MIRGraph.
However, the existence of this field in CompilationUnit promotes bad practice
because it creates assumption only a single code_item can be part of method.

This patch deprecates this field and updates MIRGraph methods to make it
easy to get same information as before. Part of this is the update to
interface GetNumDalvikInsn which ensures to count all code_items in MIRGraph.

Some dead code was also removed because it was not friendly to these updates.

Change-Id: Ie979be73cc56350321506cfea58f06d688a7fe99
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
9 years agoReduce scope of MIR analysis attributes.
Ian Rogers [Mon, 29 Sep 2014 17:49:11 +0000 (10:49 -0700)]
Reduce scope of MIR analysis attributes.

MIR analaysis attributes are only used in MIRGraph::AnalyzeBlock. Reduce the
scope to just the file that defines that function.
Reduce the size of the attributes from int32 to int16.
Remove the use of #defines in favor of enums.

Change-Id: I45ba3aa08beae67240507917b584d537a029838e

9 years agoART: Fix movnti assembler
Razvan A Lupusoru [Tue, 23 Sep 2014 21:54:32 +0000 (14:54 -0700)]
ART: Fix movnti assembler

Movnti was receiving rex prefix before its opcode. Additionally,
the 64-bit version was missing the rex.w prefix.

Change-Id: Ie5c3bbe109765a0b990cafeeea1ee30329daabd0
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoART: More verifier error output
Andreas Gampe [Tue, 16 Sep 2014 02:02:30 +0000 (19:02 -0700)]
ART: More verifier error output

Add some debug output on verifier abort.

Change-Id: I4a84ff1d8e1bad689addca287a989639e7111b97

9 years agoART: Do a pre-pass for monitor_enter dex pc search
Andreas Gampe [Thu, 18 Sep 2014 20:16:38 +0000 (13:16 -0700)]
ART: Do a pre-pass for monitor_enter dex pc search

In case the method does not have any monitor_enter instructions,
it is unnecessary to run the full verifier. Speeds up stack dumps
and works around b/17514582.

Bug: 17514582
Change-Id: I5201bfbb9fb6cad49596b4c72e71983b58d9f20c

9 years agoMerge "Fix a bug in the insertion of parallel move."
Nicolas Geoffray [Mon, 29 Sep 2014 10:59:34 +0000 (10:59 +0000)]
Merge "Fix a bug in the insertion of parallel move."

9 years agoFix a bug in the insertion of parallel move.
Nicolas Geoffray [Mon, 29 Sep 2014 09:33:25 +0000 (10:33 +0100)]
Fix a bug in the insertion of parallel move.

To make sure we do not connect interval siblings in the
same parallel move, I added a new field in MoveOperands
that tells for which instruction this move is for.
A parallel move should not contains moves for the same instructions.

The checks revealed a bug when connecting siblings, where
we would choose the wrong parallel move.

Change-Id: I70f27ec120886745c187071453c78da4c47c1dd2

9 years agoMerge "Fix test now that instructions can die at instruction entry."
Nicolas Geoffray [Mon, 29 Sep 2014 08:47:31 +0000 (08:47 +0000)]
Merge "Fix test now that instructions can die at instruction entry."

9 years agoFix test now that instructions can die at instruction entry.
Nicolas Geoffray [Mon, 29 Sep 2014 08:46:03 +0000 (09:46 +0100)]
Fix test now that instructions can die at instruction entry.

Change-Id: I816279c55d12de8e69ac0b6c88730bd676c03335