Flutter Engine
The Flutter Engine
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
dart::FlowGraphVisitor Class Reference

#include <il.h>

Inheritance diagram for dart::FlowGraphVisitor:
dart::InstructionVisitor dart::ValueObject dart::CallSpecializer dart::ConstantPropagator dart::FlowGraphTypePropagator dart::TypedDataSpecializer dart::AotCallSpecializer dart::JitCallSpecializer

Public Member Functions

 FlowGraphVisitor (const GrowableArray< BlockEntryInstr * > &block_order)
 
virtual ~FlowGraphVisitor ()
 
ForwardInstructionIteratorcurrent_iterator () const
 
virtual void VisitBlocks ()
 
- Public Member Functions inherited from dart::InstructionVisitor
 InstructionVisitor ()
 
virtual ~InstructionVisitor ()
 
- Public Member Functions inherited from dart::ValueObject
 ValueObject ()
 
 ~ValueObject ()
 

Protected Member Functions

void set_block_order (const GrowableArray< BlockEntryInstr * > &block_order)
 

Protected Attributes

ForwardInstructionIteratorcurrent_iterator_
 

Detailed Description

Definition at line 11840 of file il.h.

Constructor & Destructor Documentation

◆ FlowGraphVisitor()

dart::FlowGraphVisitor::FlowGraphVisitor ( const GrowableArray< BlockEntryInstr * > &  block_order)
inlineexplicit

Definition at line 11842 of file il.h.

11843 : current_iterator_(nullptr), block_order_(&block_order) {}
ForwardInstructionIterator * current_iterator_
Definition: il.h:11859

◆ ~FlowGraphVisitor()

virtual dart::FlowGraphVisitor::~FlowGraphVisitor ( )
inlinevirtual

Definition at line 11844 of file il.h.

11844{}

Member Function Documentation

◆ current_iterator()

ForwardInstructionIterator * dart::FlowGraphVisitor::current_iterator ( ) const
inline

Definition at line 11846 of file il.h.

11846 {
11847 return current_iterator_;
11848 }

◆ set_block_order()

void dart::FlowGraphVisitor::set_block_order ( const GrowableArray< BlockEntryInstr * > &  block_order)
inlineprotected

Definition at line 11855 of file il.h.

11855 {
11856 block_order_ = &block_order;
11857 }

◆ VisitBlocks()

void dart::FlowGraphVisitor::VisitBlocks ( )
virtual

Reimplemented in dart::ConstantPropagator.

Definition at line 1376 of file il.cc.

1376 {
1377 ASSERT(current_iterator_ == nullptr);
1378 for (intptr_t i = 0; i < block_order_->length(); ++i) {
1379 BlockEntryInstr* entry = (*block_order_)[i];
1380 entry->Accept(this);
1381 ForwardInstructionIterator it(entry);
1382 current_iterator_ = &it;
1383 for (; !it.Done(); it.Advance()) {
1384 it.Current()->Accept(this);
1385 }
1386 current_iterator_ = nullptr;
1387 }
1388}
Instruction * Current() const
Definition: il.h:1853
virtual void Accept(InstructionVisitor *visitor)=0
#define ASSERT(E)

Member Data Documentation

◆ current_iterator_

ForwardInstructionIterator* dart::FlowGraphVisitor::current_iterator_
protected

Definition at line 11859 of file il.h.


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