Home | History | Annotate | Download | only in heap

Lines Matching refs:MARKING

5 #include "src/heap/incremental-marking.h"
42 DCHECK(!Marking::IsImpossible(value_bit));
45 DCHECK(!Marking::IsImpossible(obj_bit));
46 bool is_black = Marking::IsBlack(obj_bit);
48 if (is_black && Marking::IsWhite(value_bit)) {
76 IncrementalMarking* marking = isolate->heap()->incremental_marking();
79 marking->RecordWriteOfCodeEntry(host, slot, value);
122 Marking::WhiteToGrey(mark_bit);
131 if (Marking::IsBlack(mark_bit)) {
134 Marking::AnyToGrey(mark_bit);
155 Marking::ObjectColor old_color = Marking::Color(old_mark_bit);
158 if (Marking::IsBlack(old_mark_bit)) {
159 Marking::BlackToWhite(old_mark_bit);
160 Marking::MarkBlack(new_mark_bit);
162 } else if (Marking::IsGrey(old_mark_bit)) {
163 Marking::GreyToWhite(old_mark_bit);
170 Marking::ObjectColor new_color = Marking::Color(new_mark_bit);
193 // the array and try to push it onto the marking deque again until it is
213 if (Marking::IsGrey(ObjectMarking::MarkBitFrom(object))) {
216 DCHECK(Marking::IsBlack(ObjectMarking::MarkBitFrom(object)));
230 // We will mark cache black with a separate pass when we finish marking.
259 // Marks the object grey and pushes it on the marking stack.
264 // Marks the object black without pushing it on the marking stack.
265 // Returns true if object needed marking and false otherwise.
269 if (Marking::IsWhite(mark_bit)) {
270 Marking::MarkBlack(mark_bit);
279 if (IsMarking() && Marking::IsBlack(ObjectMarking::MarkBitFrom(object))) {
402 // Only start incremental marking in a safe state: 1) when incremental
403 // marking is turned on, 2) when we are currently not in a GC, and
416 // we don't need to do anything if incremental marking is
508 // Black allocation currently starts when we start incremental marking,
510 // have to delay the start of incremental marking in that case.
519 "[IncrementalMarking] Start marking\n");
525 state_ = MARKING;
543 // Marking bits are cleared by the sweeper.
557 // Ready to start incremental marking.
664 Marking::IsWhite(
696 Marking::IsWhite(map_mark)) {
702 Marking::IsWhite(
731 // After finishing incremental marking, we try to discover all unmarked
732 // objects to reduce the marking load in the final pause.
760 "spent %d ms, marking progress %d.\n",
775 // TODO(hpayer): Move to an earlier point as soon as we make faster marking
802 // There may be objects on the marking deque that do not exist anymore,
804 // If these object are dead at scavenging time, their marking deque
809 if (Marking::IsBlack(ObjectMarking::MarkBitFrom(dest->address())))
816 DCHECK(Marking::IsGrey(mark_bit) ||
817 (obj->IsFiller() && Marking::IsWhite(mark_bit)));
829 DCHECK(Marking::IsGrey(mark_bit) ||
830 (obj->IsFiller() && Marking::IsWhite(mark_bit)) ||
832 Marking::IsBlack(mark_bit)));
848 SLOW_DCHECK(Marking::IsGrey(mark_bit) ||
849 (obj->IsFiller() && Marking::IsWhite(mark_bit)) ||
851 Marking::IsBlack(mark_bit)));
858 if (Marking::IsWhite(mark_bit)) {
865 if (Marking::IsBlack(mark_bit)) return;
866 Marking::GreyToBlack(mark_bit);
879 // Left trimming may result in white filler objects on the marking deque.
882 DCHECK(Marking::IsImpossible(ObjectMarking::MarkBitFrom(obj)) ||
883 Marking::IsWhite(ObjectMarking::MarkBitFrom(obj)));
898 // A scavenge may have pushed new objects on the marking deque (due to black
901 // incremental marking finished and a regular GC was triggered after that
934 if (Marking::IsGrey(mark_bit)) {
935 Marking::GreyToBlack(mark_bit);
992 "marking.\n");
1068 // leave marking work to standalone tasks. The ramp up duration and the
1089 (state_ != SWEEPING && state_ != MARKING)) {
1098 // Cap the step size to distribute the marking work more uniformly.
1107 // We skip processing of marking dequeue here and thus
1108 // shift marking time from inside V8 to standalone tasks.
1135 if (state_ == MARKING) {
1178 // when we just started incremental marking. In these cases we did not
1179 // process the marking deque.