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

#include <il.h>

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

Public Types

enum  Kind { kWriteUnmodifiableTypedData = 0 , kDeeplyImmutableAttachNativeFinalizer = 1 }
 
enum  { kReceiver = 0 }
 
- Public Types inherited from dart::TemplateDefinition< 1, Throws, Pure >
using BaseClass = typename Pure< Definition, PureDefinition >::Base
 

Public Member Functions

 CheckWritableInstr (Value *receiver, intptr_t deopt_id, const InstructionSource &source, Kind kind=Kind::kWriteUnmodifiableTypedData)
 
virtual bool AttributesEqual (const Instruction &other) const
 
Valuevalue () const
 
virtual DefinitionCanonicalize (FlowGraph *flow_graph)
 
virtual ValueRedefinedValue () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual bool ComputeCanDeoptimizeAfterCall () const
 
Kind kind () 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

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

Detailed Description

Definition at line 10858 of file il.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
kReceiver 

Definition at line 10891 of file il.h.

10891 {
10892 kReceiver = 0,
10893 };

◆ Kind

Enumerator
kWriteUnmodifiableTypedData 
kDeeplyImmutableAttachNativeFinalizer 

Definition at line 10860 of file il.h.

Constructor & Destructor Documentation

◆ CheckWritableInstr()

dart::CheckWritableInstr::CheckWritableInstr ( Value receiver,
intptr_t  deopt_id,
const InstructionSource source,
Kind  kind = Kind::kWriteUnmodifiableTypedData 
)
inline

Definition at line 10865 of file il.h.

10869 : TemplateDefinition(source, deopt_id), kind_(kind) {
10870 SetInputAt(kReceiver, receiver);
10871 }
Kind kind() const
Definition il.h:10888
TemplateDefinition(intptr_t deopt_id=DeoptId::kNone)
Definition il.h:2731
SkBitmap source
Definition examples.cpp:28

Member Function Documentation

◆ AttributesEqual()

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

Definition at line 10873 of file il.h.

10873{ return true; }

◆ Canonicalize()

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

Definition at line 6799 of file il.cc.

6799 {
6801 return this;
6802 }
6803
6805 intptr_t cid = value()->Type()->ToCid();
6806 if ((cid != kIllegalCid) && (cid != kDynamicCid) &&
6808 return value()->definition();
6809 }
6810 return this;
6811}
Value * value() const
Definition il.h:10877
Definition * definition() const
Definition il.h:103
CompileType * Type()
#define ASSERT(E)
bool IsUnmodifiableTypedDataViewClassId(intptr_t index)
Definition class_id.h:453
@ kIllegalCid
Definition class_id.h:214
@ kDynamicCid
Definition class_id.h:253
const intptr_t cid

◆ ComputeCanDeoptimize()

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

Definition at line 10883 of file il.h.

10883{ return false; }

◆ ComputeCanDeoptimizeAfterCall()

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

Definition at line 10884 of file il.h.

10884 {
10885 return !CompilerState::Current().is_aot();
10886 }
static CompilerState & Current()

◆ kind()

Kind dart::CheckWritableInstr::kind ( ) const
inline

Definition at line 10888 of file il.h.

10888{ return kind_; }

◆ RedefinedValue()

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

Definition at line 559 of file il.cc.

559 {
560 return value();
561}

◆ value()

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

Definition at line 10877 of file il.h.

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

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