OSDN Git Service

android-x86/art.git
9 years agoMerge "Add implicit null checks for the optimizing compiler"
Calin Juravle [Tue, 20 Jan 2015 12:28:09 +0000 (12:28 +0000)]
Merge "Add implicit null checks for the optimizing compiler"

9 years agoMerge "Ensure HCondition nodes on objects are either HEqual or HNotEqual"
Roland Levillain [Tue, 20 Jan 2015 10:52:51 +0000 (10:52 +0000)]
Merge "Ensure HCondition nodes on objects are either HEqual or HNotEqual"

9 years agoMerge "ART: Run Checker with Python >2.6"
David Brazdil [Tue, 20 Jan 2015 10:02:04 +0000 (10:02 +0000)]
Merge "ART: Run Checker with Python >2.6"

9 years agoART: Run Checker with Python >2.6
David Brazdil [Tue, 20 Jan 2015 09:28:38 +0000 (09:28 +0000)]
ART: Run Checker with Python >2.6

Chromium buildbots don't have Python 3. This patch fixes the uses
of print() and ASCII vs. Unicode strings to make Checker compatible
with Python 2.6 and above.

Change-Id: Ic065d990f668b8cf95a337aae037699e8474fcee

9 years agoMerge "ART: Invoke Checker from run-test scripts"
David Brazdil [Tue, 20 Jan 2015 08:54:09 +0000 (08:54 +0000)]
Merge "ART: Invoke Checker from run-test scripts"

9 years agoMerge "Address review comments."
Nicolas Geoffray [Mon, 19 Jan 2015 17:36:23 +0000 (17:36 +0000)]
Merge "Address review comments."

9 years agoAddress review comments.
Nicolas Geoffray [Mon, 19 Jan 2015 17:17:16 +0000 (17:17 +0000)]
Address review comments.

Comments were from:
https://android-review.googlesource.com/#/c/121992.

Change-Id: I8c59b30a356d606f12c50d0c8db916295a5c9e13

9 years agoART: Invoke Checker from run-test scripts
David Brazdil [Thu, 15 Jan 2015 19:07:08 +0000 (19:07 +0000)]
ART: Invoke Checker from run-test scripts

This patch moves Checker-based tests of the optimizing compiler into
the art/test directory and modifies the run-test scripts to dump
the CFG during compilation and to verify the graph using Checker as
part of the "running" stage. Outputs generated by running the test
and running Checker are concatenated and compared with expected.txt.

Checker is invoked only if the test's name name matches the format
"<number>-checker-*" and it's currently enabled only for optimizing +
host configs. The tests are still invoked on other configs but
without Checker.

Change-Id: Ib24da808cd4bca66f07e0dbeb913a418065f2859

9 years agoMerge "ART: Fix compiler warning at arm/int_arm.cc:644"
Vladimir Marko [Mon, 19 Jan 2015 14:00:09 +0000 (14:00 +0000)]
Merge "ART: Fix compiler warning at arm/int_arm.cc:644"

9 years agoEnsure HCondition nodes on objects are either HEqual or HNotEqual
Roland Levillain [Mon, 19 Jan 2015 12:44:01 +0000 (12:44 +0000)]
Ensure HCondition nodes on objects are either HEqual or HNotEqual

Change-Id: I47efae209b7ab931d7d314e5b37582a7e21085d5

9 years agoART: Fix compiler warning at arm/int_arm.cc:644
Dmitry Petrochenko [Wed, 14 Jan 2015 09:54:20 +0000 (15:54 +0600)]
ART: Fix compiler warning at arm/int_arm.cc:644

Clang can report warning:
int_arm.cc:644:89: error: 'ops.art::ArmMir2Lir::EasyMultiplyOp::shift'
may be used uninitialized in this function
OpRegRegRegShift(kOpRsub, r_tmp1, r_src, r_src, EncodeShift(kArmLsl, ops[0].shift));

That warning becomes blocker for libart-compiler.so compilation.

This patch fixes the only case where 'shift' member was uninitialized.

Change-Id: I6428170994c9f97e7a3d85d752b97dfcdff0c8a4
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
9 years agoMerge "Checker cleanup"
David Brazdil [Mon, 19 Jan 2015 11:47:35 +0000 (11:47 +0000)]
Merge "Checker cleanup"

