Home | History | Annotate | Download | only in src

Lines Matching refs:Heap

119   if (!Heap::map_space()->MapPointersEncodable())
195 // Marking all live objects in the heap as part of mark-sweep or mark-compact
214 // the heap looking for objects marked as overflowed, push them on the stack,
222 // Optimization: If the heap object pointed to by p is a non-symbol
223 // cons string whose right substring is Heap::empty_string, update
226 // Here we assume that if we change *p, we replace it with a heap object
227 // (ie, the left substring of a cons string is always a heap object).
231 // (ConsString::cast(object)->second() == Heap::empty_string())
241 if (second != Heap::raw_unchecked_empty_string()) {
249 if (!Heap::InNewSpace(object) && Heap::InNewSpace(first)) return object;
279 // marked since they are contained in Heap::non_monomorphic_cache().
306 ASSERT(Heap::Contains(obj));
335 // Visitor class for marking heap roots.
367 // overflowed objects in the heap.
388 Heap::FinalizeExternalString(String::cast(*p));
391 *p = Heap::raw_unchecked_null_value();
407 ASSERT(Heap::Contains(object));
445 ASSERT(descriptors != Heap::raw_unchecked_empty_descriptor_array());
478 HeapObjectIterator iterator(Heap::map_space());
487 ASSERT(map->instance_descriptors() == Heap::empty_descriptor_array());
517 ASSERT(Heap::Contains(object));
531 SymbolTable* symbol_table = Heap::raw_unchecked_symbol_table();
542 // Mark the heap roots including global variables, stack variables,
544 Heap::IterateStrongRoots(visitor, VISIT_ONLY_STRONG);
549 // There may be overflowed objects in the heap. Visit them now.
576 // An object in the group is marked, so mark as gray all white heap
592 // Before: the marking stack contains zero or more heap object pointers.
594 // marking stack have been marked, or are overflowed in the heap.
599 ASSERT(Heap::Contains(object));
615 // Sweep the heap for overflowed objects, clear their overflow bits, and
618 // overflowed objects in the heap so the overflow flag on the markings stack
623 SemiSpaceIterator new_it(Heap::new_space(), &OverflowObjectSize);
627 HeapObjectIterator old_pointer_it(Heap::old_pointer_space(),
632 HeapObjectIterator old_data_it(Heap::old_data_space(), &OverflowObjectSize);
636 HeapObjectIterator code_it(Heap::code_space(), &OverflowObjectSize);
640 HeapObjectIterator map_it(Heap::map_space(), &OverflowObjectSize);
644 HeapObjectIterator cell_it(Heap::cell_space(), &OverflowObjectSize);
648 LargeObjectIterator lo_it(Heap::lo_space(), &OverflowObjectSize);
657 // stack. Before: the marking stack contains zero or more heap object
659 // objects in the heap.
687 marking_stack.Initialize(Heap::new_space()->FromSpaceLow(),
688 Heap::new_space()->FromSpaceHigh());
722 SymbolTable* symbol_table = Heap::raw_unchecked_symbol_table();
744 if (Heap::new_space()->Contains(obj)) {
746 } else if (Heap::map_space()->Contains(obj)) {
749 } else if (Heap::cell_space()->Contains(obj)) {
752 } else if (Heap::old_pointer_space()->Contains(obj)) {
754 } else if (Heap::old_data_space()->Contains(obj)) {
756 } else if (Heap::code_space()->Contains(obj)) {
758 } else if (Heap::lo_space()->Contains(obj)) {
774 Heap::lo_space()->FreeUnmarkedObjects();
785 HeapObjectIterator map_iterator(Heap::map_space(), &CountMarkedCallback);
847 // sweeps of the heap. A distinguished map-pointer encoding is used to mark
888 // Try to promote all objects in new space. Heap numbers and sequential
893 if (object_size > Heap::MaxObjectSizeInPagedSpace()) {
896 OldSpace* target_space = Heap::TargetSpace(object);
897 ASSERT(target_space == Heap::old_pointer_space() ||
898 target_space == Heap::old_data_space());
902 forwarded = Heap::new_space()->MCAllocateRaw(object_size);
911 return Heap::old_pointer_space()->MCAllocateRaw(object_size);
916 return Heap::old_data_space()->MCAllocateRaw(object_size);
921 return Heap::code_space()->MCAllocateRaw(object_size);
926 Heap::map_space()->MCAllocateRaw(object_size);
931 return Heap::cell_space()->MCAllocateRaw(object_size);
942 Heap::new_space()->ToSpaceOffsetForAddress(old_object->address());
943 Memory::Address_at(Heap::new_space()->FromSpaceLow() + offset) =
1045 Heap::new_space()->bottom(),
1046 Heap::new_space()->top(),
1085 object->set_map(Heap::raw_unchecked_byte_array_map());
1089 object->set_map(Heap::raw_unchecked_one_pointer_filler_map());
1144 Heap::ClearRSetRange(start, size_in_bytes);
1145 Heap::old_pointer_space()->Free(start, size_in_bytes);
1151 Heap::old_data_space()->Free(start, size_in_bytes);
1157 Heap::code_space()->Free(start, size_in_bytes);
1167 Heap::ClearRSetRange(start, size_in_bytes);
1170 Heap::map_space()->Free(a);
1180 int size = Heap::cell_space()->object_size_in_bytes();
1182 Heap::ClearRSetRange(start, size_in_bytes);
1185 Heap::cell_space()->Free(a);
1195 Heap::new_space()->MCResetRelocationInfo();
1200 Heap::old_pointer_space());
1204 Heap::old_data_space());
1208 Heap::code_space());
1212 Heap::cell_space());
1224 Heap::map_space());
1229 Heap::old_pointer_space()->MCWriteRelocationInfoToPage();
1230 Heap::old_data_space()->MCWriteRelocationInfoToPage();
1231 Heap::code_space()->MCWriteRelocationInfoToPage();
1232 Heap::map_space()->MCWriteRelocationInfoToPage();
1233 Heap::cell_space()->MCWriteRelocationInfoToPage();
1239 MapIterator() : HeapObjectIterator(Heap::map_space(), &SizeCallback) { }
1242 : HeapObjectIterator(Heap::map_space(), start, &SizeCallback) { }
1256 to_evacuate_start_(Heap::map_space()->TopAfterCompaction(live_maps)),
1277 Heap::IterateRoots(&map_updating_visitor_, VISIT_ONLY_STRONG);
1291 Heap::UpdateRSet(map);
1296 ASSERT(space != Heap::map_space());
1306 NewSpace* space = Heap::new_space();
1311 LargeObjectIterator it(Heap::lo_space());
1317 Heap::map_space()->FinishCompaction(to_evacuate_start_, live_maps_);
1410 ASSERT(Heap::map_space()->Contains(map));
1415 ASSERT(Heap::map_space()->Contains(new_map));
1464 SweepSpace(Heap::old_pointer_space(), &DeallocateOldPointerBlock);
1465 SweepSpace(Heap::old_data_space(), &DeallocateOldDataBlock);
1466 SweepSpace(Heap::code_space(), &DeallocateCodeBlock);
1467 SweepSpace(Heap::cell_space(), &DeallocateCellBlock);
1468 SweepSpace(Heap::new_space());
1469 SweepSpace(Heap::map_space(), &DeallocateMapBlock);
1470 int live_maps = Heap::map_space()->Size() / Map::kSize;
1473 if (Heap::map_space()->NeedsCompaction(live_maps)) {
1483 if (space == Heap::map_space()) continue;
1581 ASSERT(!Heap::InFromSpace(obj));
1583 if (Heap::new_space()->Contains(obj)) {
1585 Heap::new_space()->FromSpaceLow() +
1586 Heap::new_space()->ToSpaceOffsetForAddress(old_addr);
1590 ASSERT(Heap::old_pointer_space()->Contains(new_addr) ||
1591 Heap::old_data_space()->Contains(new_addr) ||
1592 Heap::new_space()->FromSpaceContains(new_addr) ||
1593 Heap::lo_space()->Contains(HeapObject::FromAddress(new_addr)));
1595 if (Heap::new_space()->FromSpaceContains(new_addr)) {
1596 ASSERT(Heap::new_space()->FromSpaceOffsetForAddress(new_addr) <=
1597 Heap::new_space()->ToSpaceOffsetForAddress(old_addr));
1601 } else if (Heap::lo_space()->Contains(obj)) {
1639 Heap::IterateRoots(&updating_visitor, VISIT_ONLY_STRONG);
1642 int live_maps = IterateLiveObjects(Heap::map_space(),
1644 int live_pointer_olds = IterateLiveObjects(Heap::old_pointer_space(),
1646 int live_data_olds = IterateLiveObjects(Heap::old_data_space(),
1648 int live_codes = IterateLiveObjects(Heap::code_space(),
1650 int live_cells = IterateLiveObjects(Heap::cell_space(),
1652 int live_news = IterateLiveObjects(Heap::new_space(),
1656 LargeObjectIterator it(Heap::lo_space());
1682 ASSERT(Heap::map_space()->Contains(old_map));
1683 ASSERT(Heap::map_space()->Contains(forwarded));
1707 Address map_addr = encoding.DecodeMapAddress(Heap::map_space());
1708 ASSERT(Heap::map_space()->Contains(HeapObject::FromAddress(map_addr)));
1786 int live_maps = IterateLiveObjects(Heap::map_space(), &RelocateMapObject);
1787 int live_pointer_olds = IterateLiveObjects(Heap::old_pointer_space(),
1789 int live_data_olds = IterateLiveObjects(Heap::old_data_space(),
1791 int live_codes = IterateLiveObjects(Heap::code_space(), &RelocateCodeObject);
1792 int live_cells = IterateLiveObjects(Heap::cell_space(), &RelocateCellObject);
1793 int live_news = IterateLiveObjects(Heap::new_space(), &RelocateNewObject);
1809 Heap::new_space()->Flip();
1812 Address mark = Heap::new_space()->bottom();
1813 Heap::new_space()->set_age_mark(mark);
1815 Heap::new_space()->MCCommitRelocationInfo();
1830 Address map_addr = encoding.DecodeMapAddress(Heap::map_space());
1831 ASSERT(Heap::map_space()->Contains(HeapObject::FromAddress(map_addr)));
1887 Address map_addr = encoding.DecodeMapAddress(Heap::map_space());
1888 ASSERT(Heap::map_space()->Contains(map_addr));
1914 return RelocateOldNonCodeObject(obj, Heap::old_pointer_space());
1919 return RelocateOldNonCodeObject(obj, Heap::old_data_space());
1924 return RelocateOldNonCodeObject(obj, Heap::cell_space());
1931 Address map_addr = encoding.DecodeMapAddress(Heap::map_space());
1932 ASSERT(Heap::map_space()->Contains(HeapObject::FromAddress(map_addr)));
1938 int obj_size = RestoreMap(obj, Heap::code_space(), new_addr, map_addr);
1963 int offset = Heap::new_space()->ToSpaceOffsetForAddress(old_addr);
1966 Memory::Address_at(Heap::new_space()->FromSpaceLow() + offset);
1969 if (Heap::new_space()->FromSpaceContains(new_addr)) {
1970 ASSERT(Heap::new_space()->FromSpaceOffsetForAddress(new_addr) <=
1971 Heap::new_space()->ToSpaceOffsetForAddress(old_addr));
1973 ASSERT(Heap::TargetSpace(obj) == Heap::old_pointer_space() ||
1974 Heap::TargetSpace(obj) == Heap::old_data_space());
2006 Heap::RebuildRSets();