OSDN Git Service

android-x86/art.git
9 years agoam 223f2f5b: Merge "Incorrect transformation of (sub,neg) to (sub) for fp"
Roland Levillain [Tue, 21 Apr 2015 15:35:22 +0000 (15:35 +0000)]
am 223f2f5b: Merge "Incorrect transformation of (sub,neg) to (sub) for fp"

* commit '223f2f5b2a20ca8246da1523494900a2424d5956':
  Incorrect transformation of (sub,neg) to (sub) for fp

9 years agoMerge "Incorrect transformation of (sub,neg) to (sub) for fp"
Roland Levillain [Tue, 21 Apr 2015 15:26:12 +0000 (15:26 +0000)]
Merge "Incorrect transformation of (sub,neg) to (sub) for fp"

9 years agoam b4314b3a: Merge "Move GetAndroidToolsDir to common location."
David Srbecky [Tue, 21 Apr 2015 15:24:30 +0000 (15:24 +0000)]
am b4314b3a: Merge "Move GetAndroidToolsDir to common location."

* commit 'b4314b3aa80f0e6d3a55da7865e80658a150f1e8':
  Move GetAndroidToolsDir to common location.

9 years agoam 1c285915: Merge "fix optimizing gtests"
Calin Juravle [Tue, 21 Apr 2015 15:24:29 +0000 (15:24 +0000)]
am 1c285915: Merge "fix optimizing gtests"

* commit '1c28591571c035dfdd76f28d17151b3a6eba4aac':
  fix optimizing gtests

9 years agoMerge "Move GetAndroidToolsDir to common location."
David Srbecky [Tue, 21 Apr 2015 15:19:06 +0000 (15:19 +0000)]
Merge "Move GetAndroidToolsDir to common location."

9 years agoMerge "fix optimizing gtests"
Calin Juravle [Tue, 21 Apr 2015 15:13:29 +0000 (15:13 +0000)]
Merge "fix optimizing gtests"

9 years agofix optimizing gtests
Calin Juravle [Tue, 21 Apr 2015 15:12:55 +0000 (16:12 +0100)]
fix optimizing gtests

Change-Id: I207398d8a65482650fba87db12a3b51e8b114694

9 years agoam af1ff6a9: Merge "Run DCE again after all the other optimizations have run."
Calin Juravle [Tue, 21 Apr 2015 14:55:14 +0000 (14:55 +0000)]
am af1ff6a9: Merge "Run DCE again after all the other optimizations have run."

* commit 'af1ff6a96cdff3ea7e49ebc904e7329b3c3c525b':
  Run DCE again after all the other optimizations have run.

9 years agoMerge "Run DCE again after all the other optimizations have run."
Calin Juravle [Tue, 21 Apr 2015 14:46:58 +0000 (14:46 +0000)]
Merge "Run DCE again after all the other optimizations have run."

9 years agoRun DCE again after all the other optimizations have run.
Calin Juravle [Tue, 21 Apr 2015 13:07:50 +0000 (14:07 +0100)]
Run DCE again after all the other optimizations have run.

On docs this doubles the amount of instructions removed.

Change-Id: I1712a92c0c0b3b32b111d194b64d8ea81d652822

9 years agoam dac1a694: Merge "Use --dump-stats to dump optimizing compiler stats."
Calin Juravle [Tue, 21 Apr 2015 13:21:05 +0000 (13:21 +0000)]
am dac1a694: Merge "Use --dump-stats to dump optimizing compiler stats."

* commit 'dac1a694e4fd79fd5d5ba95319197a1e42f9f054':
  Use --dump-stats to dump optimizing compiler stats.

9 years agoMerge "Use --dump-stats to dump optimizing compiler stats."
Calin Juravle [Tue, 21 Apr 2015 13:11:22 +0000 (13:11 +0000)]
Merge "Use --dump-stats to dump optimizing compiler stats."