9 years agoMerge "Quick: Clean up optimization pass order."
Vladimir Marko [Mon, 19 Jan 2015 10:01:53 +0000 (10:01 +0000)]
Merge "Quick: Clean up optimization pass order."

9 years agoMerge "Constant fold after inlining."
Nicolas Geoffray [Mon, 19 Jan 2015 09:34:42 +0000 (09:34 +0000)]
Merge "Constant fold after inlining."

9 years agoConstant fold after inlining.
Nicolas Geoffray [Fri, 16 Jan 2015 12:35:40 +0000 (12:35 +0000)]
Constant fold after inlining.

- Inlining opens up new opportunities for constant folding.
- Fix a bug in constant folder where the result type was not
  correctly set for the folding of a HCompare.
- Improve graph checker's coverage.

Change-Id: I0943bf8ff65505c4addc4a555a526b55e00b5268

9 years agoMerge "Do not use STMP, it conflicts with the calling convention."
Nicolas Geoffray [Mon, 19 Jan 2015 09:10:53 +0000 (09:10 +0000)]
Merge "Do not use STMP, it conflicts with the calling convention."

9 years agoDo not use STMP, it conflicts with the calling convention.
Nicolas Geoffray [Fri, 16 Jan 2015 11:14:27 +0000 (11:14 +0000)]
Do not use STMP, it conflicts with the calling convention.

Hard-float calling convention uses S14 and D7 for argument passing,
so we cannot use them.

Change-Id: I77a2d8c875677640204baebc24355051aa4175fd

9 years agoMerge "Do not use register pair in a parallel move."
Nicolas Geoffray [Mon, 19 Jan 2015 08:39:36 +0000 (08:39 +0000)]
Merge "Do not use register pair in a parallel move."

9 years agoMerge "Adds the dexfuzz fuzzing tool to ART."
Andreas Gampe [Sat, 17 Jan 2015 00:52:39 +0000 (00:52 +0000)]
Merge "Adds the dexfuzz fuzzing tool to ART."

9 years agoChecker cleanup
David Brazdil [Fri, 16 Jan 2015 23:31:11 +0000 (23:31 +0000)]
Checker cleanup

Added a comment, removed unused temp directory code.

Change-Id: I3df87e801e72ccd5a87c7dbc67335e9936623560

9 years agoMerge "Fix infinite loop in GenerateIdentityHashCode"
Mathieu Chartier [Fri, 16 Jan 2015 21:37:15 +0000 (21:37 +0000)]
Merge "Fix infinite loop in GenerateIdentityHashCode"

9 years agoFix infinite loop in GenerateIdentityHashCode
tony.ys_liu [Fri, 16 Jan 2015 11:16:45 +0000 (19:16 +0800)]
Fix infinite loop in GenerateIdentityHashCode

Root Cause:
  If no one changes the seed, it will become infinite loop due to below condition
    (expected_value & LockWord::kHashMask) == 0

Solution:
  Changes the seed before entering the next loop

Added test.

Bug: 19046417

Change-Id: I7d1c377dd1bda780681514b24d61ebc776bc80ab

9 years agoMerge "Fix refs_and_args callee save order for Mips32."
Andreas Gampe [Fri, 16 Jan 2015 20:09:14 +0000 (20:09 +0000)]
Merge "Fix refs_and_args callee save order for Mips32."

9 years agoQuick: Clean up optimization pass order.
Vladimir Marko [Fri, 16 Jan 2015 16:04:43 +0000 (16:04 +0000)]
Quick: Clean up optimization pass order.

Move the TypeInference pass to post-opt passes and make it
a PassMEMirSsaRep as we need to rerun the pass if the SSA
representation has changed. (Though we currently don't have
any pass that would require it.)

The results of MethodUseCount and ConstantPropagation passes
are used only in the BBOptimization and codegen and stay
valid across BBOptimization and SuspendCheckElimination, so
move them out of post-opt passes to just before the BBOpt
(and reverse the dependency between ConstantPropagation and
init reg locations passes).

Change-Id: If02c087107cef48d5f9f7c18b0a0ace370fe2647

9 years agoAdd implicit null checks for the optimizing compiler
Calin Juravle [Thu, 8 Jan 2015 17:35:35 +0000 (17:35 +0000)]
Add implicit null checks for the optimizing compiler

- for backends: arm, arm64, x86, x86_64
- fixed parameter passing for CodeGenerator
- 003-omnibus-opcodes test verifies that NullPointerExceptions work as
expected

Change-Id: I1b302acd353342504716c9169a80706cf3aba2c8

9 years agoMerge "Fix comment referring to nonexistent ElementDeleter"
Richard Uhler [Fri, 16 Jan 2015 15:59:48 +0000 (15:59 +0000)]
Merge "Fix comment referring to nonexistent ElementDeleter"

9 years agoMerge "Add --no-clean to checker (keeps the generated files around)"
Calin Juravle [Fri, 16 Jan 2015 12:14:05 +0000 (12:14 +0000)]
Merge "Add --no-clean to checker (keeps the generated files around)"

9 years agoAdd --no-clean to checker (keeps the generated files around)
Calin Juravle [Fri, 16 Jan 2015 11:58:49 +0000 (11:58 +0000)]
Add --no-clean to checker (keeps the generated files around)

Change-Id: Iefef18f3456f79684077912e1f8b614d56e13ca6

9 years agoDo not use register pair in a parallel move.
Nicolas Geoffray [Fri, 16 Jan 2015 09:14:18 +0000 (09:14 +0000)]
Do not use register pair in a parallel move.

The ParallelMoveResolver does not work with pairs. Instead,
decompose the pair into two individual moves.

Change-Id: Ie9d3f0b078cef8dc20640c98b20bb20cc4971a7f

9 years agoMerge "Remove test that is now invalid."
Nicolas Geoffray [Fri, 16 Jan 2015 09:11:53 +0000 (09:11 +0000)]
Merge "Remove test that is now invalid."

9 years agoRemove test that is now invalid.
Nicolas Geoffray [Fri, 16 Jan 2015 09:04:49 +0000 (09:04 +0000)]
Remove test that is now invalid.

It does not make sense to have moves to the same destination
within a single parallel move. There is now an explicit
DCHECK to prevent these situations.

Change-Id: I3a33e748579ecb53b95476e77a37164d2f145f5a

9 years agoMerge "Fix a bug in the register allocator."
Nicolas Geoffray [Fri, 16 Jan 2015 08:41:30 +0000 (08:41 +0000)]
Merge "Fix a bug in the register allocator."

9 years agoFix a bug in the register allocator.
Nicolas Geoffray [Thu, 15 Jan 2015 15:37:37 +0000 (15:37 +0000)]
Fix a bug in the register allocator.

When allocating a register blocked by existing intervals,
we need to split inactive intervals at the end of their
lifetime hole, and not at the next intersection. Otherwise,
the allocation for following intervals will not see
that a register is being used by the split interval.

Change-Id: I40cc79dde541c07392a7cf4c6f0b291dd1ce1819

9 years agoMerge "ART: Mips64 runtime support"
Andreas Gampe [Fri, 16 Jan 2015 04:14:49 +0000 (04:14 +0000)]
Merge "ART: Mips64 runtime support"

9 years agoART: Mips64 runtime support
Andreas Gampe [Thu, 15 Jan 2015 20:10:47 +0000 (12:10 -0800)]
ART: Mips64 runtime support

Interpret-only Mips64 runtime support.

Change-Id: Iee22d0c8c77105d9b2f03a67dc4e09957fe0ab0a

9 years agoMerge "Increase default timeout"
Mathieu Chartier [Fri, 16 Jan 2015 02:10:06 +0000 (02:10 +0000)]
Merge "Increase default timeout"

9 years agoIncrease default timeout
Mathieu Chartier [Fri, 16 Jan 2015 01:23:16 +0000 (17:23 -0800)]
Increase default timeout

Bug: 19027813
Change-Id: I13af576dc3e980dc82e466435f41b322e2cd873e

9 years agoMerge "Print more info in MarkSweep::VerifyRoot"
Mathieu Chartier [Thu, 15 Jan 2015 20:27:09 +0000 (20:27 +0000)]
Merge "Print more info in MarkSweep::VerifyRoot"

9 years agoPrint more info in MarkSweep::VerifyRoot
Mathieu Chartier [Wed, 14 Jan 2015 22:55:47 +0000 (14:55 -0800)]
Print more info in MarkSweep::VerifyRoot

