Lines Matching defs:frontier

292 // chunks. Marks those chunks with |tag| and adds them to |frontier|.
296 // so |frontier| = 0.
297 void ScanRangeForPointers(uptr begin, uptr end, Frontier *frontier,
337 if (frontier)
338 frontier->push_back(chunk);
343 void ScanGlobalRange(uptr begin, uptr end, Frontier *frontier) {
350 ScanRangeForPointers(begin, allocator_begin, frontier, "GLOBAL",
353 ScanRangeForPointers(allocator_end, end, frontier, "GLOBAL", kReachable);
355 ScanRangeForPointers(begin, end, frontier, "GLOBAL", kReachable);
360 Frontier *frontier) {
362 ScanRangeForPointers(ranges[i].begin, ranges[i].end, frontier, "FAKE STACK",
381 static void ProcessThreadRegistry(Frontier *frontier) {
394 // Mark as reachable and add to frontier.
397 frontier->push_back(chunk);
403 Frontier *frontier, tid_t caller_tid,
440 ScanRangeForPointers(registers_begin, registers_end, frontier,
465 ScanRangeForPointers(stack_begin, stack_end, frontier, "STACK",
469 ScanExtraStackRanges(extra_ranges, frontier);
479 ScanRangeForPointers(tls_begin, tls_end, frontier, "TLS", kReachable);
482 ScanRangeForPointers(tls_begin, cache_begin, frontier, "TLS",
485 ScanRangeForPointers(cache_end, tls_end, frontier, "TLS",
501 __libc_iterate_dynamic_tls(os_id, cb, frontier);
510 ScanRangeForPointers(dtls_beg, dtls_end, frontier, "DTLS",
524 ProcessThreadRegistry(frontier);
543 void ScanRootRegions(Frontier *frontier,
560 ScanRangeForPointers(r.begin, r.end, frontier, "ROOT", kReachable);
565 static void ProcessRootRegions(Frontier *frontier) {
574 ScanRootRegions(frontier, mapped_regions);
577 static void FloodFillTag(Frontier *frontier, ChunkTag tag) {
578 while (frontier->size()) {
579 uptr next_chunk = frontier->back();
580 frontier->pop_back();
582 ScanRangeForPointers(next_chunk, next_chunk + m.requested_size(), frontier,
594 /* frontier */ nullptr, "HEAP", kIndirectlyLeaked);
617 // frontier.
631 Frontier *frontier, tid_t caller_tid,
639 ForEachChunk(CollectIgnoredCb, frontier);
640 ProcessGlobalRegions(frontier);
641 ProcessThreads(suspended_threads, frontier, caller_tid, caller_sp);
642 ProcessRootRegions(frontier);
643 FloodFillTag(frontier, kReachable);
649 ProcessPlatformSpecificAllocations(frontier);
650 FloodFillTag(frontier, kReachable);
733 ClassifyAllChunks(suspended_threads, &param->frontier, param->caller_tid,