-
Enhancement
-
Resolution: Fixed
-
P4
-
23
-
b13
In the compaction phase of a full-GC, we perform bitmap-iteration for two purposes:
1. Inside the dense-prefix, adjust pointers in live ranges and fill dead ranges with fillers.
2. Outside the dense-prefix, to relocate objects and adjust pointers in live ranges.
For work partitioning, such bitmap-iteration is done on a region granularity. If the final object on a region extends to the next region, the iteration logic will end with an "incomplete" status. The caller is then responsible for invoking the live-closure itself.
To reduce the number of possible return statuses, the iteration logic can directly invoke the live-closure on the final object in a region.
1. Inside the dense-prefix, adjust pointers in live ranges and fill dead ranges with fillers.
2. Outside the dense-prefix, to relocate objects and adjust pointers in live ranges.
For work partitioning, such bitmap-iteration is done on a region granularity. If the final object on a region extends to the next region, the iteration logic will end with an "incomplete" status. The caller is then responsible for invoking the live-closure itself.
To reduce the number of possible return statuses, the iteration logic can directly invoke the live-closure on the final object in a region.