9 years agoUse --dump-stats to dump optimizing compiler stats.
Calin Juravle [Tue, 21 Apr 2015 12:56:34 +0000 (13:56 +0100)]
Use --dump-stats to dump optimizing compiler stats.

VLOG(compiler) produces too much output and it takes a long time if you
only need to see how an analysis performs.

Change-Id: Ic17c2b2b5fec431d356cecd37289fb96985d4d7f

9 years agoam 2b25ba3c: Merge "[optimzing] Fix codegen bug and improve type propagation"
Calin Juravle [Tue, 21 Apr 2015 13:08:56 +0000 (13:08 +0000)]
am 2b25ba3c: Merge "[optimzing] Fix codegen bug and improve type propagation"

* commit '2b25ba3ca9452415cdce88478726272aeec3f77c':
  [optimzing] Fix codegen bug and improve type propagation

9 years agoMerge "[optimzing] Fix codegen bug and improve type propagation"
Calin Juravle [Tue, 21 Apr 2015 13:00:25 +0000 (13:00 +0000)]
Merge "[optimzing] Fix codegen bug and improve type propagation"

9 years ago[optimzing] Fix codegen bug and improve type propagation
Calin Juravle [Mon, 20 Apr 2015 17:30:42 +0000 (18:30 +0100)]
[optimzing] Fix codegen bug and improve type propagation

- don't bound the type if there are no relevant uses
- insert the bound type in the bounded block (this allows for condition
materialization without changing the logic there).
- add more comments
- add tests for BoundType generation
- fix GenerateTestAndBranch

Change-Id: I5c1fdda104da4a46775d207270220d410234a472

9 years agoMove GetAndroidToolsDir to common location.
David Srbecky [Sun, 12 Apr 2015 06:45:18 +0000 (07:45 +0100)]
Move GetAndroidToolsDir to common location.

Move the code which looks for the prebuilts directory
to CommonRuntimeTest and add test for it.

Change-Id: Id804de31c466656957fdd4b6a470f80a00477aed

9 years agoam c2ea8069: Merge "Opt compiler: Minor object store optimizations for ARM64."
Roland Levillain [Tue, 21 Apr 2015 11:33:11 +0000 (11:33 +0000)]
am c2ea8069: Merge "Opt compiler: Minor object store optimizations for ARM64."

* commit 'c2ea806908e205a808182b2255b6ef5433695375':
  Opt compiler: Minor object store optimizations for ARM64.

9 years agoMerge "Opt compiler: Minor object store optimizations for ARM64."
Roland Levillain [Tue, 21 Apr 2015 11:24:52 +0000 (11:24 +0000)]
Merge "Opt compiler: Minor object store optimizations for ARM64."

9 years agoam 769f2d32: Merge "Linear scan: Use FirstUse instead of FirstRegisterUse."
Nicolas Geoffray [Tue, 21 Apr 2015 10:26:35 +0000 (10:26 +0000)]
am 769f2d32: Merge "Linear scan: Use FirstUse instead of FirstRegisterUse."

* commit '769f2d32e4b04758e4dd6ce967f779cbfa74dbcb':
  Linear scan: Use FirstUse instead of FirstRegisterUse.

9 years agoMerge "Linear scan: Use FirstUse instead of FirstRegisterUse."
Nicolas Geoffray [Tue, 21 Apr 2015 10:19:21 +0000 (10:19 +0000)]
Merge "Linear scan: Use FirstUse instead of FirstRegisterUse."

9 years agoLinear scan: Use FirstUse instead of FirstRegisterUse.
Nicolas Geoffray [Tue, 21 Apr 2015 08:12:40 +0000 (09:12 +0100)]
Linear scan: Use FirstUse instead of FirstRegisterUse.

This is in preparation for introducing synthesized used at back edges.

Change-Id: Ie28d6725d2dde982cf2137f2110daabcbab9f789

