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

#include <il.h>

Inheritance diagram for dart::BoxLanesInstr:
dart::TemplateDefinition< 4, NoThrow, Pure >

Public Member Functions

 BoxLanesInstr (Representation from_representation, Value *x, Value *y)
 
 BoxLanesInstr (Representation from_representation, Value *x, Value *y, Value *z, Value *w)
 
intptr_t InputCount () const
 
Valuex () const
 
Valuey () const
 
Valuez () const
 
Valuew () const
 
Representation from_representation () const
 
virtual CompileType ComputeType () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual intptr_t DeoptimizationTarget () const
 
virtual Representation RequiredInputRepresentation (intptr_t idx) const
 
virtual bool AttributesEqual (const Instruction &other) const
 
DefinitionCanonicalize (FlowGraph *flow_graph)
 
virtual TokenPosition token_pos () const
 
virtual SpeculativeMode SpeculativeModeOfInput (intptr_t index) const
 
- Public Member Functions inherited from dart::TemplateDefinition< 4, NoThrow, Pure >
 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

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

Detailed Description

Definition at line 10395 of file il.h.

Constructor & Destructor Documentation

◆ BoxLanesInstr() [1/2]

dart::BoxLanesInstr::BoxLanesInstr ( Representation  from_representation,
Value x,
Value y 
)
inline

Definition at line 10397 of file il.h.

10398 : from_representation_(from_representation) {
10399 ASSERT(from_representation == kUnboxedDouble);
10402 SetInputAt(0, x);
10403 SetInputAt(1, y);
10404 }
Value * y() const
Definition il.h:10437
Value * x() const
Definition il.h:10436
Representation from_representation() const
Definition il.h:10448
virtual Representation representation() const
Definition il.h:1254
Definition * definition() const
Definition il.h:103
#define ASSERT(E)

◆ BoxLanesInstr() [2/2]

dart::BoxLanesInstr::BoxLanesInstr ( Representation  from_representation,
Value x,
Value y,
Value z,
Value w 
)
inline

Definition at line 10405 of file il.h.

10410 : from_representation_(from_representation) {
10411 ASSERT((from_representation == kUnboxedInt32) ||
10412 (from_representation == kUnboxedFloat));
10417 SetInputAt(0, x);
10418 SetInputAt(1, y);
10419 SetInputAt(2, z);
10420 SetInputAt(3, w);
10421 }
Value * z() const
Definition il.h:10438
Value * w() const
Definition il.h:10443

Member Function Documentation

◆ AttributesEqual()

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

Definition at line 10461 of file il.h.

10461 {
10462 return other.AsBoxLanes()->from_representation() == from_representation();
10463 }

◆ Canonicalize()

Definition * dart::BoxLanesInstr::Canonicalize ( FlowGraph flow_graph)

Definition at line 3230 of file il.cc.

3230 {
3231 return HasUses() ? this : NULL;
3232}

◆ ComputeCanDeoptimize()

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

Definition at line 10453 of file il.h.

10453{ return false; }

◆ ComputeType()

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

Definition at line 1807 of file type_propagator.cc.

1807 {
1808 switch (from_representation()) {
1809 case kUnboxedFloat:
1810 return CompileType::FromCid(kFloat32x4Cid);
1811 case kUnboxedDouble:
1812 return CompileType::FromCid(kFloat64x2Cid);
1813 case kUnboxedInt32:
1814 return CompileType::FromCid(kInt32x4Cid);
1815 default:
1816 UNREACHABLE();
1817 return CompileType::Dynamic();
1818 }
1819}
#define UNREACHABLE()
Definition assert.h:248
static CompileType FromCid(intptr_t cid)
static CompileType Dynamic()

◆ DeoptimizationTarget()

virtual intptr_t dart::BoxLanesInstr::DeoptimizationTarget ( ) const
inlinevirtual

Definition at line 10454 of file il.h.

10454{ return DeoptId::kNone; }
static constexpr intptr_t kNone
Definition deopt_id.h:27

◆ from_representation()

Representation dart::BoxLanesInstr::from_representation ( ) const
inline

Definition at line 10448 of file il.h.

10448{ return from_representation_; }

◆ InputCount()

intptr_t dart::BoxLanesInstr::InputCount ( ) const
inlinevirtual

Reimplemented from dart::TemplateDefinition< 4, NoThrow, Pure >.

Definition at line 10423 of file il.h.

10423 {
10424 switch (from_representation_) {
10425 case kUnboxedDouble:
10426 return 2;
10427 case kUnboxedFloat:
10428 return 4;
10429 case kUnboxedInt32:
10430 return 4;
10431 default:
10432 UNREACHABLE();
10433 return 0;
10434 }
10435 }

◆ RequiredInputRepresentation()

virtual Representation dart::BoxLanesInstr::RequiredInputRepresentation ( intptr_t  idx) const
inlinevirtual

Definition at line 10456 of file il.h.

10456 {
10457 ASSERT(idx == 0 || idx == 1 || idx == 2 || idx == 3);
10458 return from_representation();
10459 }

◆ SpeculativeModeOfInput()

virtual SpeculativeMode dart::BoxLanesInstr::SpeculativeModeOfInput ( intptr_t  index) const
inlinevirtual

Definition at line 10469 of file il.h.

10469 {
10470 return kNotSpeculative;
10471 }

◆ token_pos()

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

Definition at line 10467 of file il.h.

10467{ return TokenPosition::kBox; }

◆ w()

Value * dart::BoxLanesInstr::w ( ) const
inline

Definition at line 10443 of file il.h.

10443 {
10444 ASSERT((from_representation() == kUnboxedInt32) ||
10445 (from_representation() == kUnboxedFloat));
10446 return inputs_[3];
10447 }
EmbeddedArray< Value *, N > inputs_
Definition il.h:2744

◆ x()

Value * dart::BoxLanesInstr::x ( ) const
inline

Definition at line 10436 of file il.h.

10436{ return inputs_[0]; }

◆ y()

Value * dart::BoxLanesInstr::y ( ) const
inline

Definition at line 10437 of file il.h.

10437{ return inputs_[1]; }

◆ z()

Value * dart::BoxLanesInstr::z ( ) const
inline

Definition at line 10438 of file il.h.

10438 {
10439 ASSERT((from_representation() == kUnboxedInt32) ||
10440 (from_representation() == kUnboxedFloat));
10441 return inputs_[2];
10442 }

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