28 #ifndef V8_INCREMENTAL_MARKING_INL_H_
29 #define V8_INCREMENTAL_MARKING_INL_H_
37 bool IncrementalMarking::BaseRecordWrite(HeapObject* obj,
51 if (!is_compacting_)
return false;
57 void IncrementalMarking::RecordWrite(HeapObject* obj,
60 if (IsMarking() && value->NonFailureIsHeapObject()) {
66 void IncrementalMarking::RecordWriteOfCodeEntry(JSFunction* host,
73 void IncrementalMarking::RecordWriteIntoCode(HeapObject* obj,
76 if (IsMarking() && value->NonFailureIsHeapObject()) {
99 int obj_size = obj->
Size();
101 bytes_scanned_ -= obj_size;
102 int64_t old_bytes_rescanned = bytes_rescanned_;
103 bytes_rescanned_ = old_bytes_rescanned + obj_size;
104 if ((bytes_rescanned_ >> 20) != (old_bytes_rescanned >> 20)) {
112 PrintPID(
"Hurrying incremental marking because of lack of progress\n");
130 #endif // V8_INCREMENTAL_MARKING_INL_H_
static bool IsBlack(MarkBit mark_bit)
static void WhiteToGrey(MarkBit markbit)
static HeapObject * cast(Object *obj)
static void BlackToGrey(MarkBit markbit)
#define ASSERT(condition)
void RecordWriteIntoCodeSlow(HeapObject *obj, RelocInfo *rinfo, Object *value)
static void IncrementLiveBytesFromGC(Address address, int by)
static bool IsWhite(MarkBit mark_bit)
static const intptr_t kMaxMarkingSpeed
static MarkBit MarkBitFrom(Address addr)
void RecordWriteOfCodeEntrySlow(JSFunction *host, Object **slot, Code *value)
void RecordWrites(HeapObject *obj)
void WhiteToGreyAndPush(HeapObject *obj, MarkBit mark_bit)
void PrintPID(const char *format,...)
void RecordWriteSlow(HeapObject *obj, Object **slot, Object *value)
intptr_t PromotedSpaceSizeOfObjects()
void PushGrey(HeapObject *object)
void RestartIfNotMarking()
void UnshiftGrey(HeapObject *object)
void BlackToGreyAndUnshift(HeapObject *obj, MarkBit mark_bit)