Refactored old root callback to use a new class called RootInfo.
RootInfo contains all the relevant info related to the root
associated with the callback. The MarkSweep::VerifyRoot function
now uses this info to print the StackVisitor's described location
if the GC root is of the type kRootJavaFrame.

Some other cleanup.

Example output:
E/art     (12167): Tried to mark 0x123 not contained by any spaces
E/art     (12167): Attempting see if it's a bad root
E/art     (12167): Found invalid root: 0x123 with type RootJavaFrame
E/art     (12167): Location=Visiting method
'void java.lang.Runtime.gc()' at dex PC 0xffffffff (native PC 0x0)
vreg=0

(cherry picked from commit 12f7423a2bb4bfab76700d84eb6d4338d211983a)

Bug: 18588862
Change-Id: Ic5a2781f704e931265ffb3621c2eab4b2e25f60f

9 years agoMerge "ART: Remove compiler invocation from Checker"
David Brazdil [Thu, 15 Jan 2015 19:35:38 +0000 (19:35 +0000)]
Merge "ART: Remove compiler invocation from Checker"

9 years agoMerge "ART: Allow to compile interpret-only mips64 files"
Andreas Gampe [Thu, 15 Jan 2015 19:34:25 +0000 (19:34 +0000)]
Merge "ART: Allow to compile interpret-only mips64 files"

9 years agoART: Allow to compile interpret-only mips64 files
Andreas Gampe [Wed, 14 Jan 2015 23:45:59 +0000 (15:45 -0800)]
ART: Allow to compile interpret-only mips64 files

Include enough infrastructure to allow cross-compiling for mips64,
interpret-only. This includes the instruction-set-features, frame
size info and utils assembler.

Also add a disassembler for oatdump, and support in patchoat.

Note: the runtime cannot run mips64, yet.

Change-Id: Id106581fa76b478984741c62a8a03be0f370d992

9 years agoMerge "ART: Optimizing compiler intrinsics"
Andreas Gampe [Thu, 15 Jan 2015 19:31:46 +0000 (19:31 +0000)]
Merge "ART: Optimizing compiler intrinsics"

9 years agoMerge "ART: Only run addr2line in abort thread dumps"
Andreas Gampe [Thu, 15 Jan 2015 18:42:15 +0000 (18:42 +0000)]
Merge "ART: Only run addr2line in abort thread dumps"

9 years agoART: Remove compiler invocation from Checker
David Brazdil [Thu, 15 Jan 2015 01:32:23 +0000 (01:32 +0000)]
ART: Remove compiler invocation from Checker

In anticipation of running Checker from run-test, this patch removes
code which compiles Java files as this will be handled by run-test.

It simultaneously adds support for verifying an entire directory of
annotated test files.

Change-Id: Id91c19c83fddade076c77789316d59f00893e63b

9 years agoART: Only run addr2line in abort thread dumps
Andreas Gampe [Thu, 15 Jan 2015 18:38:19 +0000 (10:38 -0800)]
ART: Only run addr2line in abort thread dumps

Avoid addr2line overhead for SIGQUIT and other thread dumps.

Bug: 18933933
Change-Id: I81bb291ede870d1d14b30bb0afdc47830ed14e8b

9 years agoMerge "Fix false alarm on thread suspend timeout"
Mathieu Chartier [Thu, 15 Jan 2015 18:32:47 +0000 (18:32 +0000)]
Merge "Fix false alarm on thread suspend timeout"

9 years agoFix comment referring to nonexistent ElementDeleter
Richard Uhler [Thu, 15 Jan 2015 18:27:22 +0000 (10:27 -0800)]
Fix comment referring to nonexistent ElementDeleter

Bug: 18809837
Change-Id: I40ad727907be505b7cb63f3c4bba7f395aaec727

9 years agoART: Optimizing compiler intrinsics
Andreas Gampe [Tue, 30 Dec 2014 01:43:08 +0000 (17:43 -0800)]
ART: Optimizing compiler intrinsics

Add intrinsics infrastructure to the optimizing compiler.

Add almost all intrinsics supported by Quick to the x86-64 backend.
Further intrinsics require more assembler support.

Change-Id: I48de9b44c82886bb298d16e74e12a9506b8e8807

9 years agoMerge "ART: Logging levels for Checker"
David Brazdil [Thu, 15 Jan 2015 17:21:56 +0000 (17:21 +0000)]
Merge "ART: Logging levels for Checker"

9 years agoMerge "[optimizing compiler] Compute live spill size"
Nicolas Geoffray [Thu, 15 Jan 2015 16:58:14 +0000 (16:58 +0000)]
Merge "[optimizing compiler] Compute live spill size"

9 years agoMerge "ART: Increase run-test 114 Java-level timeout"
Andreas Gampe [Thu, 15 Jan 2015 16:36:55 +0000 (16:36 +0000)]
Merge "ART: Increase run-test 114 Java-level timeout"

9 years ago[optimizing compiler] Compute live spill size
Mark Mendell [Tue, 13 Jan 2015 14:20:58 +0000 (09:20 -0500)]
[optimizing compiler] Compute live spill size

The current stack frame calculation assumes that each live register to
be saved/restored has the word size of the machine.  This fails for X86,
where a double in an XMM register takes up 8 bytes.  Change the
calculation to keep track of the number of core registers and number of
fp registers to handle this distinction.

This is slightly pessimal, as the registers may not be active at the
same time, but the only way to handle this would be to allocate both
classes of registers simultaneously, or remember all the active
intervals, matching them up and compute the size of each safepoint
interval.

Change-Id: If7860aa319b625c214775347728cdf49a56946eb
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
9 years agoART: Increase run-test 114 Java-level timeout
Andreas Gampe [Thu, 15 Jan 2015 16:02:22 +0000 (08:02 -0800)]
ART: Increase run-test 114 Java-level timeout

Increase the timeout to be larger than the run-test timeout. That
way ART will dump all threads when running the test on the host.

Change-Id: I842b056bba650e5c7c3293376a48d48b7468e73d

9 years agoMerge "ART: Allow scoped adjustments to log verbosity"
Andreas Gampe [Thu, 15 Jan 2015 15:53:01 +0000 (15:53 +0000)]
Merge "ART: Allow scoped adjustments to log verbosity"

9 years agoART: Allow scoped adjustments to log verbosity
Andreas Gampe [Thu, 15 Jan 2015 03:53:31 +0000 (19:53 -0800)]
ART: Allow scoped adjustments to log verbosity

Add ScopedLogSeverity to adjust the logging level.

Suppress warnings by default in gtests. Suppress errors in instances
where errors are expected.

Change-Id: If3ef865813e9505ab60bc90baed63ff11d90afbb

9 years agoMerge "Disable test for NDEBUG, it uses libarttest.so."
Nicolas Geoffray [Thu, 15 Jan 2015 08:44:56 +0000 (08:44 +0000)]
Merge "Disable test for NDEBUG, it uses libarttest.so."

9 years agoDisable test for NDEBUG, it uses libarttest.so.
Nicolas Geoffray [Thu, 15 Jan 2015 08:42:47 +0000 (08:42 +0000)]
Disable test for NDEBUG, it uses libarttest.so.

Change-Id: Ie275583aec421f3a40663ff44388a73e890ff894

9 years agoMerge "ART: Mac build fix for unused constant"
Andreas Gampe [Thu, 15 Jan 2015 04:10:37 +0000 (04:10 +0000)]
Merge "ART: Mac build fix for unused constant"

9 years agoART: Mac build fix for unused constant
Andreas Gampe [Thu, 15 Jan 2015 04:09:14 +0000 (20:09 -0800)]
ART: Mac build fix for unused constant

Change-Id: I77e70c877e8a3608555f128e0edf8784db178e86

9 years agoMerge "ART: Host timeout Mac build fix."
Andreas Gampe [Thu, 15 Jan 2015 02:39:45 +0000 (02:39 +0000)]
Merge "ART: Host timeout Mac build fix."

9 years agoART: Host timeout Mac build fix.
Andreas Gampe [Thu, 15 Jan 2015 02:35:01 +0000 (18:35 -0800)]
ART: Host timeout Mac build fix.

Mac fix for unsupported SIGRTMIN introduced in commit
038bb2252ed1d7132f45006507e389b7ba1617ce.

Bug: 18933933
Change-Id: I502cda51802d67f089c09240d89f71166ed56c6d

9 years agoMerge "ART: Simple structural class check"
Andreas Gampe [Thu, 15 Jan 2015 00:47:45 +0000 (00:47 +0000)]
Merge "ART: Simple structural class check"

