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

#include <il.h>

Inheritance diagram for dart::Utf8ScanInstr:
dart::TemplateDefinition< 5, NoThrow >

Public Member Functions

 Utf8ScanInstr (Value *decoder, Value *bytes, Value *start, Value *end, Value *table, const Slot &decoder_scan_flags_field)
 
virtual Representation RequiredInputRepresentation (intptr_t idx) const
 
virtual Representation representation () const
 
virtual bool HasUnknownSideEffects () const
 
virtual bool ComputeCanDeoptimize () const
 
virtual intptr_t DeoptimizationTarget () const
 
virtual void InferRange (RangeAnalysis *analysis, Range *range)
 
virtual SpeculativeMode SpeculativeModeOfInput (intptr_t index) const
 
virtual bool AttributesEqual (const Instruction &other) const
 
bool IsScanFlagsUnboxed () const
 
- Public Member Functions inherited from dart::TemplateDefinition< 5, NoThrow >
 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< 5, NoThrow >
using BaseClass = typename NoCSE< Definition, PureDefinition >::Base
 
- Protected Attributes inherited from dart::TemplateDefinition< 5, NoThrow >
EmbeddedArray< Value *, Ninputs_
 

Detailed Description

Definition at line 6965 of file il.h.

Constructor & Destructor Documentation

◆ Utf8ScanInstr()

dart::Utf8ScanInstr::Utf8ScanInstr ( Value decoder,
Value bytes,
Value start,
Value end,
Value table,
const Slot decoder_scan_flags_field 
)
inline

Definition at line 6967 of file il.h.

6973 : scan_flags_field_(decoder_scan_flags_field) {
6974 SetInputAt(0, decoder);
6975 SetInputAt(1, bytes);
6976 SetInputAt(2, start);
6977 SetInputAt(3, end);
6978 SetInputAt(4, table);
6979 }
SI F table(const skcms_Curve *curve, F v)
glong glong end

Member Function Documentation

◆ AttributesEqual()

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

Definition at line 7001 of file il.h.

7001 {
7002 return scan_flags_field_.Equals(other.AsUtf8Scan()->scan_flags_field_);
7003 }

◆ ComputeCanDeoptimize()

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

Definition at line 6993 of file il.h.

6993{ return false; }

◆ DeoptimizationTarget()

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

Definition at line 6994 of file il.h.

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

◆ HasUnknownSideEffects()

virtual bool dart::Utf8ScanInstr::HasUnknownSideEffects ( ) const
inlinevirtual

Definition at line 6992 of file il.h.

6992{ return true; }

◆ InferRange()

void dart::Utf8ScanInstr::InferRange ( RangeAnalysis analysis,
Range range 
)
virtual

Definition at line 2980 of file range_analysis.cc.

2980 {
2981 // The input bytes given to the Utf8Scan instruction are in non-negative Smi
2982 // range and so is the resulting computed length.
2984}
static RangeBoundary MaxSmi()
static RangeBoundary FromConstant(int64_t val)

◆ IsScanFlagsUnboxed()

bool dart::Utf8ScanInstr::IsScanFlagsUnboxed ( ) const

Definition at line 7188 of file il.cc.

7188 {
7189 return RepresentationUtils::IsUnboxed(scan_flags_field_.representation());
7190}
static constexpr bool IsUnboxed(Representation rep)
Definition locations.h:101

◆ representation()

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

Definition at line 6990 of file il.h.

6990{ return kUnboxedIntPtr; }
static constexpr Representation kUnboxedIntPtr
Definition locations.h:176

◆ RequiredInputRepresentation()

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

Definition at line 6983 of file il.h.

6983 {
6984 ASSERT(idx >= 0 || idx <= 4);
6985 // The start and end inputs are unboxed, but in smi range.
6986 if (idx == 2 || idx == 3) return kUnboxedIntPtr;
6987 return kTagged;
6988 }
#define ASSERT(E)

◆ SpeculativeModeOfInput()

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

Definition at line 6997 of file il.h.

6997 {
6998 return kNotSpeculative;
6999 }

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