v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::wasm::InliningTree Class Reference

#include <inlining-tree.h>

Inheritance diagram for v8::internal::wasm::InliningTree:
Collaboration diagram for v8::internal::wasm::InliningTree:

Classes

struct  Data
 

Public Types

using CasesPerCallSite = base::Vector<InliningTree*>
 

Public Member Functions

int64_t score () const
 
base::Vector< CasesPerCallSitefunction_calls ()
 
base::Vector< boolhas_non_inlineable_targets ()
 
bool feedback_found ()
 
bool is_inlined ()
 
uint32_t function_index ()
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Static Public Member Functions

static InliningTreeCreateRoot (Zone *zone, const WasmModule *module, uint32_t function_index)
 
static int NoLiftoffBudget (const WasmModule *module, uint32_t func_index)
 

Static Public Attributes

static constexpr int kMaxInlinedCount = 60
 
static constexpr uint32_t kMaxInliningNestingDepth = 7
 

Private Member Functions

 InliningTree (Data *shared, uint32_t function_index, int call_count, int wire_byte_size, uint32_t caller_index, int feedback_slot, int the_case, uint32_t depth)
 
void FullyExpand ()
 
void Inline ()
 
bool SmallEnoughToInline (size_t initial_wire_byte_size, size_t inlined_wire_byte_count)
 

Static Private Member Functions

static double BudgetScaleFactor (const WasmModule *module)
 

Private Attributes

Datadata_
 
uint32_t function_index_
 
int call_count_
 
int wire_byte_size_
 
bool is_inlined_ = false
 
bool feedback_found_ = false
 
base::Vector< CasesPerCallSitefunction_calls_ {}
 
base::Vector< boolhas_non_inlineable_targets_ {}
 
uint32_t depth_
 
uint32_t caller_index_
 
int feedback_slot_
 
int case_
 

Friends

class v8::internal::Zone
 

Detailed Description

Definition at line 35 of file inlining-tree.h.

Member Typedef Documentation

◆ CasesPerCallSite

Constructor & Destructor Documentation

◆ InliningTree()

v8::internal::wasm::InliningTree::InliningTree ( Data * shared,
uint32_t function_index,
int call_count,
int wire_byte_size,
uint32_t caller_index,
int feedback_slot,
int the_case,
uint32_t depth )
inlineprivate

Definition at line 167 of file inlining-tree.h.

Member Function Documentation

◆ BudgetScaleFactor()

static double v8::internal::wasm::InliningTree::BudgetScaleFactor ( const WasmModule * module)
inlinestaticprivate

Definition at line 107 of file inlining-tree.h.

Here is the caller graph for this function:

◆ CreateRoot()

static InliningTree * v8::internal::wasm::InliningTree::CreateRoot ( Zone * zone,
const WasmModule * module,
uint32_t function_index )
inlinestatic

Definition at line 42 of file inlining-tree.h.

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

◆ feedback_found()

bool v8::internal::wasm::InliningTree::feedback_found ( )
inline

Definition at line 100 of file inlining-tree.h.

Here is the caller graph for this function:

◆ FullyExpand()

void v8::internal::wasm::InliningTree::FullyExpand ( )
private

Definition at line 251 of file inlining-tree.h.

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

◆ function_calls()

base::Vector< CasesPerCallSite > v8::internal::wasm::InliningTree::function_calls ( )
inline

Definition at line 96 of file inlining-tree.h.

Here is the caller graph for this function:

◆ function_index()

uint32_t v8::internal::wasm::InliningTree::function_index ( )
inline

Definition at line 102 of file inlining-tree.h.

Here is the caller graph for this function:

◆ has_non_inlineable_targets()

base::Vector< bool > v8::internal::wasm::InliningTree::has_non_inlineable_targets ( )
inline

Definition at line 97 of file inlining-tree.h.

Here is the caller graph for this function:

◆ Inline()

void v8::internal::wasm::InliningTree::Inline ( )
private

Definition at line 209 of file inlining-tree.h.

Here is the call graph for this function:

◆ is_inlined()

bool v8::internal::wasm::InliningTree::is_inlined ( )
inline

Definition at line 101 of file inlining-tree.h.

Here is the caller graph for this function:

◆ NoLiftoffBudget()

static int v8::internal::wasm::InliningTree::NoLiftoffBudget ( const WasmModule * module,
uint32_t func_index )
inlinestatic

Definition at line 59 of file inlining-tree.h.

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

◆ score()

int64_t v8::internal::wasm::InliningTree::score ( ) const
inline

Definition at line 74 of file inlining-tree.h.

Here is the caller graph for this function:

◆ SmallEnoughToInline()

bool v8::internal::wasm::InliningTree::SmallEnoughToInline ( size_t initial_wire_byte_size,
size_t inlined_wire_byte_count )
private

Definition at line 351 of file inlining-tree.h.

Here is the call graph for this function:

Friends And Related Symbol Documentation

◆ v8::internal::Zone

friend class v8::internal::Zone
friend

Definition at line 105 of file inlining-tree.h.

Member Data Documentation

◆ call_count_

int v8::internal::wasm::InliningTree::call_count_
private

Definition at line 193 of file inlining-tree.h.

◆ caller_index_

uint32_t v8::internal::wasm::InliningTree::caller_index_
private

Definition at line 204 of file inlining-tree.h.

◆ case_

int v8::internal::wasm::InliningTree::case_
private

Definition at line 206 of file inlining-tree.h.

◆ data_

Data* v8::internal::wasm::InliningTree::data_
private

Definition at line 191 of file inlining-tree.h.

◆ depth_

uint32_t v8::internal::wasm::InliningTree::depth_
private

Definition at line 201 of file inlining-tree.h.

◆ feedback_found_

bool v8::internal::wasm::InliningTree::feedback_found_ = false
private

Definition at line 196 of file inlining-tree.h.

◆ feedback_slot_

int v8::internal::wasm::InliningTree::feedback_slot_
private

Definition at line 205 of file inlining-tree.h.

◆ function_calls_

base::Vector<CasesPerCallSite> v8::internal::wasm::InliningTree::function_calls_ {}
private

Definition at line 198 of file inlining-tree.h.

◆ function_index_

uint32_t v8::internal::wasm::InliningTree::function_index_
private

Definition at line 192 of file inlining-tree.h.

◆ has_non_inlineable_targets_

base::Vector<bool> v8::internal::wasm::InliningTree::has_non_inlineable_targets_ {}
private

Definition at line 199 of file inlining-tree.h.

◆ is_inlined_

bool v8::internal::wasm::InliningTree::is_inlined_ = false
private

Definition at line 195 of file inlining-tree.h.

◆ kMaxInlinedCount

int v8::internal::wasm::InliningTree::kMaxInlinedCount = 60
staticconstexpr

Definition at line 87 of file inlining-tree.h.

◆ kMaxInliningNestingDepth

uint32_t v8::internal::wasm::InliningTree::kMaxInliningNestingDepth = 7
staticconstexpr

Definition at line 94 of file inlining-tree.h.

◆ wire_byte_size_

int v8::internal::wasm::InliningTree::wire_byte_size_
private

Definition at line 194 of file inlining-tree.h.


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