V8 Project
|
#include <zone.h>
Public Member Functions | |
Zone (Isolate *isolate) | |
~Zone () | |
void * | New (int size) |
template<typename T > | |
T * | NewArray (int length) |
void | DeleteAll () |
void | DeleteKeptSegment () |
bool | excess_allocation () |
void | adjust_segment_bytes_allocated (int delta) |
unsigned | allocation_size () const |
Isolate * | isolate () const |
Private Member Functions | |
Address | NewExpand (int size) |
INLINE (Segment *NewSegment(int size)) | |
INLINE (void DeleteSegment(Segment *segment, int size)) | |
Private Attributes | |
unsigned | allocation_size_ |
int | segment_bytes_allocated_ |
Address | position_ |
Address | limit_ |
Segment * | segment_head_ |
Isolate * | isolate_ |
Static Private Attributes | |
static const int | kAlignment = kPointerSize |
static const int | kMinimumSegmentSize = 8 * KB |
static const int | kMaximumSegmentSize = 1 * MB |
static const int | kMaximumKeptSegmentSize = 64 * KB |
static const int | kExcessLimit = 256 * MB |
Friends | |
class | Isolate |
|
explicit |
Definition at line 47 of file zone.cc.
v8::internal::Zone::~Zone | ( | ) |
Definition at line 57 of file zone.cc.
References DCHECK, DeleteAll(), DeleteKeptSegment(), and segment_bytes_allocated_.
|
inline |
Definition at line 32 of file zone-inl.h.
References v8::internal::Isolate::counters(), isolate_, and segment_bytes_allocated_.
|
inline |
Definition at line 66 of file zone.h.
References allocation_size_.
Referenced by v8::internal::compiler::PhaseStats::~PhaseStats().
void v8::internal::Zone::DeleteAll | ( | ) |
Definition at line 106 of file zone.cc.
References ASAN_UNPOISON_MEMORY_REGION, v8::internal::Segment::capacity(), v8::internal::Segment::clear_next(), v8::internal::Segment::end(), kAlignment, kMaximumKeptSegmentSize, limit_, v8::internal::Segment::next(), NULL, position_, v8::internal::RoundUp(), segment_head_, size, and v8::internal::Segment::start().
Referenced by ~Zone(), and v8::internal::ZoneScope::~ZoneScope().
void v8::internal::Zone::DeleteKeptSegment | ( | ) |
Definition at line 158 of file zone.cc.
References ASAN_UNPOISON_MEMORY_REGION, DCHECK, v8::internal::Segment::next(), NULL, segment_bytes_allocated_, segment_head_, size, and v8::internal::Segment::size().
Referenced by v8::internal::Isolate::~Isolate(), and ~Zone().
|
inline |
|
private |
|
private |
|
inline |
Definition at line 68 of file zone.h.
References isolate_.
Referenced by v8::internal::CharacterRange::AddCaseEquivalents(), v8::internal::RegExpCompiler::Assemble(), v8::internal::RegExpEngine::Compile(), v8::internal::compiler::Scheduler::ComputeSchedule(), v8::internal::compiler::Scheduler::ComputeSpecialRPO(), v8::internal::ScopeInfo::Create(), v8::internal::BoyerMooreLookahead::EmitSkipInstructions(), v8::internal::EmitUseLookupTable(), v8::internal::Analysis::EnsureAnalyzed(), v8::internal::TextNode::GetQuickCheckDetails(), v8::internal::compiler::LinkageHelper< LinkageTraits >::GetStubCallDescriptor(), v8::internal::compiler::JSGraph::isolate(), v8::internal::compiler::Typer::isolate(), v8::internal::compiler::StructuredGraphBuilder::isolate(), v8::internal::compiler::OperandGenerator::isolate(), v8::internal::compiler::JSGenericLowering::isolate(), v8::internal::compiler::RawMachineAssembler::isolate(), v8::internal::TypeFeedbackOracle::isolate(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::New(), v8::internal::compiler::operator<<(), v8::internal::compiler::ScheduleVerifier::Run(), v8::internal::compiler::Scheduler::ScheduleLate(), v8::internal::TextNode::TextEmitPass(), and v8::internal::compiler::Typer::Typer().
void * v8::internal::Zone::New | ( | int | size | ) |
Definition at line 65 of file zone.cc.
References allocation_size_, DCHECK, v8::internal::IsAddressAligned(), kAlignment, v8::internal::kASanRedzoneBytes, v8::internal::kPointerSize, limit_, NewExpand(), position_, v8::internal::RoundUp(), and size.
Referenced by v8::internal::compiler::BlockList::Add(), v8::internal::Interface::DoAdd(), v8::internal::DynamicScopePart::DynamicScopePart(), v8::internal::compiler::GenericNode< B, S >::EnsureAppendableInputs(), v8::internal::compiler::GenericNode< B, S >::New(), v8::internal::compiler::GapInstruction::New(), v8::internal::compiler::FINAL< kOperandKind, kNumCachedOperands >::New(), v8::internal::compiler::Instruction::New(), NewArray(), v8::internal::HOptimizedGraphBuilder::operator new(), and v8::internal::ZoneTypeConfig::struct_create().
Definition at line 46 of file zone.h.
References CHECK, New(), and T.
Referenced by v8::internal::zone_allocator< T >::allocate(), v8::internal::compiler::ComputeLoopInfo(), v8::internal::compiler::Scheduler::ComputeSpecialRPO(), v8::internal::HPositionInfo::ensure_storage_for_operand_positions(), v8::internal::compiler::NodeCache< Key >::Find(), v8::internal::AstValueFactory::GetString(), v8::internal::FINAL< kOperandKind, kNumCachedOperands >::Grow(), v8::internal::compiler::StructuredGraphBuilder::MakeNode(), v8::internal::compiler::StructuredGraphBuilder::NewEffectPhi(), v8::internal::compiler::StructuredGraphBuilder::NewPhi(), v8::internal::compiler::AstGraphBuilder::ProcessArguments(), v8::internal::compiler::RawMachineAssembler::RawMachineAssembler(), and v8::internal::compiler::NodeCache< Key >::Resize().
Definition at line 201 of file zone.cc.
References DCHECK, v8::internal::Segment::end(), v8::internal::V8::FatalProcessOutOfMemory(), kAlignment, kMaximumSegmentSize, kMinimumSegmentSize, limit_, v8::internal::Max(), NULL, position_, RoundDown(), v8::internal::RoundUp(), segment_head_, size, v8::internal::Segment::size(), and v8::internal::Segment::start().
Referenced by New().
|
private |
Definition at line 96 of file zone.h.
Referenced by allocation_size(), and New().
|
private |
Definition at line 123 of file zone.h.
Referenced by adjust_segment_bytes_allocated(), and isolate().
|
staticprivate |
Definition at line 80 of file zone.h.
Referenced by DeleteAll(), New(), and NewExpand().
Definition at line 93 of file zone.h.
Referenced by excess_allocation().
Definition at line 90 of file zone.h.
Referenced by DeleteAll().
Definition at line 87 of file zone.h.
Referenced by NewExpand().
Definition at line 84 of file zone.h.
Referenced by NewExpand().
|
private |
Definition at line 120 of file zone.h.
Referenced by DeleteAll(), New(), and NewExpand().
|
private |
Definition at line 119 of file zone.h.
Referenced by DeleteAll(), New(), and NewExpand().
|
private |
Definition at line 101 of file zone.h.
Referenced by adjust_segment_bytes_allocated(), DeleteKeptSegment(), excess_allocation(), and ~Zone().
|
private |
Definition at line 122 of file zone.h.
Referenced by DeleteAll(), DeleteKeptSegment(), and NewExpand().