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

#include <il.h>

Inheritance diagram for dart::AssertBooleanInstr:
dart::TemplateDefinition< 1, Throws, Pure >

Public Member Functions

 AssertBooleanInstr (const InstructionSource &source, Value *value, intptr_t deopt_id)
 
virtual CompileType ComputeType () const
 
virtual TokenPosition token_pos () const
 
Valuevalue () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual bool ComputeCanDeoptimizeAfterCall () const
 
virtual intptr_t NumberOfInputsConsumedBeforeCall () const
 
virtual DefinitionCanonicalize (FlowGraph *flow_graph)
 
virtual bool AttributesEqual (const Instruction &other) const
 
virtual ValueRedefinedValue () const
 
- Public Member Functions inherited from dart::TemplateDefinition< 1, Throws, Pure >
 TemplateDefinition (intptr_t deopt_id=DeoptId::kNone)
 
 TemplateDefinition (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::TemplateDefinition< 1, Throws, Pure >
using BaseClass = typename Pure< Definition, PureDefinition >::Base
 
- Protected Attributes inherited from dart::TemplateDefinition< 1, Throws, Pure >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 4460 of file il.h.

Constructor & Destructor Documentation

◆ AssertBooleanInstr()

dart::AssertBooleanInstr::AssertBooleanInstr ( const InstructionSource source,
Value value,
intptr_t  deopt_id 
)
inline

Definition at line 4462 of file il.h.

4465 : TemplateDefinition(source, deopt_id), token_pos_(source.token_pos) {
4466 SetInputAt(0, value);
4467 }
Value * value() const
Definition il.h:4473
TemplateDefinition(intptr_t deopt_id=DeoptId::kNone)
Definition il.h:2731
SkBitmap source
Definition examples.cpp:28

Member Function Documentation

◆ AttributesEqual()

virtual bool dart::AssertBooleanInstr::AttributesEqual ( const Instruction other) const
inlinevirtual

Definition at line 4485 of file il.h.

4485{ return true; }

◆ Canonicalize()

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

Definition at line 3048 of file il.cc.

3048 {
3049 if (FLAG_eliminate_type_checks) {
3050 if (value()->Type()->ToCid() == kBoolCid) {
3051 return value()->definition();
3052 }
3053
3054 // In strong mode type is already verified either by static analysis
3055 // or runtime checks, so AssertBoolean just ensures that value is not null.
3056 if (!value()->Type()->is_nullable()) {
3057 return value()->definition();
3058 }
3059 }
3060
3061 return this;
3062}
Definition * definition() const
Definition il.h:103

◆ ComputeCanDeoptimize()

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

Definition at line 4475 of file il.h.

4475{ return false; }

◆ ComputeCanDeoptimizeAfterCall()

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

Definition at line 4476 of file il.h.

4476 {
4477 return !CompilerState::Current().is_aot();
4478 }
static CompilerState & Current()

◆ ComputeType()

CompileType dart::AssertBooleanInstr::ComputeType ( ) const
virtual

Definition at line 1393 of file type_propagator.cc.

1393 {
1394 return CompileType::Bool();
1395}
static CompileType Bool()

◆ NumberOfInputsConsumedBeforeCall()

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

Definition at line 4479 of file il.h.

4479 {
4480 return InputCount();
4481 }
virtual intptr_t InputCount() const
Definition il.h:2737

◆ RedefinedValue()

Value * dart::AssertBooleanInstr::RedefinedValue ( ) const
virtual

Definition at line 551 of file il.cc.

551 {
552 return value();
553}

◆ token_pos()

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

Definition at line 4472 of file il.h.

4472{ return token_pos_; }

◆ value()

Value * dart::AssertBooleanInstr::value ( ) const
inline

Definition at line 4473 of file il.h.

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

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