OSDN Git Service
Roland Levillain [Tue, 20 Jan 2015 10:52:51 +0000 (10:52 +0000)]
Merge "Ensure HCondition nodes on objects are either HEqual or HNotEqual"
David Brazdil [Tue, 20 Jan 2015 10:02:04 +0000 (10:02 +0000)]
Merge "ART: 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
David Brazdil [Tue, 20 Jan 2015 08:54:09 +0000 (08:54 +0000)]
Merge "ART: Invoke Checker from run-test scripts"
Nicolas Geoffray [Mon, 19 Jan 2015 17:36:23 +0000 (17:36 +0000)]
Merge "Address 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
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
Vladimir Marko [Mon, 19 Jan 2015 14:00:09 +0000 (14:00 +0000)]
Merge "ART: Fix compiler warning at arm/int_arm.cc:644"
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
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>
David Brazdil [Mon, 19 Jan 2015 11:47:35 +0000 (11:47 +0000)]
Merge "Checker cleanup"
Vladimir Marko [Mon, 19 Jan 2015 10:01:53 +0000 (10:01 +0000)]
Merge "Quick: Clean up optimization pass order."
Nicolas Geoffray [Mon, 19 Jan 2015 09:34:42 +0000 (09:34 +0000)]
Merge "Constant 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
Nicolas Geoffray [Mon, 19 Jan 2015 09:10:53 +0000 (09:10 +0000)]
Merge "Do 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
Nicolas Geoffray [Mon, 19 Jan 2015 08:39:36 +0000 (08:39 +0000)]
Merge "Do not use register pair in a parallel move."
Andreas Gampe [Sat, 17 Jan 2015 00:52:39 +0000 (00:52 +0000)]
Merge "Adds the dexfuzz fuzzing tool to ART."
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
Mathieu Chartier [Fri, 16 Jan 2015 21:37:15 +0000 (21:37 +0000)]
Merge "Fix 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
Andreas Gampe [Fri, 16 Jan 2015 20:09:14 +0000 (20:09 +0000)]
Merge "Fix refs_and_args callee save order for Mips32."
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
Richard Uhler [Fri, 16 Jan 2015 15:59:48 +0000 (15:59 +0000)]
Merge "Fix comment referring to nonexistent ElementDeleter"
Calin Juravle [Fri, 16 Jan 2015 12:14:05 +0000 (12:14 +0000)]
Merge "Add --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
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
Nicolas Geoffray [Fri, 16 Jan 2015 09:11:53 +0000 (09:11 +0000)]
Merge "Remove 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
Nicolas Geoffray [Fri, 16 Jan 2015 08:41:30 +0000 (08:41 +0000)]
Merge "Fix 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
Andreas Gampe [Fri, 16 Jan 2015 04:14:49 +0000 (04:14 +0000)]
Merge "ART: 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
Mathieu Chartier [Fri, 16 Jan 2015 02:10:06 +0000 (02:10 +0000)]
Merge "Increase default timeout"
Mathieu Chartier [Fri, 16 Jan 2015 01:23:16 +0000 (17:23 -0800)]
Increase default timeout
Bug:
19027813
Change-Id: I13af576dc3e980dc82e466435f41b322e2cd873e
Mathieu Chartier [Thu, 15 Jan 2015 20:27:09 +0000 (20:27 +0000)]
Merge "Print 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
David Brazdil [Thu, 15 Jan 2015 19:35:38 +0000 (19:35 +0000)]
Merge "ART: Remove compiler invocation from Checker"
Andreas Gampe [Thu, 15 Jan 2015 19:34:25 +0000 (19:34 +0000)]
Merge "ART: 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
Andreas Gampe [Thu, 15 Jan 2015 19:31:46 +0000 (19:31 +0000)]
Merge "ART: Optimizing compiler intrinsics"
Andreas Gampe [Thu, 15 Jan 2015 18:42:15 +0000 (18:42 +0000)]
Merge "ART: Only run addr2line in abort thread dumps"
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
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
Mathieu Chartier [Thu, 15 Jan 2015 18:32:47 +0000 (18:32 +0000)]
Merge "Fix false alarm on thread suspend timeout"
Richard Uhler [Thu, 15 Jan 2015 18:27:22 +0000 (10:27 -0800)]
Fix comment referring to nonexistent ElementDeleter
Bug:
18809837
Change-Id: I40ad727907be505b7cb63f3c4bba7f395aaec727
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
David Brazdil [Thu, 15 Jan 2015 17:21:56 +0000 (17:21 +0000)]
Merge "ART: Logging levels for Checker"
Nicolas Geoffray [Thu, 15 Jan 2015 16:58:14 +0000 (16:58 +0000)]
Merge "[optimizing compiler] Compute live spill size"
Andreas Gampe [Thu, 15 Jan 2015 16:36:55 +0000 (16:36 +0000)]
Merge "ART: Increase run-test 114 Java-level timeout"
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>
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
Andreas Gampe [Thu, 15 Jan 2015 15:53:01 +0000 (15:53 +0000)]
Merge "ART: 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
Nicolas Geoffray [Thu, 15 Jan 2015 08:44:56 +0000 (08:44 +0000)]
Merge "Disable 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
Andreas Gampe [Thu, 15 Jan 2015 04:10:37 +0000 (04:10 +0000)]
Merge "ART: 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
Andreas Gampe [Thu, 15 Jan 2015 02:39:45 +0000 (02:39 +0000)]
Merge "ART: 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
Andreas Gampe [Thu, 15 Jan 2015 00:47:45 +0000 (00:47 +0000)]
Merge "ART: Simple structural class check"
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
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
David Brazdil [Thu, 15 Jan 2015 00:02:31 +0000 (00:02 +0000)]
Merge "ART: dex2oat flag for HGraphVisualizer dump file"
Andreas Gampe [Wed, 14 Jan 2015 23:27:23 +0000 (23:27 +0000)]
Merge "ART: Clean assembler_test disassemblies"
Andreas Gampe [Wed, 14 Jan 2015 23:27:04 +0000 (23:27 +0000)]
Merge "ART: 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
Andreas Gampe [Wed, 14 Jan 2015 20:19:09 +0000 (20:19 +0000)]
Merge "ART: 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
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
Andreas Gampe [Wed, 14 Jan 2015 17:17:53 +0000 (17:17 +0000)]
Merge "ART: 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
Richard Uhler [Wed, 14 Jan 2015 16:00:55 +0000 (16:00 +0000)]
Merge "Use unique_ptr to track ownership of dex files."
Nicolas Geoffray [Wed, 14 Jan 2015 14:49:38 +0000 (14:49 +0000)]
Merge "Remove 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
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."
Nicolas Geoffray [Wed, 14 Jan 2015 10:31:28 +0000 (10:31 +0000)]
Merge "Implement 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
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
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
Nicolas Geoffray [Wed, 14 Jan 2015 09:41:29 +0000 (09:41 +0000)]
Merge "Remove whitespace."
Nicolas Geoffray [Wed, 14 Jan 2015 09:40:32 +0000 (09:40 +0000)]
Remove whitespace.
Change-Id: I82f51cff87765a3aeeb861d2ae64978f2e762c73
Nicolas Geoffray [Wed, 14 Jan 2015 09:27:13 +0000 (09:27 +0000)]
Merge "Skip r1 on arm if first parameter is a long."
Sebastien Hertz [Wed, 14 Jan 2015 08:37:47 +0000 (08:37 +0000)]
Merge "JDWP: fix deadlock with GC"
Sebastien Hertz [Wed, 14 Jan 2015 08:37:37 +0000 (08:37 +0000)]
Merge "Fix bootclasspath string initialization"
Andreas Gampe [Wed, 14 Jan 2015 06:17:41 +0000 (06:17 +0000)]
Merge "ART: 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
Andreas Gampe [Wed, 14 Jan 2015 06:07:54 +0000 (06:07 +0000)]
Merge "ART: Only give Clang warning when Clang is active"
Andreas Gampe [Wed, 14 Jan 2015 05:47:25 +0000 (05:47 +0000)]
Merge "ART: 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
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
Andreas Gampe [Wed, 14 Jan 2015 01:39:53 +0000 (01:39 +0000)]
Merge "ART: Hprof cleanup"
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
Andreas Gampe [Wed, 14 Jan 2015 00:26:20 +0000 (00:26 +0000)]
Merge "ART: Use jalr instead of jr for Mips"
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
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
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
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
Hiroshi Yamauchi [Tue, 13 Jan 2015 19:21:10 +0000 (19:21 +0000)]
Merge "Follow up on CL 122665."
Hiroshi Yamauchi [Mon, 12 Jan 2015 20:11:05 +0000 (12:11 -0800)]
Follow up on CL 122665.
We now do the two-step memory protection strategy (first protect the
from space with PROT_READ and later protect it with PROT_NONE) only if
the from space is a rosalloc space (excluding the more common bump
pointer space case). This strengthens the GC verification for the bump
pointer space case as we avoid the case where mutators run while the
from space is PROT_READ rather than PROT_NONE.
Add a command line flag to override the minimum interval for the
hspace compaction for OOM and set it to zero in the gcstress/gcverify
run-tests to run the hspace compaction more frequently in tests.
Fix some comments.
Bug:
18960494
Change-Id: I518b011e026f578e53c4ec269cfb82865b0fae68