9 years agoam 3d052ba4: Merge "Fix another mistyped location."
Nicolas Geoffray [Tue, 21 Apr 2015 09:33:01 +0000 (09:33 +0000)]
am 3d052ba4: Merge "Fix another mistyped location."

* commit '3d052ba48f84901e89b5ea94c133093dc80bad06':
  Fix another mistyped location.

9 years agoMerge "Fix another mistyped location."
Nicolas Geoffray [Tue, 21 Apr 2015 09:12:44 +0000 (09:12 +0000)]
Merge "Fix another mistyped location."

9 years agoFix another mistyped location.
Nicolas Geoffray [Tue, 21 Apr 2015 09:02:22 +0000 (10:02 +0100)]
Fix another mistyped location.

Change-Id: I52d5a8d34ddc882595da2b53bca0f7eb78d4b3a1

9 years agoam 2fb1639a: Merge "ART: Change image_classes and compiled_classes to unordered set"
Andreas Gampe [Tue, 21 Apr 2015 04:07:58 +0000 (04:07 +0000)]
am 2fb1639a: Merge "ART: Change image_classes and compiled_classes to unordered set"

* commit '2fb1639a4bd836f6426cc0d4b8d21c59d2648527':
  ART: Change image_classes and compiled_classes to unordered set

9 years agoMerge "ART: Change image_classes and compiled_classes to unordered set"
Andreas Gampe [Tue, 21 Apr 2015 03:59:32 +0000 (03:59 +0000)]
Merge "ART: Change image_classes and compiled_classes to unordered set"

9 years agoART: Change image_classes and compiled_classes to unordered set
Andreas Gampe [Tue, 21 Apr 2015 01:53:51 +0000 (18:53 -0700)]
ART: Change image_classes and compiled_classes to unordered set

These lists can be large, and the soon-to-follow compiled_methods
will be potentially even larger. Use a hash set instead of a tree
set.

Change-Id: I7d25c075540f47771354c6f49928b4fd0c76eb2e

9 years agoam 4474073e: Merge "ART: Fix wrong parameter in JIT"
Andreas Gampe [Tue, 21 Apr 2015 00:12:59 +0000 (00:12 +0000)]
am 4474073e: Merge "ART: Fix wrong parameter in JIT"

* commit '4474073ee836d463af29329c86d49354559a41c5':
  ART: Fix wrong parameter in JIT

9 years agoMerge "ART: Fix wrong parameter in JIT"
Andreas Gampe [Tue, 21 Apr 2015 00:06:08 +0000 (00:06 +0000)]
Merge "ART: Fix wrong parameter in JIT"

9 years agoART: Fix wrong parameter in JIT
Andreas Gampe [Mon, 20 Apr 2015 23:53:59 +0000 (16:53 -0700)]
ART: Fix wrong parameter in JIT

Do not use an empty set for compiled-classes.

Change-Id: I5062a7886c1a4f5dc8dc9630ce490c71bc607b72

9 years agoIncorrect transformation of (sub,neg) to (sub) for fp
Serguei Katkov [Mon, 20 Apr 2015 06:29:32 +0000 (12:29 +0600)]
Incorrect transformation of (sub,neg) to (sub) for fp

A pair (sub,neg) should not be transformed to (sub) for
floating point operations, otherwise we can lose the sign of
zero for instructions like this:
  - (A - B) != B - A if B == A

Change-Id: I4d612612d4dc0a067fac5721ad206f74168bcd36
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
9 years agoam b9791aa6: Merge "Add sanity check for large object allocation"
Mathieu Chartier [Mon, 20 Apr 2015 17:19:24 +0000 (17:19 +0000)]
am b9791aa6: Merge "Add sanity check for large object allocation"

* commit 'b9791aa606834160b085dec7c5b32ccbeaf9a186':
  Add sanity check for large object allocation

9 years agoam 349eded3: Merge "ART: Simplify more bool operations"
David Brazdil [Mon, 20 Apr 2015 17:19:22 +0000 (17:19 +0000)]
am 349eded3: Merge "ART: Simplify more bool operations"

