Flutter Engine
The Flutter Engine
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
scavenger.cc File Reference
#include "vm/heap/scavenger.h"
#include "platform/assert.h"
#include "platform/leak_sanitizer.h"
#include "vm/class_id.h"
#include "vm/compiler/runtime_api.h"
#include "vm/dart.h"
#include "vm/dart_api_state.h"
#include "vm/flag_list.h"
#include "vm/flags.h"
#include "vm/heap/become.h"
#include "vm/heap/gc_shared.h"
#include "vm/heap/marker.h"
#include "vm/heap/pages.h"
#include "vm/heap/pointer_block.h"
#include "vm/heap/safepoint.h"
#include "vm/heap/verifier.h"
#include "vm/heap/weak_table.h"
#include "vm/isolate.h"
#include "vm/lockers.h"
#include "vm/log.h"
#include "vm/longjump.h"
#include "vm/object.h"
#include "vm/object_id_ring.h"
#include "vm/object_set.h"
#include "vm/port.h"
#include "vm/stack_frame.h"
#include "vm/tagged_pointer.h"
#include "vm/thread_barrier.h"
#include "vm/timeline.h"
#include "vm/visitor.h"

Go to the source code of this file.

Classes

class  dart::ScavengerVisitorBase< parallel >
 
class  dart::ScavengerWeakVisitor
 
class  dart::ParallelScavengerTask
 
class  dart::CollectStoreBufferScavengeVisitor
 
class  dart::CheckStoreBufferScavengeVisitor
 

Namespaces

namespace  dart
 

Typedefs

typedef ScavengerVisitorBase< false > dart::SerialScavengerVisitor
 
typedef ScavengerVisitorBase< truedart::ParallelScavengerVisitor
 

Enumerations

enum  { dart::kForwardingMask = 1 << UntaggedObject::kCardRememberedBit , dart::kNotForwarded = 0 , dart::kForwarded = kForwardingMask }
 
enum  dart::RootSlices {
  dart::kIsolate = 0 , dart::kObjectIdRing = 1 , dart::kNumFixedRootSlices = 2 , dart::kIsolate = 0 ,
  dart::kObjectIdRing = 1 , dart::kNumRootSlices
}
 
enum  dart::WeakSlices {
  dart::kWeakHandles = 0 , dart::kWeakTables , dart::kRememberedSet , dart::kNumWeakSlices ,
  dart::kWeakHandles = 0 , dart::kWeakTables , dart::kProgressBars , dart::kRememberLiveTemporaries ,
  dart::kPruneWeak , dart::kNumWeakSlices
}
 

Functions

 dart::DEFINE_FLAG (int, early_tenuring_threshold, 66, "When more than this percentage of promotion candidates survive, " "promote all survivors of next scavenge.")
 
 dart::DEFINE_FLAG (int, new_gen_garbage_threshold, 90, "Grow new gen when less than this percentage is garbage.")
 
 dart::DEFINE_FLAG (int, new_gen_growth_factor, 2, "Grow new gen by this factor.")
 
 dart::COMPILE_ASSERT (static_cast< uword >(kForwarded)==static_cast< uword >(kHeapObjectTag))
 
static DART_FORCE_INLINE bool dart::IsForwarding (uword header)
 
static DART_FORCE_INLINE ObjectPtr dart::ForwardedObj (uword header)
 
static DART_FORCE_INLINE uword dart::ForwardingHeader (ObjectPtr target)
 
static NO_SANITIZE_THREAD void dart::objcpy (void *dst, const void *src, size_t size)
 
static DART_FORCE_INLINE uword dart::ReadHeaderRelaxed (ObjectPtr obj)
 
static DART_FORCE_INLINE void dart::WriteHeaderRelaxed (ObjectPtr obj, uword header)
 
static bool dart::IsUnreachable (ObjectPtr *ptr)
 
static bool dart::IsScavengeSurvivor (ObjectPtr obj)
 

Variables

static constexpr intptr_t dart::kConservativeInitialScavengeSpeed = 40