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

#include <il.h>

Inheritance diagram for dart::SuspendInstr:
dart::TemplateDefinition< 2, Throws >

Public Types

enum class  StubId {
  kAwait , kAwaitWithTypeCheck , kYieldAsyncStar , kSuspendSyncStarAtStart ,
  kSuspendSyncStarAtYield
}
 
- Public Types inherited from dart::TemplateDefinition< 2, Throws >
using BaseClass = typename NoCSE< Definition, PureDefinition >::Base
 

Public Member Functions

 SuspendInstr (const InstructionSource &source, StubId stub_id, Value *operand, Value *type_args, intptr_t deopt_id, intptr_t resume_deopt_id)
 
bool has_type_args () const
 
virtual intptr_t InputCount () const
 
Valueoperand () const
 
Valuetype_args () const
 
StubId stub_id () const
 
intptr_t resume_deopt_id () const
 
virtual TokenPosition token_pos () const
 
virtual bool CanCallDart () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual bool ComputeCanDeoptimizeAfterCall () const
 
virtual bool HasUnknownSideEffects () const
 
virtual intptr_t NumberOfInputsConsumedBeforeCall () const
 
 DECLARE_INSTRUCTION (Suspend)
 
virtual PRINT_OPERANDS_TO_SUPPORT DefinitionCanonicalize (FlowGraph *flow_graph)
 
- Public Member Functions inherited from dart::TemplateDefinition< 2, Throws >
 TemplateDefinition (intptr_t deopt_id=DeoptId::kNone)
 
 TemplateDefinition (const InstructionSource &source, intptr_t deopt_id=DeoptId::kNone)
 
virtual ValueInputAt (intptr_t i) const
 
virtual bool MayThrow () const
 

Additional Inherited Members

- Protected Attributes inherited from dart::TemplateDefinition< 2, Throws >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 11423 of file il.h.

Member Enumeration Documentation

◆ StubId

enum class dart::SuspendInstr::StubId
strong
Enumerator
kAwait 
kAwaitWithTypeCheck 
kYieldAsyncStar 
kSuspendSyncStarAtStart 
kSuspendSyncStarAtYield 

Definition at line 11425 of file il.h.

Constructor & Destructor Documentation

◆ SuspendInstr()

dart::SuspendInstr::SuspendInstr ( const InstructionSource source,
StubId  stub_id,
Value operand,
Value type_args,
intptr_t  deopt_id,
intptr_t  resume_deopt_id 
)
inline

Definition at line 11433 of file il.h.

11439 : TemplateDefinition(source, deopt_id),
11440 stub_id_(stub_id),
11441 resume_deopt_id_(resume_deopt_id),
11442 token_pos_(source.token_pos) {
11443 SetInputAt(0, operand);
11444 if (has_type_args()) {
11445 SetInputAt(1, type_args);
11446 } else {
11447 ASSERT(type_args == nullptr);
11448 }
11449 }
bool has_type_args() const
Definition il.h:11451
intptr_t resume_deopt_id() const
Definition il.h:11461
StubId stub_id() const
Definition il.h:11460
Value * type_args() const
Definition il.h:11455
Value * operand() const
Definition il.h:11454
TemplateDefinition(intptr_t deopt_id=DeoptId::kNone)
Definition il.h:2731
#define ASSERT(E)
SkBitmap source
Definition examples.cpp:28

Member Function Documentation

◆ CanCallDart()

virtual bool dart::SuspendInstr::CanCallDart ( ) const
inlinevirtual

Definition at line 11464 of file il.h.

11464{ return true; }

◆ Canonicalize()

Definition * dart::SuspendInstr::Canonicalize ( FlowGraph flow_graph)
virtual

Definition at line 8413 of file il.cc.

8413 {
8415 !operand()->Type()->CanBeFuture()) {
8417 stub_id_ = StubId::kAwait;
8418 }
8419 return this;
8420}
void RemoveFromUseList()
Definition il.cc:1448

◆ ComputeCanDeoptimize()

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

Definition at line 11465 of file il.h.

11465{ return false; }

◆ ComputeCanDeoptimizeAfterCall()

virtual bool dart::SuspendInstr::ComputeCanDeoptimizeAfterCall ( ) const
inlinevirtual

Definition at line 11466 of file il.h.

11466{ return true; }

◆ DECLARE_INSTRUCTION()

dart::SuspendInstr::DECLARE_INSTRUCTION ( Suspend  )

◆ has_type_args()

bool dart::SuspendInstr::has_type_args ( ) const
inline

Definition at line 11451 of file il.h.

11451{ return stub_id_ == StubId::kAwaitWithTypeCheck; }

◆ HasUnknownSideEffects()

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

Definition at line 11467 of file il.h.

11467{ return true; }

◆ InputCount()

virtual intptr_t dart::SuspendInstr::InputCount ( ) const
inlinevirtual

Reimplemented from dart::TemplateDefinition< 2, Throws >.

Definition at line 11452 of file il.h.

11452{ return has_type_args() ? 2 : 1; }

◆ NumberOfInputsConsumedBeforeCall()

virtual intptr_t dart::SuspendInstr::NumberOfInputsConsumedBeforeCall ( ) const
inlinevirtual

Definition at line 11468 of file il.h.

11468 {
11469 return InputCount();
11470 }
virtual intptr_t InputCount() const
Definition il.h:11452

◆ operand()

Value * dart::SuspendInstr::operand ( ) const
inline

Definition at line 11454 of file il.h.

11454{ return inputs_[0]; }
EmbeddedArray< Value *, N > inputs_
Definition il.h:2744

◆ resume_deopt_id()

intptr_t dart::SuspendInstr::resume_deopt_id ( ) const
inline

Definition at line 11461 of file il.h.

11461{ return resume_deopt_id_; }

◆ stub_id()

StubId dart::SuspendInstr::stub_id ( ) const
inline

Definition at line 11460 of file il.h.

11460{ return stub_id_; }

◆ token_pos()

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

Definition at line 11462 of file il.h.

11462{ return token_pos_; }

◆ type_args()

Value * dart::SuspendInstr::type_args ( ) const
inline

Definition at line 11455 of file il.h.

11455 {
11457 return inputs_[1];
11458 }

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