v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
weak-object-worklists.h File Reference
Include dependency graph for weak-object-worklists.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  v8::internal::Ephemeron
 
struct  v8::internal::detail::HeapObjectAndSlotPOD< TSlotType >
 
struct  v8::internal::HeapObjectAndCode
 
class  v8::internal::WeakObjects
 
class  v8::internal::WeakObjects::UnusedBase
 
class  v8::internal::WeakObjects::Local
 

Namespaces

namespace  v8
 
namespace  v8::internal
 
namespace  v8::internal::detail
 

Macros

#define WEAK_OBJECT_WORKLISTS_GENERIC(F)
 
#define WEAK_OBJECT_WORKLISTS(F)
 
#define DECLARE_WORKLIST(Type, name, _)
 
#define DECLARE_WORKLIST(Type, name, _)
 

Typedefs

using v8::internal::HeapObjectAndSlot = detail::HeapObjectAndSlotPOD<HeapObjectSlot>
 
using v8::internal::TrustedObjectAndSlot
 

Macro Definition Documentation

◆ DECLARE_WORKLIST [1/2]

#define DECLARE_WORKLIST ( Type,
name,
_ )
Value:
WeakObjectWorklist<Type>::Local name##_local;

Definition at line 99 of file weak-object-worklists.h.

◆ DECLARE_WORKLIST [2/2]

#define DECLARE_WORKLIST ( Type,
name,
_ )
Value:
WeakObjectWorklist<Type> name;
const char * name
Definition builtins.cc:39

Definition at line 99 of file weak-object-worklists.h.

◆ WEAK_OBJECT_WORKLISTS

#define WEAK_OBJECT_WORKLISTS ( F)
Value:
F(Tagged<JSFunction>, baseline_flushing_candidates, \
BaselineFlushingCandidates)
#define F(name, str)
#define WEAK_OBJECT_WORKLISTS_GENERIC(F)

Definition at line 79 of file weak-object-worklists.h.

◆ WEAK_OBJECT_WORKLISTS_GENERIC

#define WEAK_OBJECT_WORKLISTS_GENERIC ( F)
Value:
F(Tagged<TransitionArray>, transition_arrays, TransitionArrays) \
/* Keep track of all EphemeronHashTables in the heap to process \
them in the atomic pause. */ \
F(Tagged<EphemeronHashTable>, ephemeron_hash_tables, EphemeronHashTables) \
/* Keep track of all ephemerons for concurrent marking tasks. Only store \
ephemerons in these worklists if both (key, value) are unreachable at \
the moment. \
MarkCompactCollector::MarkTransitiveClosureUntilFixpoint drains/fills \
these worklists. current_ephemerons is used as draining worklist in \
the current fixpoint iteration. */ \
F(Ephemeron, current_ephemerons, CurrentEphemerons) \
/* Stores ephemerons to visit in the next fixpoint iteration. */ \
F(Ephemeron, next_ephemerons, NextEphemerons) \
/* TODO(marja): For old space, we only need the slot, not the host object. \
Optimize this by adding a different storage for old space. */ \
F(HeapObjectAndSlot, weak_references_trivial, WeakReferencesTrivial) \
F(HeapObjectAndSlot, weak_references_non_trivial, WeakReferencesNonTrivial) \
F(HeapObjectAndSlot, weak_references_non_trivial_unmarked, \
WeakReferencesNonTrivialUnmarked) \
F(TrustedObjectAndSlot, weak_references_trusted, WeakReferencesTrusted) \
F(HeapObjectAndCode, weak_objects_in_code, WeakObjectsInCode) \
F(Tagged<JSWeakRef>, js_weak_refs, JSWeakRefs) \
F(Tagged<WeakCell>, weak_cells, WeakCells) \
F(Tagged<SharedFunctionInfo>, code_flushing_candidates, \
CodeFlushingCandidates) \
F(Tagged<JSFunction>, flushed_js_functions, FlushedJSFunctions)

Definition at line 53 of file weak-object-worklists.h.