Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
dart::CompilerPassState Struct Reference

#include <compiler_pass.h>

Public Member Functions

 CompilerPassState (Thread *thread, FlowGraph *flow_graph, SpeculativeInliningPolicy *speculative_policy, Precompiler *precompiler=nullptr)
 
FlowGraphflow_graph () const
 
void set_flow_graph (FlowGraph *flow_graph)
 

Public Attributes

Thread *const thread
 
Precompiler *const precompiler
 
int inlining_depth
 
AllocationSinkingsinking
 
GrowableArray< const Function * > inline_id_to_function
 
GrowableArray< TokenPositioninline_id_to_token_pos
 
GrowableArray< intptr_t > caller_inline_id
 
CallSpecializercall_specializer
 
SpeculativeInliningPolicyspeculative_policy
 
intptr_t sticky_flags
 
FlowGraphCompilergraph_compiler = nullptr
 

Detailed Description

Definition at line 72 of file compiler_pass.h.

Constructor & Destructor Documentation

◆ CompilerPassState()

dart::CompilerPassState::CompilerPassState ( Thread thread,
FlowGraph flow_graph,
SpeculativeInliningPolicy speculative_policy,
Precompiler precompiler = nullptr 
)

Definition at line 54 of file compiler_pass.cc.

59 : thread(thread),
62 sinking(nullptr),
63 call_specializer(nullptr),
65 sticky_flags(0),
66 flow_graph_(flow_graph) {
67 // Top scope function is at inlining id 0.
69 // Top scope function has no caller (-1).
71 // We do not add a token position for the top scope function to
72 // |inline_id_to_token_pos| because it is not (currently) inlined into
73 // another graph at a given token position. A side effect of this is that
74 // the length of |inline_id_to_function| and |caller_inline_id| is always
75 // larger than the length of |inline_id_to_token_pos| by one.
76}
void Add(const T &value)
const ParsedFunction & parsed_function() const
Definition flow_graph.h:129
const Function & function() const
Definition parser.h:73
CallSpecializer * call_specializer
AllocationSinking * sinking
SpeculativeInliningPolicy * speculative_policy
FlowGraph * flow_graph() const
GrowableArray< intptr_t > caller_inline_id
Precompiler *const precompiler
GrowableArray< const Function * > inline_id_to_function

Member Function Documentation

◆ flow_graph()

FlowGraph * dart::CompilerPassState::flow_graph ( ) const
inline

Definition at line 78 of file compiler_pass.h.

78{ return flow_graph_; }

◆ set_flow_graph()

void dart::CompilerPassState::set_flow_graph ( FlowGraph flow_graph)

Definition at line 90 of file compiler_pass.cc.

90 {
91 flow_graph_ = flow_graph;
92 if (call_specializer != nullptr) {
94 }
95}
void set_flow_graph(FlowGraph *flow_graph)

Member Data Documentation

◆ call_specializer

CallSpecializer* dart::CompilerPassState::call_specializer

Definition at line 95 of file compiler_pass.h.

◆ caller_inline_id

GrowableArray<intptr_t> dart::CompilerPassState::caller_inline_id

Definition at line 93 of file compiler_pass.h.

◆ graph_compiler

FlowGraphCompiler* dart::CompilerPassState::graph_compiler = nullptr

Definition at line 101 of file compiler_pass.h.

◆ inline_id_to_function

GrowableArray<const Function*> dart::CompilerPassState::inline_id_to_function

Definition at line 89 of file compiler_pass.h.

◆ inline_id_to_token_pos

GrowableArray<TokenPosition> dart::CompilerPassState::inline_id_to_token_pos

Definition at line 91 of file compiler_pass.h.

◆ inlining_depth

int dart::CompilerPassState::inlining_depth

Definition at line 84 of file compiler_pass.h.

◆ precompiler

Precompiler* const dart::CompilerPassState::precompiler

Definition at line 83 of file compiler_pass.h.

◆ sinking

AllocationSinking* dart::CompilerPassState::sinking

Definition at line 85 of file compiler_pass.h.

◆ speculative_policy

SpeculativeInliningPolicy* dart::CompilerPassState::speculative_policy

Definition at line 97 of file compiler_pass.h.

◆ sticky_flags

intptr_t dart::CompilerPassState::sticky_flags

Definition at line 99 of file compiler_pass.h.

◆ thread

Thread* const dart::CompilerPassState::thread

Definition at line 82 of file compiler_pass.h.


The documentation for this struct was generated from the following files: