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

#include <il.h>

Inheritance diagram for dart::MathMinMaxInstr:
dart::TemplateDefinition< 2, NoThrow, Pure >

Public Member Functions

 MathMinMaxInstr (MethodRecognizer::Kind op_kind, Value *left_value, Value *right_value, intptr_t deopt_id, intptr_t result_cid)
 
MethodRecognizer::Kind op_kind () const
 
Valueleft () const
 
Valueright () const
 
intptr_t result_cid () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual Representation representation () const
 
virtual Representation RequiredInputRepresentation (intptr_t idx) const
 
virtual intptr_t DeoptimizationTarget () const
 
virtual CompileType ComputeType () const
 
virtual bool AttributesEqual (const Instruction &other) const
 
- Public Member Functions inherited from dart::TemplateDefinition< 2, NoThrow, 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< 2, NoThrow, Pure >
using BaseClass = typename Pure< Definition, PureDefinition >::Base
 
- Protected Attributes inherited from dart::TemplateDefinition< 2, NoThrow, Pure >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 8904 of file il.h.

Constructor & Destructor Documentation

◆ MathMinMaxInstr()

dart::MathMinMaxInstr::MathMinMaxInstr ( MethodRecognizer::Kind  op_kind,
Value left_value,
Value right_value,
intptr_t  deopt_id,
intptr_t  result_cid 
)
inline

Definition at line 8906 of file il.h.

8911 : TemplateDefinition(deopt_id),
8912 op_kind_(op_kind),
8913 result_cid_(result_cid) {
8914 ASSERT((result_cid == kSmiCid) || (result_cid == kDoubleCid));
8915 SetInputAt(0, left_value);
8916 SetInputAt(1, right_value);
8917 }
intptr_t result_cid() const
Definition il.h:8924
MethodRecognizer::Kind op_kind() const
Definition il.h:8919
TemplateDefinition(intptr_t deopt_id=DeoptId::kNone)
Definition il.h:2731
#define ASSERT(E)

Member Function Documentation

◆ AttributesEqual()

bool dart::MathMinMaxInstr::AttributesEqual ( const Instruction other) const
virtual

Definition at line 1104 of file il.cc.

1104 {
1105 auto const other_op = other.AsMathMinMax();
1106 ASSERT(other_op != nullptr);
1107 return (op_kind() == other_op->op_kind()) &&
1108 (result_cid() == other_op->result_cid());
1109}

◆ ComputeCanDeoptimize()

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

Definition at line 8926 of file il.h.

8926{ return false; }

◆ ComputeType()

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

Definition at line 1795 of file type_propagator.cc.

1795 {
1796 return CompileType::FromCid(result_cid_);
1797}
static CompileType FromCid(intptr_t cid)

◆ DeoptimizationTarget()

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

Definition at line 8944 of file il.h.

8944 {
8945 // Direct access since this instruction cannot deoptimize, and the deopt-id
8946 // was inherited from another instruction that could deoptimize.
8947 return GetDeoptId();
8948 }

◆ left()

Value * dart::MathMinMaxInstr::left ( ) const
inline

Definition at line 8921 of file il.h.

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

◆ op_kind()

MethodRecognizer::Kind dart::MathMinMaxInstr::op_kind ( ) const
inline

Definition at line 8919 of file il.h.

8919{ return op_kind_; }

◆ representation()

virtual Representation dart::MathMinMaxInstr::representation ( ) const
inlinevirtual

Definition at line 8928 of file il.h.

8928 {
8929 if (result_cid() == kSmiCid) {
8930 return kTagged;
8931 }
8932 ASSERT(result_cid() == kDoubleCid);
8933 return kUnboxedDouble;
8934 }

◆ RequiredInputRepresentation()

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

Definition at line 8936 of file il.h.

8936 {
8937 if (result_cid() == kSmiCid) {
8938 return kTagged;
8939 }
8940 ASSERT(result_cid() == kDoubleCid);
8941 return kUnboxedDouble;
8942 }

◆ result_cid()

intptr_t dart::MathMinMaxInstr::result_cid ( ) const
inline

Definition at line 8924 of file il.h.

8924{ return result_cid_; }

◆ right()

Value * dart::MathMinMaxInstr::right ( ) const
inline

Definition at line 8922 of file il.h.

8922{ return inputs_[1]; }

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