* commit '349eded3bc542c9e6ffb10b6222c6ce372bda9b7':
  ART: Simplify more bool operations

9 years agoam 6149f962: Merge "RecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on...
Mingyao Yang [Mon, 20 Apr 2015 17:19:21 +0000 (17:19 +0000)]
am 6149f962: Merge "RecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on x86."

* commit '6149f962cd0815c61c134a7554036ca88d0abef1':
  RecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on x86.

9 years agoMerge "Add sanity check for large object allocation"
Mathieu Chartier [Mon, 20 Apr 2015 17:16:57 +0000 (17:16 +0000)]
Merge "Add sanity check for large object allocation"

9 years agoMerge "ART: Simplify more bool operations"
David Brazdil [Mon, 20 Apr 2015 17:12:53 +0000 (17:12 +0000)]
Merge "ART: Simplify more bool operations"

9 years agoART: Simplify more bool operations
David Brazdil [Fri, 17 Apr 2015 13:52:19 +0000 (14:52 +0100)]
ART: Simplify more bool operations

Now that we have the HBooleanNot instruction, the instruction
simplifier can optimize out more conditions comparing a boolean
against a constant, as well as sequences of Boolean negations.

Change-Id: I7f634f6428a3984dd97b27b3d6362491346f1ff6

9 years agoMerge "RecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on x86."
Mingyao Yang [Mon, 20 Apr 2015 17:11:32 +0000 (17:11 +0000)]
Merge "RecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on x86."

9 years agoam 9fab1eea: Merge "Disable tests for volantis."
Nicolas Geoffray [Mon, 20 Apr 2015 17:03:37 +0000 (17:03 +0000)]
am 9fab1eea: Merge "Disable tests for volantis."

* commit '9fab1eea3b9dc7a284dd74487ac603d9ffbb79fb':
  Disable tests for volantis.

9 years agoMerge "Disable tests for volantis."
Nicolas Geoffray [Mon, 20 Apr 2015 16:54:36 +0000 (16:54 +0000)]
Merge "Disable tests for volantis."

9 years agoDisable tests for volantis.
Nicolas Geoffray [Mon, 20 Apr 2015 16:52:58 +0000 (17:52 +0100)]
Disable tests for volantis.

They're triggering a segfault.

Change-Id: If99bd9b2faba5422320764ca52808720d533745a

9 years agoOpt compiler: Minor object store optimizations for ARM64.
Alexandre Rames [Thu, 16 Apr 2015 14:07:12 +0000 (15:07 +0100)]
Opt compiler: Minor object store optimizations for ARM64.

This is an adaptation of af07bc121121d7bd7e8329c55dfe24782207b561 for
ARM64.

Change-Id: I5f4984ac86ede89cdf7c915f4bbf8d091059a0eb

9 years agoam 27eac12a: Merge "Opt compiler: Implement parallel move resolver without using...
Nicolas Geoffray [Mon, 20 Apr 2015 15:22:41 +0000 (15:22 +0000)]
am 27eac12a: Merge "Opt compiler: Implement parallel move resolver without using swap."

* commit '27eac12a66a73eb38b5ccb45b62350cf341299d0':
  Opt compiler: Implement parallel move resolver without using swap.

9 years agoam e40d82ff: Merge changes Ib9648605,I34a3bd17
Roland Levillain [Mon, 20 Apr 2015 15:22:40 +0000 (15:22 +0000)]
am e40d82ff: Merge changes Ib9648605,I34a3bd17

* commit 'e40d82ffe388458c2674ec051f1dd897362692eb':
  Opt compiler: ARM64: Block VIXLpools when recording the pc.
  Opt compiler: ARM64: Follow other archs for a few codegen stubs.

9 years agoMerge "Opt compiler: Implement parallel move resolver without using swap."
Nicolas Geoffray [Mon, 20 Apr 2015 15:20:15 +0000 (15:20 +0000)]
Merge "Opt compiler: Implement parallel move resolver without using swap."

