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

#include <il.h>

Inheritance diagram for dart::TargetEntryInstr:
dart::BlockEntryInstr dart::TemplateInstruction< 0, NoThrow >

Public Member Functions

 TargetEntryInstr (intptr_t block_id, intptr_t try_index, intptr_t deopt_id, intptr_t stack_depth=0)
 
double edge_weight () const
 
void set_edge_weight (double weight)
 
void adjust_edge_weight (double scale_factor)
 
virtual intptr_t PredecessorCount () const
 
virtual BlockEntryInstrPredecessorAt (intptr_t index) const
 
virtual DECLARE_INSTRUCTION_SERIALIZABLE_FIELDS(TargetEntryInstr, BlockEntryInstr, FIELD_LIST) private void ClearPredecessors ()
 
virtual void AddPredecessor (BlockEntryInstr *predecessor)
 
 DISALLOW_COPY_AND_ASSIGN (TargetEntryInstr)
 
- Public Member Functions inherited from dart::BlockEntryInstr
intptr_t preorder_number () const
 
void set_preorder_number (intptr_t number)
 
intptr_t postorder_number () const
 
void set_postorder_number (intptr_t number)
 
intptr_t block_id () const
 
void set_start_pos (intptr_t pos)
 
intptr_t start_pos () const
 
void set_end_pos (intptr_t pos)
 
intptr_t end_pos () const
 
BlockEntryInstrdominator () const
 
BlockEntryInstrImmediateDominator () const
 
const GrowableArray< BlockEntryInstr * > & dominated_blocks ()
 
void AddDominatedBlock (BlockEntryInstr *block)
 
void ClearDominatedBlocks ()
 
bool Dominates (BlockEntryInstr *other) const
 
Instructionlast_instruction () const
 
void set_last_instruction (Instruction *instr)
 
ParallelMoveInstrparallel_move () const
 
bool HasParallelMove () const
 
bool HasNonRedundantParallelMove () const
 
ParallelMoveInstrGetParallelMove ()
 
bool DiscoverBlock (BlockEntryInstr *predecessor, GrowableArray< BlockEntryInstr * > *preorder, GrowableArray< intptr_t > *parent)
 
virtual bool CanBecomeDeoptimizationTarget () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual bool HasUnknownSideEffects () const
 
intptr_t try_index () const
 
void set_try_index (intptr_t index)
 
bool InsideTryBlock () const
 
LoopInfoloop_info () const
 
void set_loop_info (LoopInfo *loop_info)
 
bool IsLoopHeader () const
 
intptr_t NestingDepth () const
 
virtual BlockEntryInstrGetBlock ()
 
virtual TokenPosition token_pos () const
 
void ReplaceAsPredecessorWith (BlockEntryInstr *new_block)
 
void set_block_id (intptr_t block_id)
 
intptr_t stack_depth () const
 
void set_stack_depth (intptr_t s)
 
void ClearAllInstructions ()
 
InstructionsIterable instructions ()
 
- Public Member Functions inherited from dart::TemplateInstruction< 0, NoThrow >
 TemplateInstruction (intptr_t deopt_id=DeoptId::kNone)
 
 TemplateInstruction (const InstructionSource &source, intptr_t deopt_id=DeoptId::kNone)
 
virtual intptr_t InputCount () const
 
virtual ValueInputAt (intptr_t i) const
 
virtual bool MayThrow () const
 

Public Attributes

BlockEntryInstrpredecessor_ = nullptr
 

Additional Inherited Members

- Public Types inherited from dart::TemplateInstruction< 0, NoThrow >
using BaseClass = typename NoCSE< Instruction, PureInstruction >::Base
 
- Protected Member Functions inherited from dart::BlockEntryInstr
 BlockEntryInstr (intptr_t block_id, intptr_t try_index, intptr_t deopt_id, intptr_t stack_depth)
 
bool FindOsrEntryAndRelink (GraphEntryInstr *graph_entry, Instruction *parent, BitVector *block_marks)
 
- Protected Attributes inherited from dart::TemplateInstruction< 0, NoThrow >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 2120 of file il.h.

Constructor & Destructor Documentation

◆ TargetEntryInstr()

dart::TargetEntryInstr::TargetEntryInstr ( intptr_t  block_id,
intptr_t  try_index,
intptr_t  deopt_id,
intptr_t  stack_depth = 0 
)
inline

Definition at line 2122 of file il.h.

2127 edge_weight_(0.0) {}
intptr_t try_index() const
Definition il.h:1724
intptr_t block_id() const
Definition il.h:1655
BlockEntryInstr(intptr_t block_id, intptr_t try_index, intptr_t deopt_id, intptr_t stack_depth)
Definition il.h:1776
intptr_t stack_depth() const
Definition il.h:1750

Member Function Documentation

◆ AddPredecessor()

virtual void dart::TargetEntryInstr::AddPredecessor ( BlockEntryInstr predecessor)
inlinevirtual

Implements dart::BlockEntryInstr.

Definition at line 2155 of file il.h.

2155 {
2156 ASSERT(predecessor_ == nullptr);
2157 predecessor_ = predecessor;
2158 }
BlockEntryInstr * predecessor_
Definition il.h:2161
#define ASSERT(E)

◆ adjust_edge_weight()

void dart::TargetEntryInstr::adjust_edge_weight ( double  scale_factor)
inline

Definition at line 2133 of file il.h.

2133{ edge_weight_ *= scale_factor; }

◆ ClearPredecessors()

virtual DECLARE_INSTRUCTION_SERIALIZABLE_FIELDS(TargetEntryInstr, BlockEntryInstr, FIELD_LIST) private void dart::TargetEntryInstr::ClearPredecessors ( )
inlinevirtual

Implements dart::BlockEntryInstr.

Definition at line 2154 of file il.h.

2154{ predecessor_ = nullptr; }

◆ DISALLOW_COPY_AND_ASSIGN()

dart::TargetEntryInstr::DISALLOW_COPY_AND_ASSIGN ( TargetEntryInstr  )

◆ edge_weight()

double dart::TargetEntryInstr::edge_weight ( ) const
inline

Definition at line 2131 of file il.h.

2131{ return edge_weight_; }

◆ PredecessorAt()

virtual BlockEntryInstr * dart::TargetEntryInstr::PredecessorAt ( intptr_t  index) const
inlinevirtual

Implements dart::BlockEntryInstr.

Definition at line 2138 of file il.h.

2138 {
2139 ASSERT((index == 0) && (predecessor_ != nullptr));
2140 return predecessor_;
2141 }

◆ PredecessorCount()

virtual intptr_t dart::TargetEntryInstr::PredecessorCount ( ) const
inlinevirtual

Implements dart::BlockEntryInstr.

Definition at line 2135 of file il.h.

2135 {
2136 return (predecessor_ == nullptr) ? 0 : 1;
2137 }

◆ set_edge_weight()

void dart::TargetEntryInstr::set_edge_weight ( double  weight)
inline

Definition at line 2132 of file il.h.

2132{ edge_weight_ = weight; }

Member Data Documentation

◆ predecessor_

BlockEntryInstr* dart::TargetEntryInstr::predecessor_ = nullptr

Definition at line 2161 of file il.h.


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