9 years agoART: Logging levels for Checker
David Brazdil [Thu, 15 Jan 2015 00:40:56 +0000 (00:40 +0000)]
ART: Logging levels for Checker

Small patch which enables Checker to print errors but not info
messages as opposed to the current all or nothing. This is useful for
running Checker with run-test.

Change-Id: I500ded0db4f83ed9bbdef9c1f7b1eb18a90d7f0e

9 years agoART: Simple structural class check
Andreas Gampe [Fri, 7 Nov 2014 00:52:58 +0000 (16:52 -0800)]
ART: Simple structural class check

Adds a simple check to class-loading when the embedded dex file in
an oat file and the dex file on the class path where we found the
class do not match.

We require that the number of methods and fields do not change, as
that will almost certainly mean that quickened and other compiled
offsets are wrong now. This is a reasonably lightweight change, but
we should investigate a full comparison including name and type of
members.

Bug: 17937814
Bug: 18708951

(cherry picked from commit 15a33b3f88546bce85dcb9d28caf200da51154d7)

Change-Id: Icb9638bebd369ab23822817f4a97c8dd8625fea5

9 years agoMerge "ART: dex2oat flag for HGraphVisualizer dump file"
David Brazdil [Thu, 15 Jan 2015 00:02:31 +0000 (00:02 +0000)]
Merge "ART: dex2oat flag for HGraphVisualizer dump file"

9 years agoMerge "ART: Clean assembler_test disassemblies"
Andreas Gampe [Wed, 14 Jan 2015 23:27:23 +0000 (23:27 +0000)]
Merge "ART: Clean assembler_test disassemblies"

9 years agoMerge "ART: Dump all threads on test timeout"
Andreas Gampe [Wed, 14 Jan 2015 23:27:04 +0000 (23:27 +0000)]
Merge "ART: Dump all threads on test timeout"

9 years agoART: Dump all threads on test timeout
Andreas Gampe [Wed, 14 Jan 2015 03:48:14 +0000 (19:48 -0800)]
ART: Dump all threads on test timeout

Use SIGRTMIN+2 as a special signal to dump all threads similar to
SIGQUIT. Use nested timeouts to enforce a test timeout and dump
the threads in a deadlock.

Bug: 18933933
Change-Id: I4209047eeca07ff360d7c19922d5b5da64fd69a5

9 years agoMerge "ART: Fix indentation in Mips backend"
Andreas Gampe [Wed, 14 Jan 2015 20:19:09 +0000 (20:19 +0000)]
Merge "ART: Fix indentation in Mips backend"

9 years agoART: Fix indentation in Mips backend
Andreas Gampe [Wed, 14 Jan 2015 20:09:25 +0000 (12:09 -0800)]
ART: Fix indentation in Mips backend

Fix the indentation to be standard.

Change-Id: I39a16716be3429dfef6df0a585e24423b46363a2

9 years agoART: Clean assembler_test disassemblies
Andreas Gampe [Wed, 14 Jan 2015 20:03:36 +0000 (12:03 -0800)]
ART: Clean assembler_test disassemblies

Add a flag. Enable commented-out code.

Change-Id: Ife17b72f2b93c128992d757e58b0e51431a3edf8

9 years agoMerge "ART: Change ternary location for timeout"
Andreas Gampe [Wed, 14 Jan 2015 17:17:53 +0000 (17:17 +0000)]
Merge "ART: Change ternary location for timeout"

9 years agoART: Change ternary location for timeout
Andreas Gampe [Wed, 14 Jan 2015 17:06:32 +0000 (09:06 -0800)]
ART: Change ternary location for timeout

Make the decision for timeout length in the constant, not at the
use site.

Bug: 18964791
Change-Id: I73e6ef5e1c23fd515eaa61ba68236698d3e5c81a

9 years agoMerge "Use unique_ptr to track ownership of dex files."
Richard Uhler [Wed, 14 Jan 2015 16:00:55 +0000 (16:00 +0000)]
Merge "Use unique_ptr to track ownership of dex files."

9 years agoMerge "Remove constant moves after emitting them in parallel resolver."
Nicolas Geoffray [Wed, 14 Jan 2015 14:49:38 +0000 (14:49 +0000)]
Merge "Remove constant moves after emitting them in parallel resolver."