9 years agoMerge changes Ib9648605,I34a3bd17
Roland Levillain [Mon, 20 Apr 2015 15:13:07 +0000 (15:13 +0000)]
Merge changes Ib9648605,I34a3bd17

* changes:
  Opt compiler: ARM64: Block VIXLpools when recording the pc.
  Opt compiler: ARM64: Follow other archs for a few codegen stubs.

9 years agoam 90078eec: Merge "optimizing: fix gtests"
Calin Juravle [Mon, 20 Apr 2015 13:59:23 +0000 (13:59 +0000)]
am 90078eec: Merge "optimizing: fix gtests"

* commit '90078eec8b676d363a8116f487df3596c9f23ea8':
  optimizing: fix gtests

9 years agoMerge "optimizing: fix gtests"
Calin Juravle [Mon, 20 Apr 2015 13:50:50 +0000 (13:50 +0000)]
Merge "optimizing: fix gtests"

9 years agooptimizing: fix gtests
Calin Juravle [Mon, 20 Apr 2015 13:49:09 +0000 (14:49 +0100)]
optimizing: fix gtests

by taking into account that the compilation unit is null during tests.

Change-Id: I01a28ce8f03c927ff679b84bcdf2464fa97e0924

9 years agoOpt compiler: ARM64: Block VIXLpools when recording the pc.
Alexandre Rames [Thu, 16 Apr 2015 14:07:16 +0000 (15:07 +0100)]
Opt compiler: ARM64: Block VIXLpools when recording the pc.

VIXL automatically handles and generate literal and veneer pools when
using the MacroAssembler. In general, the pools can be emitted
anywhere. Helpers are provided to forbid VIXL from emitting pools
locally.

So when writing the pseudo-code

    __ Fmov(d0, 1.2345);
    __ Ldr(dst, MemOperand(src, offset));
    FunctionRecordingCurrentPC();
    __ Add(x0, x1, x2);

VIXL might generate code looking like

    0x00: ldr s0, [pc, 0xc]
    0x04: ldr dst, [src, offset]
    0x08: b #0x10
    0x0c: <literal 1.2345>
    0x10: add x0, x1, x2

and the program counter recorded by the helper will point after the
literal pool.
So we explicitly stop VIXL from emitting pools when dealing with code
where we care about the program counter.

Change-Id: Ib964860539bdb10f5704c290bdf74e5db149e462

9 years agoOpt compiler: ARM64: Follow other archs for a few codegen stubs.
Alexandre Rames [Wed, 15 Apr 2015 10:47:56 +0000 (11:47 +0100)]
Opt compiler: ARM64: Follow other archs for a few codegen stubs.

Code generation for HInstanceFieldGet, HInstanceFieldSet,
HStaticFieldGet, and HStaticFieldSet are refactored to follow the
structure used for other backends.

Change-Id: I34a3bd17effa042238c6bf199848cbc2ec26ac5d

9 years agoam 36aafd94: Merge "[optimizing] Add memory barriers in constructors when needed"
Calin Juravle [Mon, 20 Apr 2015 13:10:35 +0000 (13:10 +0000)]
am 36aafd94: Merge "[optimizing] Add memory barriers in constructors when needed"

* commit '36aafd94af64d6f1ba603392f66959998f2a93a2':
  [optimizing] Add memory barriers in constructors when needed

9 years agoam aff3f0a0: Merge "ART: Extend list of instructions accepted as boolean inputs"
David Brazdil [Mon, 20 Apr 2015 13:10:34 +0000 (13:10 +0000)]
am aff3f0a0: Merge "ART: Extend list of instructions accepted as boolean inputs"

* commit 'aff3f0a0a2a080e313ae80c9b0216aa26a668623':
  ART: Extend list of instructions accepted as boolean inputs

9 years agoMerge "[optimizing] Add memory barriers in constructors when needed"
Calin Juravle [Mon, 20 Apr 2015 13:03:14 +0000 (13:03 +0000)]
Merge "[optimizing] Add memory barriers in constructors when needed"

9 years ago[optimizing] Add memory barriers in constructors when needed
Calin Juravle [Fri, 17 Apr 2015 18:12:31 +0000 (19:12 +0100)]
[optimizing] Add memory barriers in constructors when needed

If a class has final fields we must add a memory barrier before
returning from constructor. This makes sure the fields are visible to
other threads.

Bug: 19851497
Change-Id: If8c485092fc512efb9636cd568cb0543fb27688e

9 years agoMerge "ART: Extend list of instructions accepted as boolean inputs"
David Brazdil [Mon, 20 Apr 2015 12:58:55 +0000 (12:58 +0000)]
Merge "ART: Extend list of instructions accepted as boolean inputs"

9 years agoART: Extend list of instructions accepted as boolean inputs
David Brazdil [Mon, 20 Apr 2015 09:14:42 +0000 (10:14 +0100)]
ART: Extend list of instructions accepted as boolean inputs

Previous change allowed integer Phis as inputs of instructions
expecting a boolean type. This list, however, was not exhaustive as
binary operations And, Or and Xor are also valid inputs. This patch
extends the list in SSAChecker.

Change-Id: I5b5c9e7a17992cc4987e3a078ee23ea80028ecfc

9 years agoam 2e0f89b1: Merge "Fix lint error."
Nicolas Geoffray [Mon, 20 Apr 2015 11:50:42 +0000 (11:50 +0000)]
am 2e0f89b1: Merge "Fix lint error."

* commit '2e0f89b1b61685f7c322a4c6ec3e3b4839e76d64':
  Fix lint error.

9 years agoMerge "Fix lint error."
Nicolas Geoffray [Mon, 20 Apr 2015 11:40:30 +0000 (11:40 +0000)]
Merge "Fix lint error."

9 years agoFix lint error.
Nicolas Geoffray [Mon, 20 Apr 2015 11:39:57 +0000 (12:39 +0100)]
Fix lint error.

Change-Id: Id956c0e8c864a14c05d291f6b890df4877652306

9 years agoam ae267a22: Merge "Opt compiler: Correctly require register or FPU register."
Nicolas Geoffray [Mon, 20 Apr 2015 11:29:56 +0000 (11:29 +0000)]
am ae267a22: Merge "Opt compiler: Correctly require register or FPU register."

* commit 'ae267a22e14f3485ecb2191bd5cf50fcc1e4540d':
  Opt compiler: Correctly require register or FPU register.

9 years agoMerge "Opt compiler: Correctly require register or FPU register."
Nicolas Geoffray [Mon, 20 Apr 2015 11:24:01 +0000 (11:24 +0000)]
Merge "Opt compiler: Correctly require register or FPU register."

9 years agoOpt compiler: Correctly require register or FPU register.
Alexandre Rames [Tue, 14 Apr 2015 16:35:39 +0000 (17:35 +0100)]
Opt compiler: Correctly require register or FPU register.

Also add a check that location summary are correctly typed
with the HInstruction.

Change-Id: I699762ff4e8f4e321c7db01ea005236ea1934af9

9 years agoam 0ca64e92: Merge "Fix codegen_test for long multiplication."
Nicolas Geoffray [Mon, 20 Apr 2015 09:31:30 +0000 (09:31 +0000)]
am 0ca64e92: Merge "Fix codegen_test for long multiplication."

* commit '0ca64e926f9e55cd369e1afb520d7e05452a6aa6':
  Fix codegen_test for long multiplication.

9 years agoam d7265941: Merge "Run jdwp tests now that localhost issues have been solved."
Nicolas Geoffray [Mon, 20 Apr 2015 09:31:28 +0000 (09:31 +0000)]
am d7265941: Merge "Run jdwp tests now that localhost issues have been solved."

