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

#include <il.h>

Inheritance diagram for dart::ParallelMoveInstr:
dart::TemplateInstruction< 0, NoThrow >

Public Member Functions

 ParallelMoveInstr ()
 
virtual bool ComputeCanDeoptimize () const
 
virtual bool HasUnknownSideEffects () const
 
const GrowableArray< MoveOperands * > & moves () const
 
MoveOperandsAddMove (Location dest, Location src)
 
MoveOperandsMoveOperandsAt (intptr_t index) const
 
intptr_t NumMoves () const
 
bool IsRedundant () const
 
virtual TokenPosition token_pos () const
 
const MoveSchedulemove_schedule () const
 
void set_move_schedule (const MoveSchedule &schedule)
 
- 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
 

Additional Inherited Members

- Public Types inherited from dart::TemplateInstruction< 0, NoThrow >
using BaseClass = typename NoCSE< Instruction, PureInstruction >::Base
 
- Protected Attributes inherited from dart::TemplateInstruction< 0, NoThrow >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 1588 of file il.h.

Constructor & Destructor Documentation

◆ ParallelMoveInstr()

dart::ParallelMoveInstr::ParallelMoveInstr ( )
inline

Definition at line 1590 of file il.h.

1590: moves_(4) {}

Member Function Documentation

◆ AddMove()

MoveOperands * dart::ParallelMoveInstr::AddMove ( Location  dest,
Location  src 
)
inline

Definition at line 1603 of file il.h.

1603 {
1604 MoveOperands* move = new MoveOperands(dest, src);
1605 moves_.Add(move);
1606 return move;
1607 }

◆ ComputeCanDeoptimize()

virtual bool dart::ParallelMoveInstr::ComputeCanDeoptimize ( ) const
inlinevirtual

Definition at line 1594 of file il.h.

1594{ return false; }

◆ HasUnknownSideEffects()

virtual bool dart::ParallelMoveInstr::HasUnknownSideEffects ( ) const
inlinevirtual

Definition at line 1596 of file il.h.

1596 {
1597 UNREACHABLE(); // This instruction never visited by optimization passes.
1598 return false;
1599 }
#define UNREACHABLE()
Definition assert.h:248

◆ IsRedundant()

bool dart::ParallelMoveInstr::IsRedundant ( ) const

Definition at line 4925 of file il.cc.

4925 {
4926 for (intptr_t i = 0; i < moves_.length(); i++) {
4927 if (!moves_[i]->IsRedundant()) {
4928 return false;
4929 }
4930 }
4931 return true;
4932}
bool IsRedundant() const
Definition il.cc:4925

◆ move_schedule()

const MoveSchedule & dart::ParallelMoveInstr::move_schedule ( ) const
inline

Definition at line 1619 of file il.h.

1619 {
1620 ASSERT(move_schedule_ != nullptr);
1621 return *move_schedule_;
1622 }
#define ASSERT(E)

◆ MoveOperandsAt()

MoveOperands * dart::ParallelMoveInstr::MoveOperandsAt ( intptr_t  index) const
inline

Definition at line 1609 of file il.h.

1609{ return moves_[index]; }

◆ moves()

const GrowableArray< MoveOperands * > & dart::ParallelMoveInstr::moves ( ) const
inline

Definition at line 1601 of file il.h.

1601{ return moves_; }

◆ NumMoves()

intptr_t dart::ParallelMoveInstr::NumMoves ( ) const
inline

Definition at line 1611 of file il.h.

1611{ return moves_.length(); }

◆ set_move_schedule()

void dart::ParallelMoveInstr::set_move_schedule ( const MoveSchedule schedule)
inline

Definition at line 1624 of file il.h.

1624 {
1625 move_schedule_ = &schedule;
1626 }

◆ token_pos()

virtual TokenPosition dart::ParallelMoveInstr::token_pos ( ) const
inlinevirtual

Definition at line 1615 of file il.h.

1615 {
1616 return TokenPosition::kParallelMove;
1617 }

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