9 years agoRemove constant moves after emitting them in parallel resolver.
Nicolas Geoffray [Wed, 14 Jan 2015 10:45:05 +0000 (10:45 +0000)]
Remove constant moves after emitting them in parallel resolver.

This fixes the case where a constant move requires a scratch
register. Note that there is no backend that needs this for now,
but X86 might with the move to hard float.

Change-Id: I37f6b8961b48f2cf6fbc0cd281e70d58466d018e

9 years agoMerge "Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd."
Vladimir Marko [Wed, 14 Jan 2015 10:56:30 +0000 (10:56 +0000)]
Merge "Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd."

9 years agoMerge "Implement ParallelMoveResolver::Swap for doubles on arm."
Nicolas Geoffray [Wed, 14 Jan 2015 10:31:28 +0000 (10:31 +0000)]
Merge "Implement ParallelMoveResolver::Swap for doubles on arm."

9 years agoImplement ParallelMoveResolver::Swap for doubles on arm.
Nicolas Geoffray [Tue, 13 Jan 2015 18:04:41 +0000 (18:04 +0000)]
Implement ParallelMoveResolver::Swap for doubles on arm.

Currently reserve a global register DTMP for these operations.

Change-Id: Ie88b4696af51834492fd062082335bc2e1137be2

9 years agoFix false alarm on thread suspend timeout
tony.ys_liu [Wed, 14 Jan 2015 10:28:03 +0000 (18:28 +0800)]
Fix false alarm on thread suspend timeout

Root cause:
  CLOCK_REALTIME will jump backward/forward when system time-of-day clock is changed.
  It implies now_abs_ts will jump a lot across end_abs_ts.
  Then, it makes a false alarm (process crash) on thread suspend timeout when doing ComputeRelativeTimeSpec.

      if (ComputeRelativeTimeSpec(&rel_ts, end_abs_ts, now_abs_ts)) {
        return false;  // Timed out.
      }

Solution:
  Use CLOCK_MONOTONIC instead

Change-Id: I768af52b05ee1548bb291f7d5e2f389ec85e0e71

9 years agoFix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.
Vladimir Marko [Tue, 13 Jan 2015 17:34:28 +0000 (17:34 +0000)]
Fix wide volatile IGET/IPUT on ARM without atomic ldrd/strd.

If ldrd/strd isn't atomic, IPUT_WIDE uses ldrexd+strexd and
we need to record the safepoint for the ldrexd rather than
strexd. IGET_WIDE was simply missing the memory barrier.

Bug: 18993519
Change-Id: I4e9270b994f413c1a047c1c4bb9cce5f29e42cb4

9 years agoMerge "Remove whitespace."
Nicolas Geoffray [Wed, 14 Jan 2015 09:41:29 +0000 (09:41 +0000)]
Merge "Remove whitespace."

9 years agoRemove whitespace.
Nicolas Geoffray [Wed, 14 Jan 2015 09:40:32 +0000 (09:40 +0000)]
Remove whitespace.

Change-Id: I82f51cff87765a3aeeb861d2ae64978f2e762c73

9 years agoMerge "Skip r1 on arm if first parameter is a long."
Nicolas Geoffray [Wed, 14 Jan 2015 09:27:13 +0000 (09:27 +0000)]
Merge "Skip r1 on arm if first parameter is a long."

9 years agoMerge "JDWP: fix deadlock with GC"
Sebastien Hertz [Wed, 14 Jan 2015 08:37:47 +0000 (08:37 +0000)]
Merge "JDWP: fix deadlock with GC"

9 years agoMerge "Fix bootclasspath string initialization"
Sebastien Hertz [Wed, 14 Jan 2015 08:37:37 +0000 (08:37 +0000)]
Merge "Fix bootclasspath string initialization"

9 years agoMerge "ART: Fix mips typo"
Andreas Gampe [Wed, 14 Jan 2015 06:17:41 +0000 (06:17 +0000)]
Merge "ART: Fix mips typo"

9 years agoART: Fix mips typo
Andreas Gampe [Wed, 14 Jan 2015 06:16:40 +0000 (22:16 -0800)]
ART: Fix mips typo

Use the supplied memcmp16 assembly implementation.

Change-Id: I5a7d0b4d8c39cfbbc99720e151fd99d79cdbe0c4

