OSDN Git Service
David Brazdil [Mon, 29 Dec 2014 15:35:02 +0000 (15:35 +0000)]
ART: Refactored VisualizerPrinter visitor pattern
This patch refactors the visitor pattern in HGraphVisualizerPrinter
to output instruction-specific details.
Change-Id: Icfed9cd844b973025337a6bb584e1bc88f1ddd58
Andreas Gampe [Mon, 22 Dec 2014 21:47:15 +0000 (21:47 +0000)]
Merge "ART: Fix verification of constructors."
Andreas Gampe [Mon, 22 Dec 2014 21:45:47 +0000 (21:45 +0000)]
Merge "ART: Fix common_compiler_test assumptions"
Andreas Gampe [Mon, 22 Dec 2014 21:43:33 +0000 (13:43 -0800)]
ART: Fix common_compiler_test assumptions
JNI-compiled methods now do not have mapping tables or GC maps,
not even zero-sized. Update the code in common_compiler_test.
Bug:
18596910
Change-Id: If22bf1b2e369273148f060b0b1ffc02b2b1ef608
Stephen Kyle [Wed, 17 Dec 2014 17:10:02 +0000 (17:10 +0000)]
ART: Fix verification of constructors.
Summary:
A constructor must call its superclass constructor. However, if one
replaces the invoke-direct superclass.<init>() instruction with a
variety of instructions, the verifier would NOT complain that the
superclass constructor hadn't been called.
Detailed explanation:
This was because if we are verifying the return-void insn of a
constructor, then we check that the register line doesn't contain a
register with an UninitializedThis type. With a method like follows:
Class.<init>()V:
return-void
Then we hit the return-void, see the UninitializedThis, and fail the
method. However, with a method like follows:
Class.<init>()V:
nop
return-void
Any insn that continues or branches onto a return-void instruction will
mark all of the registers as Conflict. This meant that the check in
return-void for an UninitializedThis residing the register line would
_always_ pass if there were any insns before it - the entire line had
been set to Conflict.
The fix is to bring the check for an UninitializedThis forward to the
point just before we set all registers to Conflict, if we're about to
hit a return-void insn in a constructor. It still needs to be done
again in the verification of return-void itself, to avoid the solo
return-void case.
This patch also deals with the case where the only remaining
UninitializedThis reference is overwritten, to avoid a method like the
following from getting through verification:
Class.<init>()V:
const/4 v0, 0
return-void
Bug:
18800943
Change-Id: I2e317261844d3b6c78e35228669f3da173316570
Fuzzed-With: https://android-review.googlesource.com/#/c/119463/
Andreas Gampe [Mon, 22 Dec 2014 21:07:46 +0000 (21:07 +0000)]
Merge "ART: Mac build fix"
Andreas Gampe [Mon, 22 Dec 2014 21:06:44 +0000 (13:06 -0800)]
ART: Mac build fix
Unused parameter on Mac.
Bug:
18596910
Change-Id: If0fab0b58173997d584fcdce195361d792f1098d
Andreas Gampe [Mon, 22 Dec 2014 19:33:15 +0000 (19:33 +0000)]
Merge "ART: Do not compile swap file functionality on Mac"
Andreas Gampe [Fri, 19 Dec 2014 20:04:06 +0000 (12:04 -0800)]
ART: Do not compile swap file functionality on Mac
Bug:
18596910
(cherry picked from commit
8a9f0049821803051201edebc6d9a0f0639756c3)
Change-Id: Ic06429f41840ce318cfaa837efecc69c2076440e
Andreas Gampe [Mon, 22 Dec 2014 18:30:07 +0000 (18:30 +0000)]
Merge "ART: Swap-space in the compiler"
Andreas Gampe [Tue, 9 Dec 2014 00:59:43 +0000 (16:59 -0800)]
ART: Swap-space in the compiler
Introduce a swap-space and corresponding allocator to transparently
switch native allocations to memory backed by a file.
Bug:
18596910
(cherry picked from commit
62746d8d9c4400e4764f162b22bfb1a32be287a9)
Change-Id: I131448f3907115054a592af73db86d2b9257ea33
Andreas Gampe [Mon, 22 Dec 2014 17:43:36 +0000 (17:43 +0000)]
Merge "ART: Do not JNI abort on nullptr GetObjectRefType"
Andreas Gampe [Sat, 20 Dec 2014 08:08:35 +0000 (00:08 -0800)]
ART: Do not JNI abort on nullptr GetObjectRefType
A nullptr is a valid input, as it is different from a null reference.
Bug:
18820997
Change-Id: Ibda8907ba13b20d2055049492a356ffdf4ddc714
Andreas Gampe [Sat, 20 Dec 2014 07:25:59 +0000 (07:25 +0000)]
Merge "ART: Use interpret-only for vmSafeMode"
Andreas Gampe [Fri, 19 Dec 2014 17:53:27 +0000 (09:53 -0800)]
ART: Use interpret-only for vmSafeMode
Set the compiler filter when the zygote tells us that the app is
in vmSafeMode. This ensures that secondary dex files will also be
compiled interpret-only.
Bug:
18812762
(cherry picked from commit
44893692bfb25ceb5c7c5b2e5c606948fbdea298)
Change-Id: Idb61870beebe2eeb5b11554f95ea6a725c77f16a
Mathieu Chartier [Sat, 20 Dec 2014 02:01:01 +0000 (02:01 +0000)]
Merge "Add heap task processor"
Mathieu Chartier [Thu, 18 Dec 2014 01:56:03 +0000 (17:56 -0800)]
Add heap task processor
The heap task processor processes async tasks which may be delayed.
The motivation for this change is preventing deadlocks which
can occur when the daemon threads get suspended by GetThreadStack.
Other improvements, reduces daemon thread count by one.
Cleaner pending transition VS heap trimming logic.
Bug:
18739541
Change-Id: Idab52b2d9661a6385cada74b93ff297ddc55fc78
Vladimir Marko [Fri, 19 Dec 2014 22:54:57 +0000 (22:54 +0000)]
Merge "Fix running out of temps when storing invoke-interface result."
Vladimir Marko [Fri, 19 Dec 2014 19:27:26 +0000 (19:27 +0000)]
Fix running out of temps when storing invoke-interface result.
On ARM, after emitting invoke-interface we didn't have any
free temps to use for storing the result, so we would crash
if the result was an unpromoted dalvik register with stack
location too far from SP.
Bug:
18769895
(cherry picked from commit
d6bd06c713e8ec69de96510ef57bdf7adb4781ed)
Change-Id: Id88f6f3788eaf6ecbc7bd68880b445423f6e4f94
Hiroshi Yamauchi [Fri, 19 Dec 2014 20:16:12 +0000 (20:16 +0000)]
Merge "Pass the real capacity to CreateRosAlloc."
Vladimir Marko [Fri, 19 Dec 2014 18:17:26 +0000 (18:17 +0000)]
Merge "Move two members out of MIRGraph::temp_::ssa."
Vladimir Marko [Fri, 19 Dec 2014 18:11:35 +0000 (18:11 +0000)]
Move two members out of MIRGraph::temp_::ssa.
It turns out they are used outside the SSA transformation
by the x86 back-end.
This is a partial revert of
https://android-review.googlesource.com/120571
Change-Id: Ia5cb2988ab0625d8519901124bd4fc184d5f0886
Bill Buzbee [Fri, 19 Dec 2014 17:59:51 +0000 (17:59 +0000)]
Merge "ART: Implement FP packed reduce for x86"
Vladimir Marko [Fri, 19 Dec 2014 16:21:08 +0000 (16:21 +0000)]
Merge "Clean up dead loops before suspend check elimination."
Vladimir Marko [Fri, 19 Dec 2014 15:34:09 +0000 (15:34 +0000)]
Merge "Clean up post-opt passes, perform only those we need."
Vladimir Marko [Fri, 19 Dec 2014 10:29:51 +0000 (10:29 +0000)]
Clean up dead loops before suspend check elimination.
Get rid of BasicBlock::KillUnreachable() and just Kill()
unreachable blocks from the DFS order calculation.
Bug:
18718277
Change-Id: Icaf7b9c2320530e950f87e1e2e2bd1fa5f53cb98
Vladimir Marko [Fri, 19 Dec 2014 14:32:07 +0000 (14:32 +0000)]
Merge "Clean up MIRGraph::CanThrow()."
Vladimir Marko [Thu, 18 Dec 2014 17:01:02 +0000 (17:01 +0000)]
Clean up MIRGraph::CanThrow().
Merge with the code from CombineBlocks().
Change-Id: I73c71286acba1b6042f85f0bd19c525450ce9c05
Vladimir Marko [Thu, 18 Dec 2014 17:05:58 +0000 (17:05 +0000)]
Clean up post-opt passes, perform only those we need.
Change-Id: If802074d780d91151d236ef52236b6f33ca47258
Calin Juravle [Fri, 19 Dec 2014 10:51:16 +0000 (10:51 +0000)]
Merge "Fixed CanBeMoved for field access"
Calin Juravle [Fri, 19 Dec 2014 10:50:19 +0000 (10:50 +0000)]
Fixed CanBeMoved for field access
Change-Id: I36a1f4a468f3701e0608d71f64d64049c54aec18
Calin Juravle [Fri, 19 Dec 2014 10:11:25 +0000 (10:11 +0000)]
Merge "[optimizing compiler] Add support for volatile"
Calin Juravle [Tue, 16 Dec 2014 17:02:57 +0000 (17:02 +0000)]
[optimizing compiler] Add support for volatile
- for backends: arm, x86, x86_64
- added necessary instructions to assemblies
- clean up code gen for field set/get
- fixed InstructionDataEquals for some instructions
- fixed comments in compiler_enums
* 003-opcode test verifies basic volatile functionality
Change-Id: I144393efa312dfb2c332cb84056b00edffee338a
Hiroshi Yamauchi [Fri, 19 Dec 2014 05:19:24 +0000 (21:19 -0800)]
Pass the real capacity to CreateRosAlloc.
Bug:
18808732
Change-Id: Id563eb22e8d571c0ef032628b6ba2f3d357fd002
Mathieu Chartier [Fri, 19 Dec 2014 02:32:37 +0000 (02:32 +0000)]
Merge "Only dump suspend all histogram if we have samples"
Mathieu Chartier [Fri, 19 Dec 2014 02:24:39 +0000 (18:24 -0800)]
Only dump suspend all histogram if we have samples
Helps fix gcstress ThreadStress.
Bug:
18576985
Change-Id: Ibebc0fed8a21e7b149f4b6e5154fb86deddcc68f
Andreas Gampe [Fri, 19 Dec 2014 01:43:30 +0000 (01:43 +0000)]
Merge "ART: Fix oatdump"
Vladimir Marko [Thu, 18 Dec 2014 20:02:38 +0000 (20:02 +0000)]
Merge "Fix Thumb2 Emit16BitAddSub() to keep full immediate."
Vladimir Marko [Thu, 18 Dec 2014 19:56:49 +0000 (19:56 +0000)]
Fix Thumb2 Emit16BitAddSub() to keep full immediate.
Change-Id: I2d4b44752150669119ead16e99f7d7a945d2e88f
Nicolas Geoffray [Thu, 18 Dec 2014 17:46:12 +0000 (17:46 +0000)]
Merge "Revert "Don't block quick callee saved registers for optimizing.""
Nicolas Geoffray [Thu, 18 Dec 2014 17:45:56 +0000 (17:45 +0000)]
Revert "Don't block quick callee saved registers for optimizing."
X64 has one libcore test failing, and codegen_test on
arm is failing.
This reverts commit
6004796d6c630696127df2494dcd4f30d1367a34.
Change-Id: I20e00431fa18e11ce4c0cb6fffa91977fa8e9b4f
Vladimir Marko [Thu, 18 Dec 2014 15:53:02 +0000 (15:53 +0000)]
Merge "Fix Thumb2 assembler to emit 16-bit add/sub SP, #imm."
Nicolas Geoffray [Thu, 18 Dec 2014 15:50:20 +0000 (15:50 +0000)]
Merge "Explicitly compile core.oat with the Quick compiler."
Nicolas Geoffray [Thu, 18 Dec 2014 15:49:52 +0000 (15:49 +0000)]
Merge "Don't block quick callee saved registers for optimizing."
Nicolas Geoffray [Mon, 15 Dec 2014 00:01:18 +0000 (00:01 +0000)]
Don't block quick callee saved registers for optimizing.
This change builds on:
https://android-review.googlesource.com/#/c/118983/
- Also fix x86_64 assembler bug triggered by this change.
- Fix (and improve) x86's backend byte register usage.
- Fix a bug in baseline register allocator: a fixed
out register must prevent inputs from allocating it.
Change-Id: I4883862e29b4e4b6470f1823cf7eab7e7863d8ad
Vladimir Marko [Tue, 16 Dec 2014 17:41:59 +0000 (17:41 +0000)]
Fix Thumb2 assembler to emit 16-bit add/sub SP, #imm.
Also allow 16-bit add rN, SP, #imm.
Change-Id: I50100ad0b0e19a1c855a2319615e86d7a2b66a69
Nicolas Geoffray [Thu, 18 Dec 2014 12:59:03 +0000 (12:59 +0000)]
Merge "When inlining, also look whether we can allocate registers."
Nicolas Geoffray [Wed, 17 Dec 2014 23:21:58 +0000 (23:21 +0000)]
When inlining, also look whether we can allocate registers.
arm and x86 currently don't allocate registers for floating point
and long operations, so we can't inline methods with these operations.
Change-Id: I11e4b97ddbe90f4978f2abe1081fb0f849acb811
Sebastien Hertz [Thu, 18 Dec 2014 08:43:14 +0000 (08:43 +0000)]
Merge "Use correct handle scope offset from StackVisitor"
Sebastien Hertz [Wed, 17 Dec 2014 19:02:50 +0000 (20:02 +0100)]
Use correct handle scope offset from StackVisitor
Bug:
18785293
Change-Id: I10e144cffac00978e3c84d43a30caccd61559b27
Sebastien Hertz [Thu, 18 Dec 2014 08:16:26 +0000 (08:16 +0000)]
Merge "Cleanup JDWP event matching"
Hiroshi Yamauchi [Thu, 18 Dec 2014 05:34:54 +0000 (05:34 +0000)]
Merge "Fix a race condition during the rosalloc verification."
Andreas Gampe [Thu, 18 Dec 2014 04:40:11 +0000 (20:40 -0800)]
ART: Fix oatdump
Refactor and modify cmdline.h to allow oatdump to run without a
Runtime.
Bug:
18789891
Change-Id: I1d7a1585e3672d04e58dbac9a4d4bd835c1c9143
Mathieu Chartier [Thu, 18 Dec 2014 03:51:42 +0000 (03:51 +0000)]
Merge "Fix concurrent GC ergonomics"
Hiroshi Yamauchi [Wed, 17 Dec 2014 23:49:56 +0000 (15:49 -0800)]
Fix a race condition during the rosalloc verification.
Since an exiting thread could revoke its thread-local runs without
holding the mutator lock, when rosalloc verification is running at a
pause, the thread could concurrently modify runs and cause a race
condition/verification check failure.
Now an exiting thread acquires the mutator lock when it revokes its
thread-local runs, which should avoid the race condition.
Bug:
18734151
Bug:
18577084
Change-Id: Ic8af558b96dff6fb6f5ace65351e2824a6ff4629
Andreas Gampe [Thu, 18 Dec 2014 02:57:43 +0000 (02:57 +0000)]
Merge "ART: Punt to the interpreter for VerifiedMethod errors"
Andreas Gampe [Wed, 17 Dec 2014 22:35:46 +0000 (14:35 -0800)]
ART: Punt to the interpreter for VerifiedMethod errors
In case that the GC map can't be created (because of size restrictions),
do not fail the class. Instead punt to the interpreter.
Bug:
17791183
(cherry picked from commit
f535c69f115c61ffadca1bd2706244d0aa30f9aa)
Change-Id: I348bb306dbfc85c235fa93c0c527fba6627551fe
Mathieu Chartier [Wed, 17 Dec 2014 02:49:31 +0000 (18:49 -0800)]
Fix concurrent GC ergonomics
Fixed a race with the gc_request_pending_ boolean which would cause
two concurrent GCs to start in a row in most cases. This broke sticky
CMS ergonomics since the second GC was a sticky CMS which started way
too early resulting in low throughput. Since the throughput was low,
it switch to partial / full for the next iteration.
The race happened as follows, allocating thread would request
concurrent GC which woke up the daemon thread. The daemon thread
cleared the gc_request_pending_ boolean, but before we set the
concurrent_start_bytes_ to max in to prevent more request, the
allocating thread would call RequestConcurrentGC again. This caused
the next WaitForConcurrentGCRequest to return right away and a
concurrent GC to occur earlier than necessary.
Changed the allocation rate ergonomics to use allocation rate
during the GC instead of allocation rate inbetween GCs, this is
better since the allocation rate may become slower if the GC steals
mutator time, resulting in concurrent GCs starting a bit earlier
than they need to.
Fixed a bug in GrowForUtilization where we didn't use the adjusted
max_free when we shrank down the heap, this caused the sticky CMS to
occasionally shrink the heap more than necessary.
EvaluateAndApplyChanges:
Before: ~12.6s GC time
After: ~7.75s GC time
Change-Id: I354bc825b3c44ccfbfe867af0d437b17fe1fe022
Mathieu Chartier [Thu, 18 Dec 2014 00:17:22 +0000 (00:17 +0000)]
Merge "Add thread suspend histogram"
Mathieu Chartier [Wed, 17 Dec 2014 22:56:47 +0000 (14:56 -0800)]
Add thread suspend histogram
Helps measure time to suspend.
Example output (maps after a few seconds):
suspend all histogram: Sum: 2.806ms 99% C.I. 2us-1090.560us Avg: 43.843us Max: 1126us
Change-Id: I7bd9dd3b401fb3e3059e8718556d60910e541611
Igor Murashkin [Wed, 17 Dec 2014 22:04:19 +0000 (22:04 +0000)]
Merge "Add a new imgdiag tool to diff boot.art/core.art against a process"
Mathieu Chartier [Wed, 17 Dec 2014 19:13:39 +0000 (19:13 +0000)]
Merge "Add systrace events to monitors and thread suspension"
Mathieu Chartier [Wed, 17 Dec 2014 18:13:30 +0000 (10:13 -0800)]
Add systrace events to monitors and thread suspension
Added systrace events to SuspendThreadByPeer, SuspendThreadByThreadId
and monitor contention.
Bug:
18379850
Bug:
17470248
Change-Id: I29eaf97c67361a6c6b437940b8729600d78696df
Sebastien Hertz [Wed, 17 Dec 2014 18:59:44 +0000 (18:59 +0000)]
Merge "JDWP: fix setting multiple breakpoints in the same method"
Nicolas Geoffray [Wed, 17 Dec 2014 17:13:35 +0000 (17:13 +0000)]
Merge "Now that GraphChecker has a state, don't re-use it."
Nicolas Geoffray [Wed, 17 Dec 2014 17:10:47 +0000 (17:10 +0000)]
Now that GraphChecker has a state, don't re-use it.
Otherwise, we'll see the same ids twice.
Change-Id: Ic9bb801629ff90cc788248528d5260aaaff73675
Sebastien Hertz [Wed, 17 Dec 2014 15:35:50 +0000 (16:35 +0100)]
JDWP: fix setting multiple breakpoints in the same method
When setting multiple breakpoints in the same method, we were
incorrectly setting the deoptimization kind of all the breakpoints
set after a first breakpoint. This resulted in incorrect
deoptimization/undeoptimization and even an abort. This was caught
by running the debugger with sanity checks enabled with libartd.so.
We now set next breakpoints with the deoptimization kind of the first
existing breakpoint (if any) so we trigger right [un]deoptimization
when adding or removing a breakpoint.
Bug:
18782753
Bug:
18651686
Change-Id: Idf36ede73302fba83a154052bef701bedc8bc726
Nicolas Geoffray [Wed, 17 Dec 2014 16:18:23 +0000 (16:18 +0000)]
Merge "Fix ids and remove invoke when inlining."
David Brazdil [Wed, 17 Dec 2014 16:05:08 +0000 (16:05 +0000)]
Merge "ART: Added Checker, a pattern matching test engine"
David Brazdil [Mon, 1 Dec 2014 17:04:16 +0000 (17:04 +0000)]
ART: Added Checker, a pattern matching test engine
This patch adds a Python script which implements a domain-specific
mini-language similar to that of LLVM's FileCheck. It is primarily
intended for writing tests for the optimizing compiler but could be
configured for other use cases too. It is implemented from scratch in
order to avoid dependency on LLVM.
Checker tests are written in Java and dex2oat is invoked with a flag
which dumps the CFG before and after each pass of the optimizing
compiler. The output is then compared against assertions in the
test's comments parsed by Checker. See comments in tools/checker.py
for more details about the currently supported language features.
This initial CL implements only one type of assertion - whether the
output contains lines matching a desired pattern in the given order -
but supports both plain text and regex matching and allows for
equivalency testing by matching for the outcome of a previous match.
See the tests in compiler/optimizing/test/ConstantFolding.java for
examples.
Change-Id: I1ad7431b399c38dc0391ccee74d2c643ba0b0675
Nicolas Geoffray [Wed, 17 Dec 2014 15:33:21 +0000 (15:33 +0000)]
Merge "Test sometimes timeouts with vogar."
Nicolas Geoffray [Wed, 17 Dec 2014 15:27:14 +0000 (15:27 +0000)]
Test sometimes timeouts with vogar.
Change-Id: I9091a2a86c82173fa45ff9e3d1770d3891375546
Nicolas Geoffray [Wed, 17 Dec 2014 10:13:46 +0000 (10:13 +0000)]
Fix ids and remove invoke when inlining.
Bugs found by Razvan Lupusoru.
Change-Id: I3a5a9af280d8700d18f52abb4a2cff0e3a9aac74
Nicolas Geoffray [Wed, 17 Dec 2014 12:34:15 +0000 (12:34 +0000)]
Explicitly compile core.oat with the Quick compiler.
Change-Id: Id9e301268a75f6002855c690c9324bbcbee3ed6e
Nicolas Geoffray [Wed, 17 Dec 2014 12:25:25 +0000 (12:25 +0000)]
Merge "Revert "Small optimization for recursive calls: avoid dex cache.""
Nicolas Geoffray [Wed, 17 Dec 2014 12:25:12 +0000 (12:25 +0000)]
Revert "Small optimization for recursive calls: avoid dex cache."
Fails on target.
This reverts commit
390f59f9bec64fd81b05e796dfaeb03ab6d4cc81.
Change-Id: Ic3865b8897068ba20df0fbc2bcf561faf6c290c1
Nicolas Geoffray [Wed, 17 Dec 2014 11:55:20 +0000 (11:55 +0000)]
Merge "Small optimization for recursive calls: avoid dex cache."
Nicolas Geoffray [Fri, 12 Dec 2014 19:22:03 +0000 (19:22 +0000)]
Small optimization for recursive calls: avoid dex cache.
Change-Id: Ic4054b6c38f0a2a530ba6ef747647f86cee0b1b8
Sebastien Hertz [Wed, 22 Oct 2014 08:57:10 +0000 (10:57 +0200)]
Cleanup JDWP event matching
* Use std::vector for the event match list.
* Make event reporting methods void since result is never used.
* Use nullptr keyword instead of NULL.
Change-Id: Icd6f47e46cefc2cc63325df00037cd4b6a475259
Andreas Gampe [Wed, 17 Dec 2014 04:18:28 +0000 (04:18 +0000)]
Merge "Fix typo bug for Mips32."
Douglas Leung [Wed, 17 Dec 2014 04:15:41 +0000 (20:15 -0800)]
Fix typo bug for Mips32.
Change-Id: I429038ee6748d538fa03da819777f3456a4fd9a5
Mathieu Chartier [Wed, 17 Dec 2014 00:00:56 +0000 (00:00 +0000)]
Merge "Delete gc request lock"
Mathieu Chartier [Tue, 16 Dec 2014 23:23:00 +0000 (15:23 -0800)]
Delete gc request lock
Fixes valgrind tests.
Change-Id: I763e5709fffb002b14615ed5d08236970643e520
Ying Wang [Tue, 16 Dec 2014 21:38:48 +0000 (21:38 +0000)]
Merge "Revert "Fix VM-less builds.""
Igor Murashkin [Thu, 13 Nov 2014 22:38:00 +0000 (14:38 -0800)]
Add a new imgdiag tool to diff boot.art/core.art against a process
Analyze the dirty memory pages of a running process per-object,
this allows is to to fine-tune the dirty object binning algorithm in
image writer.
Also:
* Factor out oatdump command line parsing code into cmdline.h
* Factor out common build rules for building variations of binaries
* Add a gtest for imgdiag
Bug:
17611661
Change-Id: I3ac852a0d223af66f6d59ae5dbc3df101475e3d0
Brian Carlstrom [Tue, 16 Dec 2014 18:53:36 +0000 (18:53 +0000)]
Merge "Remove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA"
Nicolas Geoffray [Tue, 16 Dec 2014 18:04:15 +0000 (18:04 +0000)]
Merge "Fix crash in x86 disassembler."
Andreas Gampe [Tue, 16 Dec 2014 16:53:04 +0000 (16:53 +0000)]
Merge "[MIPSR6] Adjust assembly routines for MIPS R6 isa"
Duane Sand [Tue, 4 Nov 2014 19:09:36 +0000 (11:09 -0800)]
[MIPSR6] Adjust assembly routines for MIPS R6 isa
Change-Id: I771b58b9e8054bb99cd01a7f713ff8e29a9ae5d3
Brian Carlstrom [Tue, 16 Dec 2014 06:10:04 +0000 (22:10 -0800)]
Remove obsolete PRODUCT_DEX_PREOPT_.*_IN_DATA
Bug:
18673991
Change-Id: I8be2f997005611b791755c8d7fa44974f1816d6b
Nicolas Geoffray [Tue, 16 Dec 2014 14:54:18 +0000 (14:54 +0000)]
Fix crash in x86 disassembler.
Probably a typo from last refactoring.
Change-Id: I086a87120ca0f0dfddbe803573b0e0f79cc6d945
Mathieu Chartier [Tue, 16 Dec 2014 03:32:17 +0000 (03:32 +0000)]
Merge "Don't add or remove verifiers if aborting"
Mathieu Chartier [Tue, 16 Dec 2014 03:26:29 +0000 (19:26 -0800)]
Don't add or remove verifiers if aborting
Prevents deadlock if marking verifier roots fails when we attempt to
dump the stack traces. The deadlock occurs from FindLocksAtDexPC
since this allocates a new verifier then adds / removes it from the
method_verifiers_ array.
Bug:
18651054
Change-Id: Ia9b9470ce5e4ac20bfbb39bef0283974cf487765
Mathieu Chartier [Tue, 16 Dec 2014 01:33:07 +0000 (01:33 +0000)]
Merge "Add more logging to Mutex::ExclusiveUnlock"
Mathieu Chartier [Tue, 16 Dec 2014 01:23:45 +0000 (17:23 -0800)]
Add more logging to Mutex::ExclusiveUnlock
Bug:
18713034
Change-Id: I9db5ca0a25592714ac9e292a2b8d46ef73779c8b
Mathieu Chartier [Tue, 16 Dec 2014 01:17:42 +0000 (01:17 +0000)]
Merge "Decrement suspend count if thread is shutting down"
Mathieu Chartier [Mon, 15 Dec 2014 23:59:49 +0000 (15:59 -0800)]
Decrement suspend count if thread is shutting down
Prevents deadlock caused by incrementing suspend count in
SuspendThreadByPeer, then getting a cleared nativePeer field. This
resulted in us not decrementing the suspend count which caused a
deadlock in WaitForOtherNonDaemonThreadsToExit.
Bug:
18739541
Change-Id: I4a63f1823993a0f99f32025cd479072be49ba8d5
Mathieu Chartier [Mon, 15 Dec 2014 23:46:59 +0000 (23:46 +0000)]
Merge "Move GC daemon locking logic into heap"
Mathieu Chartier [Mon, 15 Dec 2014 22:23:10 +0000 (14:23 -0800)]
Move GC daemon locking logic into heap
Fixes deadlock caused by acquirng the mutator lock while
synchronizing on the daemon thread.
Bug:
18739541
Change-Id: I925b8f0f3b58178da6eff17b9c073f655c39597b
Nicolas Geoffray [Mon, 15 Dec 2014 22:59:03 +0000 (22:59 +0000)]
Merge "Inlining support in optimizing."