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

#include <il.h>

Inheritance diagram for dart::CheckClassIdInstr:
dart::TemplateInstruction< 1, NoThrow >

Public Member Functions

 CheckClassIdInstr (Value *value, CidRangeValue cids, intptr_t deopt_id)
 
Valuevalue () const
 
const CidRangeValuecids () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual InstructionCanonicalize (FlowGraph *flow_graph)
 
virtual bool AllowsCSE () const
 
virtual bool HasUnknownSideEffects () const
 
virtual bool AttributesEqual (const Instruction &other) const
 
DECLARE_INSTRUCTION_SERIALIZABLE_FIELDS(CheckClassIdInstr, TemplateInstruction, FIELD_LIST) private DISALLOW_COPY_AND_ASSIGN (CheckClassIdInstr)
 
- Public Member Functions inherited from dart::TemplateInstruction< 1, 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< 1, NoThrow >
using BaseClass = typename NoCSE< Instruction, PureInstruction >::Base
 
- Protected Attributes inherited from dart::TemplateInstruction< 1, NoThrow >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 10694 of file il.h.

Constructor & Destructor Documentation

◆ CheckClassIdInstr()

dart::CheckClassIdInstr::CheckClassIdInstr ( Value value,
CidRangeValue  cids,
intptr_t  deopt_id 
)
inline

Definition at line 10696 of file il.h.

10697 : TemplateInstruction(deopt_id), cids_(cids) {
10698 SetInputAt(0, value);
10699 }
const CidRangeValue & cids() const
Definition il.h:10702
Value * value() const
Definition il.h:10701
TemplateInstruction(intptr_t deopt_id=DeoptId::kNone)
Definition il.h:1501

Member Function Documentation

◆ AllowsCSE()

virtual bool dart::CheckClassIdInstr::AllowsCSE ( ) const
inlinevirtual

Definition at line 10710 of file il.h.

10710{ return true; }

◆ AttributesEqual()

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

Definition at line 10713 of file il.h.

10713 {
10714 return other.Cast<CheckClassIdInstr>()->cids().Equals(cids_);
10715 }
CheckClassIdInstr(Value *value, CidRangeValue cids, intptr_t deopt_id)
Definition il.h:10696
bool Equals(const CidRangeValue &other) const
Definition il.h:245

◆ Canonicalize()

Instruction * dart::CheckClassIdInstr::Canonicalize ( FlowGraph flow_graph)
virtual

Definition at line 3822 of file il.cc.

3822 {
3823 if (value()->BindsToConstant()) {
3824 const Object& constant_value = value()->BoundConstant();
3825 if (constant_value.IsSmi() &&
3826 cids_.Contains(Smi::Cast(constant_value).Value())) {
3827 return nullptr;
3828 }
3829 }
3830 return this;
3831}
const Object & BoundConstant() const
Definition il.cc:1199

◆ cids()

const CidRangeValue & dart::CheckClassIdInstr::cids ( ) const
inline

Definition at line 10702 of file il.h.

10702{ return cids_; }

◆ ComputeCanDeoptimize()

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

Definition at line 10706 of file il.h.

10706{ return true; }

◆ DISALLOW_COPY_AND_ASSIGN()

DECLARE_INSTRUCTION_SERIALIZABLE_FIELDS(CheckClassIdInstr, TemplateInstruction, FIELD_LIST) private dart::CheckClassIdInstr::DISALLOW_COPY_AND_ASSIGN ( CheckClassIdInstr  )

◆ HasUnknownSideEffects()

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

Definition at line 10711 of file il.h.

10711{ return false; }

◆ value()

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

Definition at line 10701 of file il.h.

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

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