28 #ifndef V8_INCREMENTAL_MARKING_INL_H_
29 #define V8_INCREMENTAL_MARKING_INL_H_
37 bool IncrementalMarking::BaseRecordWrite(HeapObject* obj,
55 void IncrementalMarking::RecordWrite(HeapObject* obj,
58 if (IsMarking() && value->NonFailureIsHeapObject()) {
64 void IncrementalMarking::RecordWriteOfCodeEntry(JSFunction* host,
71 void IncrementalMarking::RecordWriteIntoCode(HeapObject* obj,
74 if (IsMarking() && value->NonFailureIsHeapObject()) {
97 int obj_size = obj->
Size();
99 bytes_scanned_ -= obj_size;
100 int64_t old_bytes_rescanned = bytes_rescanned_;
101 bytes_rescanned_ = old_bytes_rescanned + obj_size;
102 if ((bytes_rescanned_ >> 20) != (old_bytes_rescanned >> 20)) {
110 PrintF(
"Hurrying incremental marking because of lack of progress\n");
126 bool IncrementalMarking::MarkObjectAndPush(
HeapObject* obj) {
128 if (!mark_bit.
Get()) {
136 bool IncrementalMarking::MarkObjectWithoutPush(HeapObject* obj) {
138 if (!mark_bit.Get()) {
149 #endif // V8_INCREMENTAL_MARKING_INL_H_
static bool IsBlack(MarkBit mark_bit)
void PrintF(const char *format,...)
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 MarkBit MarkBitFrom(Address addr)
void RecordWriteOfCodeEntrySlow(JSFunction *host, Object **slot, Code *value)
void RecordWrites(HeapObject *obj)
void WhiteToGreyAndPush(HeapObject *obj, MarkBit mark_bit)
void RecordWriteSlow(HeapObject *obj, Object **slot, Object *value)
intptr_t PromotedSpaceSizeOfObjects()
void PushGrey(HeapObject *object)
void RestartIfNotMarking()
static const intptr_t kMaxAllocationMarkingFactor
void UnshiftGrey(HeapObject *object)
void BlackToGreyAndUnshift(HeapObject *obj, MarkBit mark_bit)