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

#include <il.h>

Inheritance diagram for dart::RelationalOpInstr:
dart::TemplateComparison< 2, NoThrow, Pure >

Public Member Functions

 RelationalOpInstr (const InstructionSource &source, Token::Kind kind, Value *left, Value *right, intptr_t cid, intptr_t deopt_id, SpeculativeMode speculative_mode=kGuardInputs)
 
virtual ComparisonInstrCopyWithNewOperands (Value *left, Value *right)
 
virtual CompileType ComputeType () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual Representation RequiredInputRepresentation (intptr_t idx) const
 
virtual SpeculativeMode SpeculativeModeOfInput (intptr_t index) const
 
virtual bool AttributesEqual (const Instruction &other) const
 
- Public Member Functions inherited from dart::TemplateComparison< 2, NoThrow, Pure >
 TemplateComparison (const InstructionSource &source, Token::Kind kind, 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::TemplateComparison< 2, NoThrow, Pure >
using BaseClass = typename Pure< ComparisonInstr, PureComparison >::Base
 
- Protected Attributes inherited from dart::TemplateComparison< 2, NoThrow, Pure >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 5331 of file il.h.

Constructor & Destructor Documentation

◆ RelationalOpInstr()

dart::RelationalOpInstr::RelationalOpInstr ( const InstructionSource source,
Token::Kind  kind,
Value left,
Value right,
intptr_t  cid,
intptr_t  deopt_id,
SpeculativeMode  speculative_mode = kGuardInputs 
)
inline

Definition at line 5333 of file il.h.

5340 : TemplateComparison(source, kind, deopt_id),
5341 speculative_mode_(speculative_mode) {
5343 SetInputAt(0, left);
5344 SetInputAt(1, right);
5345 set_operation_cid(cid);
5346 }
static bool left(const SkPoint &p0, const SkPoint &p1)
static bool right(const SkPoint &p0, const SkPoint &p1)
TemplateComparison(const InstructionSource &source, Token::Kind kind, intptr_t deopt_id=DeoptId::kNone)
Definition il.h:3935
static bool IsRelationalOperator(Kind tok)
Definition token.h:232
#define ASSERT(E)
SkBitmap source
Definition examples.cpp:28
const intptr_t cid

Member Function Documentation

◆ AttributesEqual()

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

Definition at line 5367 of file il.h.

5367 {
5368 return ComparisonInstr::AttributesEqual(other) &&
5369 (speculative_mode_ == other.AsRelationalOp()->speculative_mode_);
5370 }
virtual bool AttributesEqual(const Instruction &other) const
Definition il.h:3867

◆ ComputeCanDeoptimize()

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

Definition at line 5354 of file il.h.

5354{ return false; }

◆ ComputeType()

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

Definition at line 1430 of file type_propagator.cc.

1430 {
1431 // Used for numeric comparisons only.
1432 return CompileType::Bool();
1433}
static CompileType Bool()

◆ CopyWithNewOperands()

ComparisonInstr * dart::RelationalOpInstr::CopyWithNewOperands ( Value left,
Value right 
)
virtual

Definition at line 6565 of file il.cc.

6566 {
6567 return new RelationalOpInstr(source(), kind(), new_left, new_right,
6568 operation_cid(), deopt_id(),
6569 SpeculativeModeOfInputs());
6570}
RelationalOpInstr(const InstructionSource &source, Token::Kind kind, Value *left, Value *right, intptr_t cid, intptr_t deopt_id, SpeculativeMode speculative_mode=kGuardInputs)
Definition il.h:5333

◆ RequiredInputRepresentation()

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

Definition at line 5356 of file il.h.

5356 {
5357 ASSERT((idx == 0) || (idx == 1));
5358 if (operation_cid() == kDoubleCid) return kUnboxedDouble;
5359 if (operation_cid() == kMintCid) return kUnboxedInt64;
5360 return kTagged;
5361 }

◆ SpeculativeModeOfInput()

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

Definition at line 5363 of file il.h.

5363 {
5364 return speculative_mode_;
5365 }

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