V8 Project
v8::internal::GlobalHandles::NodeBlock Class Reference
+ Collaboration diagram for v8::internal::GlobalHandles::NodeBlock:

Public Member Functions

 NodeBlock (GlobalHandles *global_handles, NodeBlock *next)
 
void PutNodesOnFreeList (Node **first_free)
 
Nodenode_at (int index)
 
void IncreaseUses ()
 
void DecreaseUses ()
 
GlobalHandlesglobal_handles ()
 
NodeBlocknext () const
 
NodeBlocknext_used () const
 
NodeBlockprev_used () const
 

Static Public Attributes

static const int kSize = 256
 

Private Attributes

Node nodes_ [kSize]
 
NodeBlock *const next_
 
int used_nodes_
 
NodeBlocknext_used_
 
NodeBlockprev_used_
 
GlobalHandlesglobal_handles_
 

Detailed Description

Definition at line 301 of file global-handles.cc.

Constructor & Destructor Documentation

◆ NodeBlock()

v8::internal::GlobalHandles::NodeBlock::NodeBlock ( GlobalHandles global_handles,
NodeBlock next 
)
inlineexplicit

Definition at line 305 of file global-handles.cc.

306  : next_(next),
307  used_nodes_(0),
308  next_used_(NULL),
309  prev_used_(NULL),
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL

Member Function Documentation

◆ DecreaseUses()

void v8::internal::GlobalHandles::NodeBlock::DecreaseUses ( )
inline

Definition at line 335 of file global-handles.cc.

335  {
336  DCHECK(used_nodes_ > 0);
337  if (--used_nodes_ == 0) {
340  if (this == global_handles_->first_used_block_) {
342  }
343  }
344  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK, v8::internal::GlobalHandles::first_used_block_, global_handles_, next_used_, NULL, prev_used_, and used_nodes_.

Referenced by v8::internal::GlobalHandles::Node::DecreaseBlockUses().

+ Here is the caller graph for this function:

◆ global_handles()

GlobalHandles* v8::internal::GlobalHandles::NodeBlock::global_handles ( )
inline

Definition at line 346 of file global-handles.cc.

346 { return global_handles_; }

References global_handles_.

Referenced by v8::internal::GlobalHandles::Node::DecreaseBlockUses(), v8::internal::GlobalHandles::Node::GetGlobalHandles(), and v8::internal::GlobalHandles::Node::IncreaseBlockUses().

+ Here is the caller graph for this function:

◆ IncreaseUses()

void v8::internal::GlobalHandles::NodeBlock::IncreaseUses ( )
inline

Definition at line 323 of file global-handles.cc.

323  {
325  if (used_nodes_++ == 0) {
328  next_used_ = old_first;
329  prev_used_ = NULL;
330  if (old_first == NULL) return;
331  old_first->prev_used_ = this;
332  }
333  }
NodeBlock(GlobalHandles *global_handles, NodeBlock *next)

References DCHECK, v8::internal::GlobalHandles::first_used_block_, global_handles_, kSize, next_used_, NULL, prev_used_, and used_nodes_.

Referenced by v8::internal::GlobalHandles::Node::IncreaseBlockUses().

+ Here is the caller graph for this function:

◆ next()

NodeBlock* v8::internal::GlobalHandles::NodeBlock::next ( ) const
inline

Definition at line 349 of file global-handles.cc.

349 { return next_; }

References next_.

Referenced by v8::internal::GlobalHandles::~GlobalHandles().

+ Here is the caller graph for this function:

◆ next_used()

NodeBlock* v8::internal::GlobalHandles::NodeBlock::next_used ( ) const
inline

Definition at line 352 of file global-handles.cc.

352 { return next_used_; }

References next_used_.

◆ node_at()

Node* v8::internal::GlobalHandles::NodeBlock::node_at ( int  index)
inline

Definition at line 318 of file global-handles.cc.

318  {
319  DCHECK(0 <= index && index < kSize);
320  return &nodes_[index];
321  }

References DCHECK, kSize, and nodes_.

◆ prev_used()

NodeBlock* v8::internal::GlobalHandles::NodeBlock::prev_used ( ) const
inline

Definition at line 353 of file global-handles.cc.

353 { return prev_used_; }

References prev_used_.

◆ PutNodesOnFreeList()

void v8::internal::GlobalHandles::NodeBlock::PutNodesOnFreeList ( Node **  first_free)
inline

Definition at line 312 of file global-handles.cc.

312  {
313  for (int i = kSize - 1; i >= 0; --i) {
314  nodes_[i].Initialize(i, first_free);
315  }
316  }
void Initialize(int index, Node **first_free)

References v8::internal::GlobalHandles::Node::Initialize(), kSize, and nodes_.

Referenced by v8::internal::GlobalHandles::Create().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ global_handles_

GlobalHandles* v8::internal::GlobalHandles::NodeBlock::global_handles_
private

Definition at line 361 of file global-handles.cc.

Referenced by DecreaseUses(), global_handles(), and IncreaseUses().

◆ kSize

const int v8::internal::GlobalHandles::NodeBlock::kSize = 256
static

◆ next_

NodeBlock* const v8::internal::GlobalHandles::NodeBlock::next_
private

Definition at line 357 of file global-handles.cc.

Referenced by next().

◆ next_used_

NodeBlock* v8::internal::GlobalHandles::NodeBlock::next_used_
private

Definition at line 359 of file global-handles.cc.

Referenced by DecreaseUses(), IncreaseUses(), and next_used().

◆ nodes_

Node v8::internal::GlobalHandles::NodeBlock::nodes_[kSize]
private

Definition at line 356 of file global-handles.cc.

Referenced by node_at(), and PutNodesOnFreeList().

◆ prev_used_

NodeBlock* v8::internal::GlobalHandles::NodeBlock::prev_used_
private

Definition at line 360 of file global-handles.cc.

Referenced by DecreaseUses(), IncreaseUses(), and prev_used().

◆ used_nodes_

int v8::internal::GlobalHandles::NodeBlock::used_nodes_
private

Definition at line 358 of file global-handles.cc.

Referenced by DecreaseUses(), and IncreaseUses().


The documentation for this class was generated from the following file: