OSDN Git Service
Mathieu Chartier [Thu, 5 Mar 2015 21:45:26 +0000 (21:45 +0000)]
Merge "Fix some incorrect IsCompiler instead of IsAotCompiler"
Mathieu Chartier [Thu, 5 Mar 2015 21:20:54 +0000 (13:20 -0800)]
Fix some incorrect IsCompiler instead of IsAotCompiler
Fixes jdwp related issues (DDMS) when JIT is enabled.
Bug:
19623297
Change-Id: I36139c70a97b529135febcf01b227e7ab9affacc
Bill Buzbee [Thu, 5 Mar 2015 19:28:40 +0000 (19:28 +0000)]
Merge "ART: AddVectorReduce should store result in memory carefully"
David Brazdil [Thu, 5 Mar 2015 15:57:42 +0000 (15:57 +0000)]
Merge "ART: Fix test breakage"
David Brazdil [Thu, 5 Mar 2015 15:34:41 +0000 (15:34 +0000)]
ART: Fix test breakage
Recent commit changed the direction of iteration over safepoints in
the register allocator but contained a bug that skipped some of them
at the boundaries of interval siblings. This patch fixes the bug.
Change-Id: Ia7d4892536b5198e01c9bc3034f448227794ff72
David Brazdil [Thu, 5 Mar 2015 14:29:48 +0000 (14:29 +0000)]
Merge "ART: Optimize iteration of safepoints"
David Brazdil [Tue, 3 Mar 2015 10:44:24 +0000 (10:44 +0000)]
ART: Optimize iteration of safepoints
The LiveInterval::Covers method is optimized for multiple calls with
non-decreasing positions. This patch reverts the order of iteration
over safepoints in RegisterAllocator::ConnectSiblings to capitalize
on this effect.
Change-Id: Ieb70eb9d5c0a06ee79379aab6c87cb3290c15bf7
Nicolas Geoffray [Thu, 5 Mar 2015 11:22:00 +0000 (11:22 +0000)]
Merge "[optimizing] Use callee-save registers for x86"
Mark Mendell [Wed, 4 Mar 2015 20:42:45 +0000 (15:42 -0500)]
[optimizing] Use callee-save registers for x86
Add ESI, EDI, EBP to available registers for non-baseline mode. Ensure
that they aren't used when byte addressible registers are needed.
Change-Id: Ie7130d4084c2ae9cfcd1e47c26eb3e5dcac1ebd6
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Andreas Gampe [Thu, 5 Mar 2015 07:03:27 +0000 (07:03 +0000)]
Merge "ART: Fix compile-time-init fail"
Andreas Gampe [Thu, 5 Mar 2015 06:46:35 +0000 (22:46 -0800)]
ART: Fix compile-time-init fail
It is possible that a class that isn't itself marked as an image
class and would be skipped for compile-time-initialization by the
compiler driver is initialized when initializing a second class
that is an image class.
If the second class only depended on the first class during
initialization, e.g., to read field values, the compiler driver
may discard the class object (not reachable from image classes),
but record the oat class status as initialized (as it has been).
In that case we miss the initialization when we load the class at
runtime.
Ensure that all initialized classes with a class initializer are
considered image classes and retained.
Bug:
19323020
Change-Id: I4e537f328d9a4ea23ed5ff7166d532b8855f7acd
Andreas Gampe [Wed, 4 Mar 2015 23:45:29 +0000 (23:45 +0000)]
Merge "ART: Report zip opening error"
Andreas Gampe [Wed, 4 Mar 2015 23:38:51 +0000 (15:38 -0800)]
ART: Report zip opening error
Do not swallow the error message from ZipArchive::OpenFromFd.
Bug:
19574093
Change-Id: I14ea771e63b7bc3e8051012a841e66b9e894aa3a
Dan Albert [Wed, 4 Mar 2015 23:12:02 +0000 (23:12 +0000)]
Merge "Include what we use."
Dan Albert [Wed, 4 Mar 2015 23:06:16 +0000 (15:06 -0800)]
Include what we use.
Newest libc++ update fixes some of the header cruft.
Change-Id: Ic5019ffcb272274ac3b21627218d65a887074458
Andreas Gampe [Wed, 4 Mar 2015 23:00:18 +0000 (23:00 +0000)]
Merge "ART: Do not produce CFI when not asked for"
Andreas Gampe [Wed, 4 Mar 2015 22:00:56 +0000 (14:00 -0800)]
ART: Do not produce CFI when not asked for
Insignificant time savings on the host, but also reduces native
allocation size.
Change-Id: Iea3d335e5375a0076306059d094e5b994e24b9e6
Andreas Gampe [Wed, 4 Mar 2015 22:17:56 +0000 (22:17 +0000)]
Merge "[optimizing] Improve x86/x86_64 bound check code"
Andreas Gampe [Wed, 4 Mar 2015 21:12:27 +0000 (21:12 +0000)]
Merge "ART: Add debuggable compiler flag"
Andreas Gampe [Wed, 4 Mar 2015 21:05:59 +0000 (21:05 +0000)]
Merge "ART: Fix missing handles"
Mingyao Yang [Wed, 4 Mar 2015 20:22:26 +0000 (20:22 +0000)]
Merge "Fix bce gtest."
Andreas Gampe [Mon, 2 Mar 2015 22:07:33 +0000 (14:07 -0800)]
ART: Add debuggable compiler flag
Add a flag to compiler options that shows debuggability.
Change-Id: Id17ec72babe2ee88713a0d274eff86508de30666
Andreas Gampe [Wed, 4 Mar 2015 01:48:39 +0000 (17:48 -0800)]
ART: Fix missing handles
Follow-up to https://android-review.googlesource.com/137010.
Change-Id: Ie97bd01f3cd6eeef9ae38fd189b933b905832d52
Mark Mendell [Wed, 4 Mar 2015 20:12:59 +0000 (15:12 -0500)]
[optimizing] Improve x86/x86_64 bound check code
Don't force a constant index into a register just to compare to the
array size. Allow a constant, and compare the constant to the size.
Change-Id: I1c5732fbd42e63f7eac5c6219a19e9c431c22664
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
Mingyao Yang [Wed, 4 Mar 2015 20:10:34 +0000 (12:10 -0800)]
Fix bce gtest.
Change-Id: I8b974b68bbebef704fa3c8a073f2920f8a78d1fa
Mingyao Yang [Wed, 4 Mar 2015 19:30:50 +0000 (19:30 +0000)]
Merge "Make BCE a no-op if there is no array access."
Sebastien Hertz [Wed, 4 Mar 2015 16:55:21 +0000 (16:55 +0000)]
Merge "Update run-test 031-class-attributes"
Sebastien Hertz [Wed, 4 Mar 2015 15:45:31 +0000 (16:45 +0100)]
Update run-test 031-class-attributes
Ensure types are printed in alphabetical order.
Bug:
19499481
Change-Id: Ia14d2529f8031bc4c2bfb8911fdebebf97638dc9
Nicolas Geoffray [Wed, 4 Mar 2015 11:13:16 +0000 (11:13 +0000)]
Merge "Change how we report exceptions to the debugger."
Nicolas Geoffray [Wed, 4 Mar 2015 10:29:22 +0000 (10:29 +0000)]
Merge "Fix arm64 build."
Nicolas Geoffray [Wed, 4 Mar 2015 10:28:04 +0000 (10:28 +0000)]
Fix arm64 build.
Change-Id: Ib6babc1c6e8f2e78badc93cfcf89950e53f71bbb
Brian Carlstrom [Wed, 4 Mar 2015 05:40:05 +0000 (05:40 +0000)]
Merge "Switch from memalign to posix_memalign for Mac build"
Brian Carlstrom [Wed, 4 Mar 2015 05:21:29 +0000 (21:21 -0800)]
Switch from memalign to posix_memalign for Mac build
Change-Id: Id320015ea3999605954f53b5e266f53e968c7065
Maxim Kazantsev [Tue, 24 Feb 2015 09:07:55 +0000 (15:07 +0600)]
ART: AddVectorReduce should store result in memory carefully
When generating AddVectorReduce, in some cirsumstances we
add value reduced from vector directly to memory. We must
ensure that local LIR optimizations are aware about it.
Change-Id: I8fe19939f67dcd184b08f63026b0da18007d34b8
Mingyao Yang [Mon, 2 Mar 2015 23:14:13 +0000 (15:14 -0800)]
Make BCE a no-op if there is no array access.
Change-Id: I8456182808c1dbaa0c0ae1b8c2e94bb17baf5f29
Hiroshi Yamauchi [Wed, 4 Mar 2015 01:37:11 +0000 (01:37 +0000)]
Merge "Reserve bits in the lock word for read barriers."
Hiroshi Yamauchi [Tue, 10 Feb 2015 01:11:42 +0000 (17:11 -0800)]
Reserve bits in the lock word for read barriers.
This prepares for the CC collector to use the standard object header
model by storing the read barrier state in the lock word.
Bug:
19355854
Bug:
12687968
Change-Id: Ia7585662dd2cebf0479a3e74f734afe5059fb70f
Mathieu Chartier [Wed, 4 Mar 2015 00:46:47 +0000 (00:46 +0000)]
Merge "Wait for threads to finish unregistering"
Mathieu Chartier [Tue, 3 Mar 2015 21:51:04 +0000 (13:51 -0800)]
Wait for threads to finish unregistering
There was a race where Thread::join would return before the thread was
unregistered. This caused a problem with Daemons.stop since the thread
list could get deleted before the daemon thread was removed from list_.
This caused occasional "Request to unregister unattached thread"
errors and warnings.
The fix is to wait until threads finish registering before destroying
the thread list. The only threads which can be unregistering at this
point are the daemons we stopped earlier during the runtime shutdown
process. The issue is that thread join finishes before we remove the
thread from the thread list.
Also some cleanup.
Bug:
18713034
Change-Id: I8921122fe8462643a6b814b5f00632481e3831fb
Mingyao Yang [Wed, 4 Mar 2015 00:19:59 +0000 (00:19 +0000)]
Merge "Add a change that should be part of "enhance gvn for commutative ops.""
Mingyao Yang [Wed, 4 Mar 2015 00:15:23 +0000 (16:15 -0800)]
Add a change that should be part of "enhance gvn for commutative ops."
Change-Id: Id1a30afb095b2c7e27a4ef8a1ef7293022c1aaed
Brian Carlstrom [Wed, 4 Mar 2015 00:05:52 +0000 (00:05 +0000)]
Merge "Remove old build options from .gitignore"
Brian Carlstrom [Tue, 3 Mar 2015 23:31:15 +0000 (15:31 -0800)]
Remove old build options from .gitignore
Change-Id: I1f1eaef57e3a3b4109cc6b312ecfa429d7797b92
Mingyao Yang [Tue, 3 Mar 2015 23:37:31 +0000 (23:37 +0000)]
Merge "Opt compiler: enhance gvn for commutative ops."
Jeff Hao [Tue, 3 Mar 2015 23:32:31 +0000 (23:32 +0000)]
Merge "Remove ART_SMALL_MODE ifdefs."
Mingyao Yang [Wed, 25 Feb 2015 19:28:05 +0000 (11:28 -0800)]
Opt compiler: enhance gvn for commutative ops.
Change-Id: I415b50d58b30cab4ec38077be22373eb9598ec40
Brian Carlstrom [Tue, 3 Mar 2015 21:05:14 +0000 (21:05 +0000)]
Merge "Fix build lint issue."
Brian Carlstrom [Tue, 3 Mar 2015 20:53:49 +0000 (12:53 -0800)]
Fix build lint issue.
Change-Id: I53d5bdefdf79b376f99dfaa17591a0d2103921d5
Mingyao Yang [Tue, 3 Mar 2015 19:53:14 +0000 (19:53 +0000)]
Merge "bce: add support to narrow two MonotonicValueRange's at the same time."
Nicolas Geoffray [Thu, 26 Feb 2015 10:56:09 +0000 (10:56 +0000)]
Change how we report exceptions to the debugger.
This is only a refactoring/cleanup. Bug fixes with respect
to catch location, and more cleanups will follow.
Change-Id: I30d3c6260b0c8f8115a811621397225b88f2063a
Nicolas Geoffray [Tue, 3 Mar 2015 17:28:05 +0000 (17:28 +0000)]
Merge "Fix generic JNI stubs to not discard the Java native frame."
Nicolas Geoffray [Tue, 3 Mar 2015 14:28:35 +0000 (14:28 +0000)]
Fix generic JNI stubs to not discard the Java native frame.
Change-Id: Ic856b442fdde5ce91673fc5856eb0dfc84c75d28
Sebastien Hertz [Tue, 3 Mar 2015 13:39:30 +0000 (13:39 +0000)]
Merge "Follow-up 128393"
Sebastien Hertz [Tue, 3 Mar 2015 11:16:13 +0000 (12:16 +0100)]
Follow-up 128393
Avoids false warning when initializing the exception's class by
marking the transaction aborted after throwing the InternalError
exception.
Also uses VLOG(compiler) to print the warning since it's only useful
when investigating ahead-of-time class initialization.
Bug:
19202032
Change-Id: I3c53639cbb888086ad345d668d1e5b73c5aaf861
Nicolas Geoffray [Tue, 3 Mar 2015 12:52:54 +0000 (12:52 +0000)]
Merge "Tests use libarttest.so, so does not work on ndebug."
Nicolas Geoffray [Tue, 3 Mar 2015 12:51:37 +0000 (12:51 +0000)]
Merge "Revert GetThisObject change."
Nicolas Geoffray [Tue, 3 Mar 2015 12:44:53 +0000 (12:44 +0000)]
Revert GetThisObject change.
Code was changed to use sizeof(void*) instead of the runtime
instruction set pointer size, which caused host compilation crashes.
Change-Id: I3e59897620d6e55b43d6d76b5a0d6d0487b8081a
Nicolas Geoffray [Tue, 3 Mar 2015 12:43:45 +0000 (12:43 +0000)]
Tests use libarttest.so, so does not work on ndebug.
Change-Id: I0435e0a62592bd0f449bb52517efa9ac55ec8913
Nicolas Geoffray [Tue, 3 Mar 2015 11:25:38 +0000 (11:25 +0000)]
Merge "Stack support for Optimizing compiler"
Sebastien Hertz [Tue, 20 Jan 2015 15:06:43 +0000 (16:06 +0100)]
Stack support for Optimizing compiler
Allows to read/write DEX registers from physical register or stack
location when the method is compiled with the Optimizing compiler.
Required fixing arm and arm64 JNI compiler by saving floating
point registers.
Bug:
18547544
Change-Id: I401579f251d1c0a130f6cf4a93a960cdcd7518f5
Nicolas Geoffray [Tue, 3 Mar 2015 10:46:42 +0000 (10:46 +0000)]
Merge "[optimizing compiler] x86 goodness"
Jeff Hao [Mon, 23 Feb 2015 23:32:43 +0000 (15:32 -0800)]
Remove ART_SMALL_MODE ifdefs.
WITH_ART_SMART_MODE now sets --compiler-filter options instead.
Has a corresponding change to /build
Bug:
19460766
Change-Id: I295ebbd49caa5341834141f7c2bbf8df830131ed
Mingyao Yang [Tue, 3 Mar 2015 00:02:26 +0000 (00:02 +0000)]
Merge "bce: handle a pattern for circular buffer"
Mingyao Yang [Fri, 27 Feb 2015 22:43:53 +0000 (14:43 -0800)]
bce: handle a pattern for circular buffer
Change-Id: Ie54bdd7c044af58deea0d0addaaa8186cabf3532
David Brazdil [Mon, 2 Mar 2015 23:16:24 +0000 (23:16 +0000)]
Merge "ART: Cache last returned range in LiveInterval::Covers"
Mathieu Chartier [Mon, 2 Mar 2015 21:10:09 +0000 (21:10 +0000)]
Merge "Fix AddCurrentRuntimeFeaturesAsDex2OatArguments jit handling"
Mathieu Chartier [Mon, 2 Mar 2015 21:09:57 +0000 (21:09 +0000)]
Merge "Fix bad variable expansion"
Mathieu Chartier [Mon, 2 Mar 2015 19:53:08 +0000 (11:53 -0800)]
Fix bad variable expansion
Bug:
19524713
Change-Id: I6537bc650e2690e5902576fd0e5a55142d91182a
Andreas Gampe [Mon, 2 Mar 2015 20:57:47 +0000 (20:57 +0000)]
Merge "ART: Move DexFile vector to Java array"
Vladimir Marko [Mon, 2 Mar 2015 20:10:51 +0000 (20:10 +0000)]
Merge "Add support for .bss section in oat files."
Mathieu Chartier [Mon, 2 Mar 2015 19:49:22 +0000 (11:49 -0800)]
Fix AddCurrentRuntimeFeaturesAsDex2OatArguments jit handling
Now jit passes interpret filter to dex2oat.
Bug:
19550422
Change-Id: I932c7d1084acbb9d356ad0f5534a270e2ca2d6ec
Andreas Gampe [Mon, 2 Mar 2015 18:18:04 +0000 (18:18 +0000)]
Merge "ART: Allow more operations in unstarted Runtime"
Andreas Gampe [Sat, 28 Feb 2015 04:08:34 +0000 (20:08 -0800)]
ART: Allow more operations in unstarted Runtime
To compile-time initialize more classes, have more dedicated code
for special methods.
Bug:
19542228
Bug:
19548084
Change-Id: Iad37c1c58302b04fa3a5a904a923da388a079cd7
Vladimir Marko [Wed, 25 Feb 2015 12:02:49 +0000 (12:02 +0000)]
Add support for .bss section in oat files.
Change-Id: I779b80b8139d9afdc28373f8c68edff5df7726ce
Nicolas Geoffray [Mon, 2 Mar 2015 18:04:15 +0000 (18:04 +0000)]
Merge "Opt Compiler: ARM64: Enable explicit memory barriers over acquire/release"
Andreas Gampe [Mon, 2 Mar 2015 16:32:15 +0000 (16:32 +0000)]
Merge "ART: Fix off-by-two whitespace"
Mark Mendell [Fri, 13 Feb 2015 22:48:38 +0000 (17:48 -0500)]
[optimizing compiler] x86 goodness
Implement the x86 version of
https://android-review.googlesource.com/#/c/129560/, which made some
enhancements to x86_64 code.
- Use leal to implement 3 operand adds
- Use testl rather than cmpl to 0 for registers
- Use leaq for x86_64 for adds with constant in int32_t range
Note:
- The range and register allocator tests seem quite fragile. I had to
change ADD_INT_LIT8 to XOR_INT_LIT8 for the register allocator test to
get the code to run. It seems like this is a bit hard-coded to
expected code generation sequences. I also changes BuildTwoAdds to
BuildTwoSubs for the same reason.
- For the live range test, I just changed the expected output, as the
Locations were different.
Change-Id: I402f2e95ddc8be4eb0befb3dae1b29feadfa29ab
Signed-off-by: Mark Mendell <mark.p.mendell@intel.com>
David Brazdil [Wed, 25 Feb 2015 16:17:05 +0000 (16:17 +0000)]
ART: Cache last returned range in LiveInterval::Covers
Optimizing spends ~10% of compilation time in the register allocator.
One of the frequently called methods is LiveInterval::Covers which
has linear complexity w.r.t. the number of gaps in liveness intervals.
This patch leverages the fact that the register allocator calls Covers
with non-decreasing position values and caches the last returned
result to start the iteration closer to the result the next time the
method is invoked. Stats from compiling the framework show that this
optimization reduces the average number of iterations needed to find
the result by 40%.
Change-Id: I4dd26b900879d5e1d03818ebc1e117cc6a53053c
Richard Uhler [Mon, 2 Mar 2015 15:50:08 +0000 (15:50 +0000)]
Merge "Don't require three-character extensions for dex locations."
Serban Constantinescu [Sun, 22 Feb 2015 20:51:33 +0000 (20:51 +0000)]
Opt Compiler: ARM64: Enable explicit memory barriers over acquire/release
Implement remaining explicit memory barrier code paths and temporarily
enable the use of explicit memory barriers for testing.
This CL also enables the use of instruction set features in the ARM64
backend. kUseAcquireRelease has been replaced with PreferAcquireRelease(),
which for now is statically set to false (prefer explicit memory barriers).
Please note that we still prefer acquire-release for the ARM64 Optimizing
Compiler, but we would like to exercise the explicit memory barrier code
path too.
Change-Id: I84e047ecd43b6fbefc5b82cf532e3f5c59076458
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
Andreas Gampe [Sat, 28 Feb 2015 06:16:14 +0000 (22:16 -0800)]
ART: Fix off-by-two whitespace
Follow-up to change 134380. Fix the whitespace to be printed. Fix
style. It's surprising the linter did not complain.
Change-Id: I3abcde3f401fa1fd4d7a847ff1f071fba23ce6a7
Andreas Gampe [Sat, 28 Feb 2015 05:37:17 +0000 (05:37 +0000)]
Merge "Revert "Revert "Re-enable one thread dumping the native stack of another."""
Andreas Gampe [Sat, 28 Feb 2015 04:17:23 +0000 (04:17 +0000)]
Merge "ART: Allow dex2oat for apps only with image"
Andreas Gampe [Sat, 28 Feb 2015 03:35:46 +0000 (19:35 -0800)]
ART: Allow dex2oat for apps only with image
Do not allow a runtime without image when compiling an app. This
avoids the current abort when we then try to run out of the (missing)
boot classpath.
Bug:
19100590
Change-Id: Ic269dc2fa807d003215ea134cb42fe4c4d78124e
Andreas Gampe [Fri, 27 Feb 2015 21:35:39 +0000 (13:35 -0800)]
Revert "Revert "Re-enable one thread dumping the native stack of another.""
This reverts commit
edfdaf37d5520a3c3a858b6b3fba4f759c60dadc.
Tests seem to succeed. Might be helpful to understand some deadlock/timeout
situations.
Bug:
15446488
Bug:
18713034
Change-Id: I5be225363f698556221576b5827d9501e26799f3
Andreas Gampe [Sat, 28 Feb 2015 00:12:02 +0000 (00:12 +0000)]
Merge "ART: Fix Mips disassembler for some floating point instructions."
Douglas Leung [Sat, 14 Feb 2015 00:55:57 +0000 (16:55 -0800)]
ART: Fix Mips disassembler for some floating point instructions.
Change-Id: I2b661a8dae4cd924c081df85f570007cf645769c
Mathieu Chartier [Sat, 28 Feb 2015 00:07:07 +0000 (00:07 +0000)]
Merge "Change JIT to not use PIC"
Mathieu Chartier [Fri, 27 Feb 2015 22:24:37 +0000 (14:24 -0800)]
Change JIT to not use PIC
Motivation: PIC is currenly slower and disables a lot of JIT
friendly optimizations.
EvaluateAndApplyChanges N5 eng interpreter + jit:
Before: 2540ms
After: 2350ms
Bug:
17950037
Change-Id: I3de3e7bcccfc53e49cb78370443c514248ec78d7
Mathieu Chartier [Fri, 27 Feb 2015 22:33:30 +0000 (22:33 +0000)]
Merge "Change JIT tests to use interpreter image"
Mathieu Chartier [Fri, 27 Feb 2015 21:21:15 +0000 (13:21 -0800)]
Change JIT tests to use interpreter image
Bug:
19528920
Change-Id: I079cfcca7bb57e492c82a44f104e41228cb33b4f
buzbee [Fri, 27 Feb 2015 21:29:54 +0000 (21:29 +0000)]
Merge "Handle another untyped dex CONST issue"
Mathieu Chartier [Fri, 27 Feb 2015 20:55:16 +0000 (20:55 +0000)]
Merge "Fix jit tests"
Mathieu Chartier [Fri, 27 Feb 2015 18:39:48 +0000 (10:39 -0800)]
Fix jit tests
Missing image suffix was missing causing tests to fail.
Also added missing phony targets.
Bug:
19524713
Change-Id: Ib40d39b1fc16e1adfdc01744a199ae9b0b562664
Mathieu Chartier [Fri, 27 Feb 2015 02:58:48 +0000 (02:58 +0000)]
Merge "Fix JIT direct call to interpreter bridge"
Mathieu Chartier [Fri, 27 Feb 2015 02:28:07 +0000 (18:28 -0800)]
Fix JIT direct call to interpreter bridge
FormulaEvaluationActions.EvaluateAndApplyChanges on hammerhead eng:
Before: 3550ms
After: 2540
Bug:
17950037
Change-Id: If7acaea20d4adb5418d00ef13192e2d4c29032af
Mathieu Chartier [Thu, 26 Feb 2015 23:04:02 +0000 (23:04 +0000)]
Merge "Change card cache mod-union table to use bitmaps"
Mathieu Chartier [Fri, 23 Jan 2015 21:18:53 +0000 (13:18 -0800)]
Change card cache mod-union table to use bitmaps
Previously used card sets, using bitmaps saves memory and slightly
increases performance.
Added mod union table test.
Performance EvaluateAndApplyChanges (minimal changes):
Before (card cache image mu table):
UpdateAndMarkImageModUnionTable: Avg: 524.320us
ImageModUnionClearCards: Avg: 54.580us
Native PSS: ~67500kB
After (card cache image mu table):
UpdateAndMarkImageModUnionTable: Avg: 515.600us
ImageModUnionClearCards: Avg: 53.780us
Native PSS: ~66014kB
Native PSS was higher before since the mod_union_table->SetCards()
which happens pre zygote fork was allocating a large amount of
std::nodes.
Bug:
11859910
Change-Id: I956b7e51d5572feec1393ffa618b7b7d8c147b28
Hiroshi Yamauchi [Thu, 26 Feb 2015 21:12:25 +0000 (21:12 +0000)]
Merge "Add standard gc log for transition collections."
Hiroshi Yamauchi [Thu, 26 Feb 2015 20:53:45 +0000 (12:53 -0800)]
Add standard gc log for transition collections.
Factor out the gc log logic into a function.
Note we still don't log in background as before but do for things like
OOME compactions in foreground.
Change-Id: Ifd35a796cf26aba2fba83bf07e72902357d91f8b