Sweep only objects in the live stack in sticky-bit CC collections.
Reuse the same strategy used in sticky-bit Concurrent Mark-Sweep
(CMS) collections for sticky-bit Concurrent Copying (CC) collections
walk the live stack (which contains allocations made outside the
region space since the previous GC thread flip phase) and free
unmarked objects.
As a side effect, this change address a bug that used to trigger GC
crashes during a sticky-bit CC (young-generation) collection involving
an unreachable newly allocated object in the non-moving space with a
dangling reference to an object cleared or moved from a newly
allocated region of the region space.
Test: ART run-tests & gtests, libcore tests, JDWP tests (host & device)
Test: Device/emulator boot test
Bug: 67628039
Bug: 12687968
Change-Id: If5d94d854effdc8a614c1c3e3facb2221824aff2
diff --git a/test/knownfailures.json b/test/knownfailures.json
index 7322a35..9ade2b1 100644
--- a/test/knownfailures.json
+++ b/test/knownfailures.json
@@ -986,6 +986,7 @@
"678-quickening",
"679-locks",
"999-redefine-hiddenapi",
+ "1000-non-moving-space-stress",
"1951-monitor-enter-no-suspend"],
"variant": "jvm",
"description": ["Doesn't run on RI."]