* commit 'd72659412d309b2a99b8f12713774c36fc90348b':
  Run jdwp tests now that localhost issues have been solved.

9 years agoMerge "Fix codegen_test for long multiplication."
Nicolas Geoffray [Mon, 20 Apr 2015 09:12:07 +0000 (09:12 +0000)]
Merge "Fix codegen_test for long multiplication."

9 years agoFix codegen_test for long multiplication.
Nicolas Geoffray [Mon, 20 Apr 2015 08:29:18 +0000 (09:29 +0100)]
Fix codegen_test for long multiplication.

It seems like clang (that we use on the host) was *very* forgiving
with this broken test: the code generated for for MulLong used ebx
but this is a callee-save register in C but not ART. Also, the test
was not properly written for handling longs, so it was taking
unitialized stack entries.

GCC on target is not as forgiving.

Change-Id: I5d7a962f8a72b3ce407dce50ca50b4ffc690c99e

9 years agoMerge "Run jdwp tests now that localhost issues have been solved."
Nicolas Geoffray [Mon, 20 Apr 2015 08:38:05 +0000 (08:38 +0000)]
Merge "Run jdwp tests now that localhost issues have been solved."

9 years agoRun jdwp tests now that localhost issues have been solved.
Nicolas Geoffray [Mon, 20 Apr 2015 08:29:48 +0000 (09:29 +0100)]
Run jdwp tests now that localhost issues have been solved.

Change-Id: I5ae67c2caf73695316ea9530274e97272114af1b
See: https://android-review.googlesource.com/#/c/147244/.

9 years agoAdd sanity check for large object allocation
Mathieu Chartier [Sun, 19 Apr 2015 20:36:11 +0000 (13:36 -0700)]
Add sanity check for large object allocation

If there is a large object which ends up being covered by a space
bitmap, it will not be marked correctly by the GC.

Change-Id: Icdd0aaa207f476dd08effcee6cfbbb5de7ca1d17

9 years agoam f5091eee: Merge "ART: Re-add dlopen"
Andreas Gampe [Sat, 18 Apr 2015 01:00:43 +0000 (01:00 +0000)]
am f5091eee: Merge "ART: Re-add dlopen"

* commit 'f5091eee4abe73c64959e53bda684bd689569643':
  ART: Re-add dlopen

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

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

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

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

Change-Id: I4a7e3cb00d1ea156dad84f76826def2a5967c9ca

9 years agoRecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on x86.
Mingyao Yang [Fri, 17 Apr 2015 23:51:08 +0000 (16:51 -0700)]
RecordPcInfo() in GenerateStaticOrDirectCall() is misplaced on x86.

GenerateStaticOrDirectCall() is invoked in intrinsics_x86.cc and
RecordPcInfo() is already taken care of there. It should be moved
to VisitInvokeStaticOrDirect() as done in other archs.

Change-Id: Id08d84c9046e55dea9d8a8452c979294c4183150

9 years agoam 33259fdf: Merge "Fix access past end of args array."
Christopher Ferris [Fri, 17 Apr 2015 22:47:29 +0000 (22:47 +0000)]
am 33259fdf: Merge "Fix access past end of args array."

* commit '33259fdfcd350793d10f67f2ea7dfc6051a8afa2':
  Fix access past end of args array.

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

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

Bug: 20340831
Change-Id: Ibc0995e28e74c65d81f001e5b4d1e4780ff19686

9 years agoam b73f887f: Merge "Fix undefined behavior in hash calculation."
Dan Albert [Fri, 17 Apr 2015 17:43:57 +0000 (17:43 +0000)]
am b73f887f: Merge "Fix undefined behavior in hash calculation."

* commit 'b73f887f7e9a6794159d8ae646e9b1d18797125c':
  Fix undefined behavior in hash calculation.