9 years agoMerge "ART: Only give Clang warning when Clang is active"
Andreas Gampe [Wed, 14 Jan 2015 06:07:54 +0000 (06:07 +0000)]
Merge "ART: Only give Clang warning when Clang is active"

9 years agoMerge "ART: Introduce Mips32 R6"
Andreas Gampe [Wed, 14 Jan 2015 05:47:25 +0000 (05:47 +0000)]
Merge "ART: Introduce Mips32 R6"

9 years agoART: Introduce Mips32 R6
Andreas Gampe [Wed, 14 Jan 2015 00:41:53 +0000 (16:41 -0800)]
ART: Introduce Mips32 R6

Add an instruction-set feature for Mips R6. Currently restricted
to the interpreter.

Change-Id: Ic6d888e135bc87340229a0543dd94d0c1e863edd

9 years agoART: Only give Clang warning when Clang is active
Andreas Gampe [Wed, 14 Jan 2015 02:12:36 +0000 (18:12 -0800)]
ART: Only give Clang warning when Clang is active

Do not pollute output with Clang warning if we were supposed to
compile with Clang.

Change-Id: I1ee764dcfe0581e09a350cb01fdf0ba06dd18b56

9 years agoMerge "ART: Hprof cleanup"
Andreas Gampe [Wed, 14 Jan 2015 01:39:53 +0000 (01:39 +0000)]
Merge "ART: Hprof cleanup"

9 years agoUse unique_ptr to track ownership of dex files.
Richard Uhler [Tue, 23 Dec 2014 17:48:51 +0000 (09:48 -0800)]
Use unique_ptr to track ownership of dex files.

Bug: 18809837
Change-Id: Ie571eae8fc19ee9207390cff5c7e2a38071b126a

9 years agoMerge "ART: Use jalr instead of jr for Mips"
Andreas Gampe [Wed, 14 Jan 2015 00:26:20 +0000 (00:26 +0000)]
Merge "ART: Use jalr instead of jr for Mips"

9 years agoJDWP: fix deadlock with GC
Sebastien Hertz [Tue, 13 Jan 2015 21:48:34 +0000 (22:48 +0100)]
JDWP: fix deadlock with GC

This CL fixes a deadlock where JDWP thread and running GC thread are
waiting for each other. Here is the sequence of the deadlock:
1. GC thread disables access to weak global references, then releases
   mutator lock.
2. JDWP thread takes mutator lock exclusively after suspending all
   threads.
3. GC thread waits for shared mutator lock which is held by JDWP
   thread.
4. JDWP thread clears weak global references but need to wait for GC
   thread to re-enable access to them.

To avoid that situation, we ensure the JDWP thread does not attempt
to delete weak global references while holding the mutator
exclusively so GC thread is not blocked.

Bug: 18995321
Change-Id: Ia7e82f463c27ffdcfd730c3117337a6a33d111e7

9 years agoART: dex2oat flag for HGraphVisualizer dump file
David Brazdil [Tue, 13 Jan 2015 21:21:31 +0000 (21:21 +0000)]
ART: dex2oat flag for HGraphVisualizer dump file

This patch adds a new '--dump-cfg=<file>' flag to dex2oat which
specifies the file that HGraphVisualizer will store its output into.
Until now the graph was dumped to 'art.cfg' in the current working
directory. To make Checker work with run-test, the output directory
needs to be customizable.

Change-Id: I4a940f7708b88deea5a0e51d13aed13e52199349

9 years agoFix bootclasspath string initialization
Sebastien Hertz [Tue, 13 Jan 2015 09:10:40 +0000 (10:10 +0100)]
Fix bootclasspath string initialization

When running the runtime with an image without explicitly specifying
the bootclasspath (with the -Xbootclasspath option), we construct it
from the location of DEX files loaded from the image.

This allows to fix the JDWP test ClassPathsTest#testClassPaths001 on
the host where the bootclasspath is not explicitly specified on the
command line.

Bug: 18812378
Change-Id: I726eafd8b9e59dc9513beeb7082cf086fe89c4b1

9 years agoART: Use jalr instead of jr for Mips
Andreas Gampe [Tue, 13 Jan 2015 19:32:32 +0000 (11:32 -0800)]
ART: Use jalr instead of jr for Mips

Use the jalr instruction instead of jr in stubs and compiled code.

Change-Id: Idacc5167a5bb0113dc2e7716e4767e5ed07b5e0b