32 : argc_(argc), call_type_(call_type) {}
76 if (
Max(left_kind_, right_kind_) ==
NONE) {
92 const BinaryOpICState&));
95 return (result_kind_ > SMI && result_kind_ <= NUMBER) &&
97 left_kind_ <= NUMBER) ||
99 right_kind_ <= NUMBER));
113 return FLAG_allocation_site_pretenuring && CouldCreateAllocationMementos();
117 return Max(left_kind_, right_kind_) ==
GENERIC;
123 return KindMaybeSmi(left_kind_) || KindMaybeSmi(right_kind_);
126 static const int FIRST_TOKEN = Token::BIT_OR;
127 static const int LAST_TOKEN = Token::MOD;
151 return (kind >= SMI && kind <= NUMBER) || kind ==
GENERIC;
222 return ContextualModeBits::decode(state_);
226 return LoadICState(state).contextual_mode();
LoadICState(ExtraICState extra_ic_state)
void Update(Handle< Object > left, Handle< Object > right, Handle< Object > result)
static void GenerateAheadOfTime(Isolate *, void(*Generate)(Isolate *, const CallICState &))
Type * GetResultType(Zone *zone) const
Isolate * isolate() const
static bool KindMaybeSmi(Kind kind)
STATIC_ASSERT(static_cast< int >(NOT_CONTEXTUAL)==0)
ContextualMode contextual_mode() const
bool CanReuseDoubleBox() const
BinaryOpICState(Isolate *isolate, Token::Value op, OverwriteMode mode)
LoadICState(ContextualMode mode)
STATIC_ASSERT(LAST_TOKEN - FIRST_TOKEN<(1<< 4))
bool CouldCreateAllocationMementos() const
const ExtraICState state_
bool HasSideEffects() const
Maybe< int > fixed_right_arg() const
static Type * KindToType(Kind kind, Zone *zone)
Type * GetLeftType(Zone *zone) const
InlineCacheState GetICState() const
static void GenerateAheadOfTime(Isolate *, void(*Generate)(Isolate *, const BinaryOpICState &))
CallType call_type() const
BinaryOpICState(Isolate *isolate, ExtraICState extra_ic_state)
ExtraICState GetExtraICState() const
CallICState(int argc, CallType call_type)
Maybe< int > fixed_right_arg_
bool ShouldCreateAllocationMementos() const
bool UseInlinedSmiCode() const
static const char * KindToString(Kind kind)
OverwriteMode mode() const
Kind UpdateKind(Handle< Object > object, Kind kind) const
const CallType call_type_
CallICState(ExtraICState extra_ic_state)
static ContextualMode GetContextualMode(ExtraICState state)
Type * GetRightType(Zone *zone) const
bool CallAsMethod() const
static const char * GetStateName(CompareICState::State state)
static Type * StateToType(Zone *zone, State state, Handle< Map > map=Handle< Map >())
static State NewInputState(State old_state, Handle< Object > value)
static State TargetState(State old_state, State old_left, State old_right, Token::Value op, bool has_inlined_smi_code, Handle< Object > x, Handle< Object > y)
Source to read snapshot and builtins files from.
static void Clear(Isolate *isolate, Address address, ConstantPoolArray *constant_pool)
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf map
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long mode(MIPS only)") DEFINE_BOOL(enable_always_align_csp
#define DCHECK_LE(v1, v2)
#define DCHECK_EQ(v1, v2)
static LifetimePosition Min(LifetimePosition a, LifetimePosition b)
OStream & operator<<(OStream &os, const BasicBlockProfiler &p)
static LifetimePosition Max(LifetimePosition a, LifetimePosition b)
const int kMaxKeyedPolymorphism
Debugger support for the V8 JavaScript engine.