9 years agoam adf87b0c: Merge "ART: Fix a failing gtest"
David Brazdil [Fri, 17 Apr 2015 17:32:32 +0000 (17:32 +0000)]
am adf87b0c: Merge "ART: Fix a failing gtest"

* commit 'adf87b0c8cd68ed365e01aec620d016493357cec':
  ART: Fix a failing gtest

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

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

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

Change-Id: I9037c5c7ec554850ba3385585aca96fde1d50387

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

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

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

Change-Id: I0c568bf996ce6adefe4f000524b38acd3967421e

9 years agoam 41de2239: Merge "ART: Improve range search caching in LiveInterval"
David Brazdil [Fri, 17 Apr 2015 16:34:42 +0000 (16:34 +0000)]
am 41de2239: Merge "ART: Improve range search caching in LiveInterval"

* commit '41de22394e0108f6216a56193b579a199fc37649':
  ART: Improve range search caching in LiveInterval

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

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

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

Change-Id: I84d92b526e174caa70d6477497a06afd85016c4a

9 years agoam 81b13f6b: Merge "ART: Fix incorrect last range when adding high interval"
David Brazdil [Fri, 17 Apr 2015 15:13:28 +0000 (15:13 +0000)]
am 81b13f6b: Merge "ART: Fix incorrect last range when adding high interval"

* commit '81b13f6b5244b664000d4bcad16920aadf3b7e29':
  ART: Fix incorrect last range when adding high interval

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

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

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

Change-Id: Iaf242183436c8ac2f78c0aeea22cd07cd4beacc0

9 years agoOpt compiler: Implement parallel move resolver without using swap.
Zheng Xu [Fri, 17 Apr 2015 10:48:56 +0000 (18:48 +0800)]
Opt compiler: Implement parallel move resolver without using swap.

The algorithm of ParallelMoveResolverNoSwap() is almost the same with
ParallelMoveResolverWithSwap(), except the way we resolve the circular
dependency. NoSwap() uses additional scratch register to resolve the
circular dependency. For example, (0->1) (1->2) (2->0) will be performed
as (2->scratch) (1->2) (0->1) (scratch->0).

On architectures without swap register support, NoSwap() can reduce the
number of moves from 3x(N-1) to (N+1) when there is circular dependency
with N moves.

And also, NoSwap() algorithm does not depend on architecture register
layout information, which means it can support register pairs on arm32
and X/W, D/S registers on arm64 without additional modification.

Change-Id: Idf56bd5469bb78c0e339e43ab16387428a082318

9 years agoam dd2cf0c7: Merge "Cleanup unnecessary test conditions in ssa builder."
Calin Juravle [Fri, 17 Apr 2015 10:11:21 +0000 (10:11 +0000)]
am dd2cf0c7: Merge "Cleanup unnecessary test conditions in ssa builder."

* commit 'dd2cf0c7a5dc7f2c89b8ac217f16b7529461e509':
  Cleanup unnecessary test conditions in ssa builder.

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

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

Change-Id: Ic36e535aec3f977ebe36bfe20bc54a1033de62c6

9 years agoam f8bdd9f3: Merge "Fix value used for shift in quick_cfi_test."
Dan Albert [Thu, 16 Apr 2015 23:35:02 +0000 (23:35 +0000)]
am f8bdd9f3: Merge "Fix value used for shift in quick_cfi_test."

* commit 'f8bdd9f3a002970e4b8fdcf6fe6730116f1626c3':
  Fix value used for shift in quick_cfi_test.

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

9 years agoam 11c9cd45: Merge "Fix build"
Mathieu Chartier [Thu, 16 Apr 2015 21:45:54 +0000 (21:45 +0000)]
am 11c9cd45: Merge "Fix build"

* commit '11c9cd45f2aadad5622fef4b3e81b9e2181ebae3':
  Fix build

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

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

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

Change-Id: I3c5d26eed13e3f8d0a4d96756c09364707b6358e

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

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

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

Change-Id: Idf750be6d95b4487f8f4570b8c7ff9dba38be9f2