OSDN Git Service
Roland Levillain [Fri, 26 Jun 2015 11:33:01 +0000 (11:33 +0000)]
Merge "Minor fixes to mips64 for the arch-specific optimisation framework."
David Brazdil [Fri, 26 Jun 2015 10:00:03 +0000 (10:00 +0000)]
Merge "Revert "ART: Implement try/catch blocks in Builder""
David Brazdil [Fri, 26 Jun 2015 09:59:52 +0000 (09:59 +0000)]
Revert "ART: Implement try/catch blocks in Builder"
Causes OutOfMemory issues, need to investigate.
This reverts commit
0b5c7d1994b76090afcc825e737f2b8c546da2f8.
Change-Id: I263e6cc4df5f9a56ad2ce44e18932ca51d7e349f
David Brazdil [Fri, 26 Jun 2015 09:59:19 +0000 (09:59 +0000)]
Merge "Revert "ART: Fix gtests after try/catch change""
David Brazdil [Fri, 26 Jun 2015 09:59:06 +0000 (09:59 +0000)]
Revert "ART: Fix gtests after try/catch change"
Need to revert the whole try/catch CL until issues are fixed.
This reverts commit
a65930de077a4d7c1110e66ccd950061a85353d0.
Change-Id: Idd69215c87230a8616923665a55fe81891c78bec
David Brazdil [Fri, 26 Jun 2015 09:33:32 +0000 (09:33 +0000)]
Merge "ART: Fix gtests after try/catch change"
David Brazdil [Fri, 26 Jun 2015 09:26:47 +0000 (10:26 +0100)]
ART: Fix gtests after try/catch change
The try/catch CL changed the order in which instructions were added
into entry/exit blocks which broke the sensitive gtests. This patch
swaps the order back.
Change-Id: Ib337491e5571a2cd38d6784275642f008886cc2a
David Brazdil [Fri, 26 Jun 2015 08:56:45 +0000 (08:56 +0000)]
Merge "ART: Implement try/catch blocks in Builder"
Nicolas Geoffray [Fri, 26 Jun 2015 08:25:03 +0000 (08:25 +0000)]
Merge "List test as flaky."
Nicolas Geoffray [Fri, 26 Jun 2015 08:24:16 +0000 (09:24 +0100)]
List test as flaky.
bug:
22106064
Change-Id: I54b7d38162bebdd1338d498f4f89734ffe28c563
Andreas Gampe [Fri, 26 Jun 2015 02:32:14 +0000 (02:32 +0000)]
Merge "ART: Only print stripped dex2oat command line"
Andreas Gampe [Tue, 19 May 2015 06:22:54 +0000 (23:22 -0700)]
ART: Only print stripped dex2oat command line
To curb logcat noise, strip many dex2oat parameters from the
logcat printout.
Bug:
20501758
Change-Id: Ifc367f91f593916e0773af1ca950c798f129889f
buzbee [Thu, 25 Jun 2015 23:07:46 +0000 (23:07 +0000)]
Merge "ART: Fix kEverything compiler filter"
Igor Murashkin [Thu, 25 Jun 2015 23:07:42 +0000 (23:07 +0000)]
Merge "interpreter: Fix string init for soft-failed invokes"
buzbee [Thu, 25 Jun 2015 22:53:45 +0000 (15:53 -0700)]
ART: Fix kEverything compiler filter
Previously the kEverything filter failed to compile class
initializers. Now it will.
Bug:
19576257
Change-Id: I189d2b5b379aee112c4e95f8d3e6c32abab6ed41
Igor Murashkin [Thu, 25 Jun 2015 22:18:12 +0000 (15:18 -0700)]
interpreter: Fix string init for soft-failed invokes
Bug:
22040916
Change-Id: Id5b6f0f29e763c31bab4d85877cd8aaf02334e48
Mathieu Chartier [Thu, 25 Jun 2015 22:02:33 +0000 (22:02 +0000)]
Merge "Make allocation tracker use less memory"
Man Cao [Tue, 23 Jun 2015 23:38:25 +0000 (16:38 -0700)]
Make allocation tracker use less memory
The allocation tracker no longer keeps recently allocated objects live.
Instead it just keeps their class objects live as strong roots. This fixed
the gc-stress test failure for 098-ddmc.
Also fixed the issue in DisableNewSystemWeak() for allocation tracker,
by making new allocation to wait until GC's sweeping to complete. I didn't
feel any significant slowdown with this wait.
Bug:
20037135
Change-Id: I6a98188832cf7ee478007e3788e742dc6e18f7b8
Andreas Gampe [Thu, 25 Jun 2015 20:51:42 +0000 (20:51 +0000)]
Merge "Fixed bug in debugging information in dex file"
Andreas Gampe [Thu, 25 Jun 2015 19:34:41 +0000 (19:34 +0000)]
Merge "ART: Reset runtime_throw_failure flag"
Andreas Gampe [Thu, 25 Jun 2015 17:26:40 +0000 (10:26 -0700)]
ART: Reset runtime_throw_failure flag
The flag is instruction-specific. It transports the info from Fail
to the main loop. It must be cleared after each iteration.
Introduce a second flag to store whether we saw such a failure at
all.
Update test expectations.
Bug:
22080519
Change-Id: I32be914819946233babaa4cb7343844d97b61ba5
Aart Bik [Wed, 24 Jun 2015 23:33:32 +0000 (16:33 -0700)]
Fixed bug in debugging information in dex file
Rationale:
Not resetting signature field may cause "leaking" old extended
value into new non-extended value (exposed while implementing
an Art-based dexdump; it affects all debug iterators though)
Bug:
17442393
Change-Id: I4d1e2357ab7e0d77dbcf09786f24ac5cc54160b9
Andreas Gampe [Thu, 25 Jun 2015 17:24:31 +0000 (17:24 +0000)]
Merge "ART: Set methods to preverified in verify-none"
Andreas Gampe [Wed, 24 Jun 2015 23:25:33 +0000 (16:25 -0700)]
ART: Set methods to preverified in verify-none
Actually mark all methods to be verified, so that the interpreter
doesn't do access checks. Speedup is about 2x on a Nexus 6 when booting
in verify-none mode.
Bug:
22040916
Change-Id: I2d6c8df2a68eae6e358da2639d980cb8bfcc1560
Richard Uhler [Thu, 25 Jun 2015 16:52:45 +0000 (16:52 +0000)]
Merge "Do not try to compile resource-only dex files."
David Brazdil [Thu, 11 Jun 2015 10:17:49 +0000 (11:17 +0100)]
ART: Implement try/catch blocks in Builder
This patch enables the GraphBuilder to generate blocks and edges which
represent the exceptional control flow when try/catch blocks are
present in the code. Actual compilation is still delegated to Quick
and Baseline ignores the additional code.
To represent the relationship between try and catch blocks, Builder
splits the edges which enter/exit a try block and links the newly
created blocks to the corresponding exception handlers. This layout
will later enable the SsaBuilder to correctly infer the dominators of
the catch blocks and to produce the appropriate reverse post ordering.
It will not, however, allow for building the complete SSA form of the
catch blocks and consequently optimizing such blocks.
To this end, a new TryBoundary control-flow instruction is introduced.
Codegen treats it the same as a Goto but it allows for additional
successors (the handlers).
Change-Id: I415b985596d5bebb7b1bb358a46e08b7b04bb53a
Richard Uhler [Wed, 24 Jun 2015 15:44:19 +0000 (08:44 -0700)]
Do not try to compile resource-only dex files.
This changes behavior in the case where we are asked to load a dex
file that does not exist or has no classes.dex entry.
Previously we would run dex2oat, which would log an error message and
fail. Now we skip running dex2oat, we report the DexOptStatus as
kNoDexOptNeeded, and we do not try to fall back to the missing
original dex files.
Bug:
21722039
(cherry picked from commit
cb44b11a926696e34b3dc44288e762b4303cc128)
Change-Id: I84a85dc9ece54bcc0a5283f871e09bf68471c6e7
Nicolas Geoffray [Thu, 25 Jun 2015 15:03:18 +0000 (15:03 +0000)]
Merge "Pass LD_USE_LOAD_BIAS to the art script."
Nicolas Geoffray [Thu, 25 Jun 2015 14:53:54 +0000 (15:53 +0100)]
Pass LD_USE_LOAD_BIAS to the art script.
The move to using dlopen requires it on the host.
Change-Id: I593818eac4e7c9ea15adbb86c5204e51f776cae4
Nicolas Geoffray [Thu, 25 Jun 2015 10:41:39 +0000 (10:41 +0000)]
Merge "Disable test for all runs."
Nicolas Geoffray [Thu, 25 Jun 2015 10:40:42 +0000 (11:40 +0100)]
Disable test for all runs.
Change-Id: I2925e4172bee2751788e779b87e7f1165b8c81fc
Vladimir Marko [Thu, 25 Jun 2015 10:28:15 +0000 (10:28 +0000)]
Merge "Hard-fail get-/put-object to a non-reference field."
Vladimir Marko [Tue, 23 Jun 2015 16:45:21 +0000 (17:45 +0100)]
Hard-fail get-/put-object to a non-reference field.
Bug:
21886894
Change-Id: Iec870c223ce97fd90dcce05ae80c002e2b24cb5d
Nicolas Geoffray [Thu, 25 Jun 2015 09:41:39 +0000 (09:41 +0000)]
Merge "Only do some checks when compiling against the core image."
Nicolas Geoffray [Thu, 25 Jun 2015 09:01:47 +0000 (10:01 +0100)]
Only do some checks when compiling against the core image.
This will avoid false negatives when running dex2oatd on apks.
bug:
21865473
Change-Id: Id8eacaefae0bcf07a2ada8aedd7951854cdb5c4f
Andreas Gampe [Thu, 25 Jun 2015 05:16:20 +0000 (05:16 +0000)]
Merge "[MIPS64] JNI Compiler: Sign-extend int function arguments"
Andreas Gampe [Thu, 25 Jun 2015 04:28:34 +0000 (04:28 +0000)]
Merge "ART: Fix arm32 instrumentation exit stub"
Andreas Gampe [Wed, 24 Jun 2015 06:28:59 +0000 (23:28 -0700)]
ART: Fix arm32 instrumentation exit stub
Properly store, pass and restore floating point result.
Bug:
22047833
(cherry picked from commit
844fb67a8b5638c4e195dbbe510dc1626824a16c)
Change-Id: If5d9efbe63334c9b6353f76ce6e4fe519602482a
Mathieu Chartier [Thu, 25 Jun 2015 03:00:33 +0000 (03:00 +0000)]
Merge "Fix force copy"
Mathieu Chartier [Thu, 25 Jun 2015 00:04:17 +0000 (17:04 -0700)]
Fix force copy
We now correctly pass the returned pointer back onto the release functions.
Bug:
22056708
Change-Id: I1a7300d3a4522a3c81b432ec742ae1c0bd00b51e
Andreas Gampe [Wed, 24 Jun 2015 21:31:01 +0000 (21:31 +0000)]
Merge "ART: Correctly hard-fail method with undefined register"
Andreas Gampe [Wed, 24 Jun 2015 17:26:13 +0000 (10:26 -0700)]
ART: Correctly hard-fail method with undefined register
In case a return-object gets an undefined return value register
and an unresolved return type, the "undefined" must take precedence
and lead to a hard fail of the method.
Bug:
22045582
Change-Id: Id5595a72331cd6272aa9ebc8ff3b9cea046294a2
Jeff Hao [Wed, 24 Jun 2015 17:35:32 +0000 (17:35 +0000)]
Merge "Adding optimizing compiler test case for String.<init>."
Jeff Hao [Wed, 24 Jun 2015 00:34:04 +0000 (17:34 -0700)]
Adding optimizing compiler test case for String.<init>.
Bug:
21991156
(cherry-picked from commit
e7c7d8ed18a4e1d2291af78944ff913319ec1f23)
Change-Id: I282edaaa422f393629a09cb807da889422e33fb2
Christopher Ferris [Wed, 24 Jun 2015 17:04:28 +0000 (17:04 +0000)]
Merge "Increase alt signal stack to 32K on host."
Christopher Ferris [Wed, 24 Jun 2015 16:37:39 +0000 (09:37 -0700)]
Increase alt signal stack to 32K on host.
On host, when there is a crash, the code tries to do an unwind
from the signal handler. Under some conditions this can require
a stack larger than 16K, so increase this value to 32K.
The symptom of this is that you get an empty backtrace running
art tests when there is a crash.
Bug:
21949571
Change-Id: I8306da55e35212a0f349e43a7f2ad546e8da8c76
Nicolas Geoffray [Wed, 24 Jun 2015 16:14:30 +0000 (16:14 +0000)]
Merge "Use a flag from the verifier to know if we should compile."
Nicolas Geoffray [Wed, 24 Jun 2015 14:53:03 +0000 (15:53 +0100)]
Use a flag from the verifier to know if we should compile.
Only used for the lack of bottom type in the aget-object case
for now. Could be used for more.
bug:
21865466
Change-Id: I64c2c84dfa1c0d259631e65e5f44b94e4139e6a7
Nicolas Geoffray [Wed, 24 Jun 2015 15:51:38 +0000 (15:51 +0000)]
Merge "BCE: don't assume a bounds check always gets a HArrayLength."
Lazar Trsic [Wed, 24 Jun 2015 14:30:21 +0000 (16:30 +0200)]
[MIPS64] JNI Compiler: Sign-extend int function arguments
MIPS n64 ABI differs from arm64. Arguments smaller than the 8B stack
slot need to be sign-extended.
Use combination (lw,sd), instead of (lw,sw) for 4B values.
Change fixes software keyboard crash on mips64.
Change-Id: I7574d37f6039e9e8c9e0047254be71d28d4c829a
David Brazdil [Wed, 24 Jun 2015 14:11:45 +0000 (14:11 +0000)]
Merge "ART: Run GraphChecker after Builder and SsaBuilder"
Nicolas Geoffray [Wed, 24 Jun 2015 14:10:57 +0000 (14:10 +0000)]
Merge "BCE: Narrow instead of unconditionnaly overwrite the range."
Nicolas Geoffray [Wed, 24 Jun 2015 09:38:27 +0000 (10:38 +0100)]
BCE: Narrow instead of unconditionnaly overwrite the range.
bug:
21862741
Change-Id: Ic1c2d6fa64255623f87af33a297c459cc9080d3c
Nicolas Geoffray [Wed, 24 Jun 2015 13:57:44 +0000 (14:57 +0100)]
BCE: don't assume a bounds check always gets a HArrayLength.
Deoptimizations may change it to a HPhi.
bug:
22056703
Change-Id: I8995209438764dac496ed856782b147ba21f93e5
David Brazdil [Tue, 23 Jun 2015 17:27:30 +0000 (18:27 +0100)]
ART: Run GraphChecker after Builder and SsaBuilder
This patch refactors the way GraphChecker is invoked, utilizing the
same scoping mechanism as pass timing and graph visualizer. Therefore,
GraphChecker will now run not just after instances of HOptimization
but after the builders and reg alloc, too.
Change-Id: I8173b98b79afa95e1fcbf3ac9630a873d7f6c1d4
David Brazdil [Wed, 24 Jun 2015 13:56:48 +0000 (13:56 +0000)]
Merge "ART: Stop creating a fallthrough block for Goto"
Nicolas Geoffray [Wed, 24 Jun 2015 13:26:22 +0000 (13:26 +0000)]
Merge "Fix codegen_test after DCE fix."
Nicolas Geoffray [Wed, 24 Jun 2015 13:25:09 +0000 (14:25 +0100)]
Fix codegen_test after DCE fix.
Change-Id: I16c64abc26c64815da4cb4034276d60e9bfb6996
David Brazdil [Wed, 24 Jun 2015 13:23:56 +0000 (14:23 +0100)]
ART: Stop creating a fallthrough block for Goto
Optimizing's Builder used to create a basic block after a Goto under
the assumption that control flow can fall through.
Bug:
19084197
Change-Id: Id85f31df98a4177466750d3cd0bc8bb74782ca2d
Nicolas Geoffray [Wed, 24 Jun 2015 13:01:55 +0000 (13:01 +0000)]
Merge "Fix another case of un-verified dead code."
Nicolas Geoffray [Wed, 24 Jun 2015 11:41:20 +0000 (12:41 +0100)]
Fix another case of un-verified dead code.
bug:
22042796
https://code.google.com/p/android/issues/detail?id=178008
Change-Id: Ie77ccf17ce2a69c86b2278f7920aa4ad39bf142b
Nicolas Geoffray [Wed, 24 Jun 2015 12:50:33 +0000 (12:50 +0000)]
Merge "Recompute dominator tree after DCE."
Alexandre Rames [Tue, 23 Jun 2015 10:33:45 +0000 (11:33 +0100)]
Minor fixes to mips64 for the arch-specific optimisation framework.
Change-Id: I9d49ea61c732e4fc6b3393aa8778951e29ce4efe
Nicolas Geoffray [Wed, 24 Jun 2015 11:20:24 +0000 (12:20 +0100)]
Recompute dominator tree after DCE.
bug:
22031382
Change-Id: Ifebe169897b76872015e3ce0ed7d0a9662f80cef
Calin Juravle [Wed, 24 Jun 2015 11:21:22 +0000 (11:21 +0000)]
Merge "Revert "Use -Xno-dex-file-fallback for libcore tests.""
Calin Juravle [Wed, 24 Jun 2015 11:21:09 +0000 (11:21 +0000)]
Revert "Use -Xno-dex-file-fallback for libcore tests."
This reverts commit
0b58603bc02c0922a1ec2d2cda8de9dbb3128294.
Change-Id: I80ec8f7c41907cd8716d1d73f25818fbb096daa6
Calin Juravle [Wed, 24 Jun 2015 10:40:35 +0000 (10:40 +0000)]
Merge "Use -Xno-dex-file-fallback for libcore tests."
Nicolas Geoffray [Wed, 24 Jun 2015 09:03:56 +0000 (09:03 +0000)]
Merge "Remove bogus DCHECK."
Nicolas Geoffray [Tue, 23 Jun 2015 17:16:46 +0000 (18:16 +0100)]
Remove bogus DCHECK.
Spotted by running libcore tests with libartd.so. The FindClass
call will throw the exception if the element type is void.
Change-Id: Ic5df7eb6c9934b8e70f7bfdcfe533e5c1ad5c518
Nicolas Geoffray [Wed, 24 Jun 2015 08:21:31 +0000 (08:21 +0000)]
Merge "libcore tests: increase the timeout in debug mode."
Mathieu Chartier [Tue, 23 Jun 2015 23:10:45 +0000 (23:10 +0000)]
Merge "Fix field ordering for String in hprof"
Andreas Gampe [Tue, 23 Jun 2015 23:03:07 +0000 (23:03 +0000)]
Andreas Gampe [Tue, 23 Jun 2015 21:18:17 +0000 (14:18 -0700)]
ART: Follow-up to
507cc6f83bf6379728f2dd20391f2ed5fbfe6371
Do not trigger DCHECK aborts for final and abstract classes when
they are used from other classes. Instead issue a soft error that
leads to a runtime failure.
Bug:
21873151
Change-Id: Ie5251a176722811b3c74585222874313a53f7e02
Mathieu Chartier [Tue, 23 Jun 2015 22:45:15 +0000 (15:45 -0700)]
Fix field ordering for String in hprof
We were inserting value field after the Object field instead of
the String fields.
(cherry picked from commit
c94c6a751ef1ee31cbc3b924835290bcdef731a0)
Bug:
22043800
Change-Id: Ibaddbd7299562949e32eceb625feac325539e3ce
Jeff Hao [Tue, 23 Jun 2015 22:27:06 +0000 (22:27 +0000)]
Merge "Make dex file verifier check that indexes are increasing."
Jeff Hao [Tue, 23 Jun 2015 03:20:30 +0000 (20:20 -0700)]
Make dex file verifier check that indexes are increasing.
Note that this still allows duplicates.
Bug:
21868011
(cherry-picked from commit
dd32833e24241508aa697d5349edf6aba9922434)
Change-Id: Ifcb2cda465d9451c16b122185a260ca8cebc41c5
Nicolas Geoffray [Tue, 23 Jun 2015 17:20:41 +0000 (18:20 +0100)]
libcore tests: increase the timeout in debug mode.
libcore.java.lang.SystemTest#testArrayCopyConcurrentModification
is slow on device.
Change-Id: I21e6533b2a3199e9e85d17b059065a6289553f8b
Vladimir Marko [Tue, 23 Jun 2015 16:43:31 +0000 (16:43 +0000)]
Merge "ART: Improve Indenter performance."
Nicolas Geoffray [Tue, 23 Jun 2015 15:57:12 +0000 (15:57 +0000)]
Merge "Fix 496 test."
Nicolas Geoffray [Tue, 23 Jun 2015 11:09:55 +0000 (12:09 +0100)]
Fix 496 test.
Make sure the class requested by LoadedByMyClassLoader.bar
is not loaded yet ('Main' is already loaded), in order to
do a proper class loader lookup and not use a dex cache
version.
Change-Id: I77215ae489e6d2c50b90684951bccd0bbf8c1a53
Vladimir Marko [Tue, 23 Jun 2015 14:39:01 +0000 (15:39 +0100)]
ART: Improve Indenter performance.
This reduces the time taken by oatdump_test by ~15s (16%)
on host and ~30s (5%) on N5. The Indenter.overflow() was
previously the hottest function according to perf.
Change-Id: I96eb69ce3f5420cd09dba23b29f8025cedc3d80a
Roland Levillain [Tue, 23 Jun 2015 13:53:54 +0000 (13:53 +0000)]
Merge "Replace some run-time assertions with compile-time ones in ART."
Calin Juravle [Thu, 18 Jun 2015 17:38:48 +0000 (18:38 +0100)]
Use -Xno-dex-file-fallback for libcore tests.
Change-Id: I23911d17c4d71504b3ff9293325af533097ba49d
Roland Levillain [Tue, 23 Jun 2015 13:00:43 +0000 (13:00 +0000)]
Merge "ART: Fix data loss when symbolizing oat files."
Nicolas Geoffray [Tue, 23 Jun 2015 11:32:10 +0000 (11:32 +0000)]
Merge "Use GetOffsetDuringLinking instead of GetOffset."
Nicolas Geoffray [Tue, 23 Jun 2015 11:11:24 +0000 (12:11 +0100)]
Use GetOffsetDuringLinking instead of GetOffset.
GetOffset assumes the class has been resolved, but LinkFields
is called before the class is marked as such.
Change-Id: I6f9fc21cd220881806f00461a82a14e459e26a8b
Vladimir Marko [Tue, 23 Jun 2015 11:00:19 +0000 (11:00 +0000)]
Merge "ART: Compiler generated GC map should take care of temp registers."
Nicolas Geoffray [Tue, 23 Jun 2015 10:15:45 +0000 (10:15 +0000)]
Merge "Do not overwrite an input register in shift operations."
Nicolas Geoffray [Mon, 22 Jun 2015 22:12:45 +0000 (23:12 +0100)]
Do not overwrite an input register in shift operations.
'second_reg' is an input register that can survive the instruction.
Instead use the output register as a temporary result.
bug:
21667432
Change-Id: I1a4577b0333c3fb184645023d5eae30555bbf65c
David Brazdil [Tue, 23 Jun 2015 09:47:23 +0000 (09:47 +0000)]
Merge "ART: Fix GraphVisualizer dlopen crash"
David Brazdil [Tue, 23 Jun 2015 09:22:38 +0000 (10:22 +0100)]
ART: Fix GraphVisualizer dlopen crash
The HGraphVisualizer used to crash if it failed to dlopen the
libart(d)-disassembler.so. This patch fixes that.
Bug:
22001285
Change-Id: Ibe9b9af17a77e22e3571c886f77918e9491b7827
Mathieu Chartier [Tue, 23 Jun 2015 03:27:44 +0000 (03:27 +0000)]
Merge "Restore DDMS recent allocation tracking's behavior"
Mathieu Chartier [Tue, 23 Jun 2015 03:27:18 +0000 (03:27 +0000)]
Merge "Fix another miranda method moving GC bug"
Mathieu Chartier [Sat, 20 Jun 2015 03:24:45 +0000 (20:24 -0700)]
Fix another miranda method moving GC bug
Need to copy miranda methods over before we allocate the new vtable
or else we may have stale miranda gc roots.
(cherry picked from commit
6e80460bdf0aa9bd273d4a4d665d679c651b5f4f)
Bug:
21664466
Change-Id: Ib3e415bb9e7df7abfa18c98fe01f790fa39622dc
Man Cao [Fri, 12 Jun 2015 05:47:35 +0000 (22:47 -0700)]
Restore DDMS recent allocation tracking's behavior
Make the allocation tracker mark recently allocated objects as roots,
so the allocation records are not swept. Because DDMS needs recent
allocation tracking records even for dead objects. This should fix
the flaky failures for 098-ddmc test, but it cannot pass GC stress
test (OOM). Re-enabled 098-ddmc for other tests.
There should be an option to not mark them as roots, when user only
needs HPROF dump with traces but not DDMS's recent allocation tracking.
Probably need to add a new JNI API function for this option.
There could be another way to keep a second list of recent allocation
records and maintain a type cache for them, so not to make the objects
roots. But it's more complex, and not sure which is better.
Also reduce memory usage for AllocRecordStackTrace objects, and change
default stack depth to 16. Rename the property that controls the stack
depth to "debug.allocTracker.maxStackDepth" so developer can change it.
Bug:
20037135
Change-Id: Ic6b9ae87bdcda558be6f14ded8057e763439881c
Igor Murashkin [Mon, 22 Jun 2015 23:36:14 +0000 (23:36 +0000)]
Merge "base: Fix an infinite loop in HashSet::Insert"
Igor Murashkin [Mon, 22 Jun 2015 22:57:38 +0000 (15:57 -0700)]
base: Fix an infinite loop in HashSet::Insert
Also adds a test for HashSet::ShrinkToMaximumLoad
(This bug was only reachable when using ShrinkToMaximumLoad, which is not
called from anywhere other than the new test)
Change-Id: I5276b4b3f4ecf6090bb545ddd1752758b11609dd
Mathieu Chartier [Mon, 22 Jun 2015 22:58:54 +0000 (22:58 +0000)]
Merge "New experimental GC stress mode"
Mathieu Chartier [Sun, 14 Jun 2015 21:14:37 +0000 (14:14 -0700)]
New experimental GC stress mode
Tries to do a GC for every unique call stack (up to 16 frames).
The goal is to catch moving GC bugs and lock violations without being
rediculously slow. Some tests fail on 64 bits, 32 bit host doesn't
work. N5 is booting.
Added runtime -Xgc options: gcstress and nogcstress.
Bug:
21664466
Change-Id: Icb8e420f2048e8ee83bcca7937563166a2638f5c
Jeff Hao [Mon, 22 Jun 2015 22:39:55 +0000 (22:39 +0000)]
Merge "Change GC to allow strings to use large object space."