Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dart::TemplateLoadField< N > Class Template Reference

#include <il.h>

Inheritance diagram for dart::TemplateLoadField< N >:
dart::TemplateDefinition< N, Throws >

Public Member Functions

 TemplateLoadField (const InstructionSource &source, bool calls_initializer=false, intptr_t deopt_id=DeoptId::kNone, const Field *field=nullptr)
 
virtual TokenPosition token_pos () const
 
bool calls_initializer () const
 
void set_calls_initializer (bool value)
 
bool throw_exception_on_initialization () const
 
virtual bool UseSharedSlowPathStub (bool is_optimizing) const
 
virtual intptr_t DeoptimizationTarget () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual bool ComputeCanDeoptimizeAfterCall () const
 
virtual intptr_t NumberOfInputsConsumedBeforeCall () const
 
virtual bool HasUnknownSideEffects () const
 
virtual bool CanCallDart () const
 
virtual bool CanTriggerGC () const
 
virtual bool MayThrow () const
 
- Public Member Functions inherited from dart::TemplateDefinition< N, Throws >
 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
 

Additional Inherited Members

- Public Types inherited from dart::TemplateDefinition< N, Throws >
using BaseClass = typename NoCSE< Definition, PureDefinition >::Base
 
- Protected Attributes inherited from dart::TemplateDefinition< N, Throws >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

template<intptr_t N>
class dart::TemplateLoadField< N >

Definition at line 6561 of file il.h.

Constructor & Destructor Documentation

◆ TemplateLoadField()

template<intptr_t N>
dart::TemplateLoadField< N >::TemplateLoadField ( const InstructionSource source,
bool  calls_initializer = false,
intptr_t  deopt_id = DeoptId::kNone,
const Field field = nullptr 
)
inline

Definition at line 6565 of file il.h.

6569 : Base(source, deopt_id),
6570 token_pos_(source.token_pos),
6571 throw_exception_on_initialization_(
6572 field != nullptr && !field->has_initializer() && field->is_late()),
6573 calls_initializer_(calls_initializer) {
6574 ASSERT(!calls_initializer || field != nullptr);
6575 ASSERT(!calls_initializer || (deopt_id != DeoptId::kNone));
6576 }
static constexpr intptr_t kNone
Definition deopt_id.h:27
bool calls_initializer() const
Definition il.h:6579
#define ASSERT(E)
SkBitmap source
Definition examples.cpp:28

Member Function Documentation

◆ calls_initializer()

template<intptr_t N>
bool dart::TemplateLoadField< N >::calls_initializer ( ) const
inline

Definition at line 6579 of file il.h.

6579{ return calls_initializer_; }

◆ CanCallDart()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::CanCallDart ( ) const
inlinevirtual

Definition at line 6604 of file il.h.

6604 {
6605 // The slow path (running the field initializer) always calls one of a
6606 // specific set of stubs. For those stubs that do not simply call the
6607 // runtime, the GC recognizes their frames and restores write barriers
6608 // automatically (see Thread::RestoreWriteBarrierInvariant).
6609 return false;
6610 }

◆ CanTriggerGC()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::CanTriggerGC ( ) const
inlinevirtual

Reimplemented in dart::LoadFieldInstr.

Definition at line 6611 of file il.h.

6611{ return calls_initializer(); }

◆ ComputeCanDeoptimize()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::ComputeCanDeoptimize ( ) const
inlinevirtual

Definition at line 6592 of file il.h.

6592{ return false; }

◆ ComputeCanDeoptimizeAfterCall()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::ComputeCanDeoptimizeAfterCall ( ) const
inlinevirtual

Definition at line 6593 of file il.h.

6593 {
6595 }
static CompilerState & Current()

◆ DeoptimizationTarget()

template<intptr_t N>
virtual intptr_t dart::TemplateLoadField< N >::DeoptimizationTarget ( ) const
inlinevirtual

Definition at line 6591 of file il.h.

6591{ return Base::GetDeoptId(); }

◆ HasUnknownSideEffects()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::HasUnknownSideEffects ( ) const
inlinevirtual

Definition at line 6600 of file il.h.

6600 {
6602 }
bool throw_exception_on_initialization() const
Definition il.h:6582

◆ MayThrow()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::MayThrow ( ) const
inlinevirtual

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

Definition at line 6612 of file il.h.

6612{ return calls_initializer(); }

◆ NumberOfInputsConsumedBeforeCall()

template<intptr_t N>
virtual intptr_t dart::TemplateLoadField< N >::NumberOfInputsConsumedBeforeCall ( ) const
inlinevirtual

Definition at line 6596 of file il.h.

6596 {
6597 return Base::InputCount();
6598 }
virtual intptr_t InputCount() const
Definition il.h:2737

◆ set_calls_initializer()

template<intptr_t N>
void dart::TemplateLoadField< N >::set_calls_initializer ( bool  value)
inline

Definition at line 6580 of file il.h.

6580{ calls_initializer_ = value; }
uint8_t value

◆ throw_exception_on_initialization()

template<intptr_t N>
bool dart::TemplateLoadField< N >::throw_exception_on_initialization ( ) const
inline

Definition at line 6582 of file il.h.

6582 {
6583 return throw_exception_on_initialization_;
6584 }

◆ token_pos()

template<intptr_t N>
virtual TokenPosition dart::TemplateLoadField< N >::token_pos ( ) const
inlinevirtual

Definition at line 6578 of file il.h.

6578{ return token_pos_; }

◆ UseSharedSlowPathStub()

template<intptr_t N>
virtual bool dart::TemplateLoadField< N >::UseSharedSlowPathStub ( bool  is_optimizing) const
inlinevirtual

Definition at line 6587 of file il.h.

6587 {
6588 return Base::SlowPathSharingSupported(is_optimizing);
6589 }

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