5#ifndef V8_COMPILER_PROCESSED_FEEDBACK_H_
6#define V8_COMPILER_PROCESSED_FEEDBACK_H_
14class BinaryOperationFeedback;
15class TypeOfOpFeedback;
17class CompareOperationFeedback;
18class ElementAccessFeedback;
20class GlobalAccessFeedback;
21class InstanceOfFeedback;
23class MegaDOMPropertyAccessFeedback;
24class NamedAccessFeedback;
25class RegExpLiteralFeedback;
26class TemplateObjectFeedback;
160 bool always_keep_group_target =
true)
const;
220template <
class T, ProcessedFeedback::Kind K>
243 ProcessedFeedback::kInstanceOf> {
249 ProcessedFeedback::kTypeOf> {
255 ProcessedFeedback::kLiteral> {
261 ProcessedFeedback::kRegExpLiteral> {
267 ProcessedFeedback::kTemplateObject> {
273 ProcessedFeedback::kBinaryOperation> {
279 ProcessedFeedback::kCompareOperation> {
OptionalHeapObjectRef target() const
CallFeedback(OptionalHeapObjectRef target, float frequency, SpeculationMode mode, CallFeedbackContent call_feedback_content, FeedbackSlotKind slot_kind)
CallFeedbackContent call_feedback_content() const
OptionalHeapObjectRef const target_
SpeculationMode speculation_mode() const
CallFeedbackContent const content_
SpeculationMode const mode_
ElementAccessFeedback(Zone *zone, KeyedAccessMode const &keyed_mode, FeedbackSlotKind slot_kind)
bool HasOnlyStringMaps(JSHeapBroker *broker) const
void AddGroup(TransitionGroup &&group)
KeyedAccessMode keyed_mode() const
ZoneVector< TransitionGroup > transition_groups_
ZoneVector< TransitionGroup > const & transition_groups() const
ElementAccessFeedback const & Refine(JSHeapBroker *broker, ZoneVector< MapRef > const &inferred_maps) const
KeyedAccessMode const keyed_mode_
bool IsPropertyCell() const
ContextRef script_context() const
int const index_and_immutable_
OptionalObjectRef const cell_or_context_
PropertyCellRef property_cell() const
OptionalObjectRef GetConstantHint(JSHeapBroker *broker) const
bool IsMegamorphic() const
GlobalAccessFeedback(PropertyCellRef cell, FeedbackSlotKind slot_kind)
bool IsScriptContextSlot() const
InsufficientFeedback(FeedbackSlotKind slot_kind)
AccessMode access_mode() const
KeyedAccessMode(AccessMode access_mode, KeyedAccessLoadMode load_mode)
KeyedAccessStoreMode store_mode() const
static KeyedAccessMode FromNexus(FeedbackNexus const &nexus)
union v8::internal::compiler::KeyedAccessMode::LoadStoreMode load_store_mode_
AccessMode const access_mode_
KeyedAccessLoadMode load_mode() const
FunctionTemplateInfoRef info() const
MegaDOMPropertyAccessFeedback(FunctionTemplateInfoRef info_ref, FeedbackSlotKind slot_kind)
FunctionTemplateInfoRef const info_
ZoneVector< MapRef > const maps_
NamedAccessFeedback(NameRef name, ZoneVector< MapRef > const &maps, FeedbackSlotKind slot_kind, bool has_deprecated_map_without_migration_target=false)
bool has_deprecated_map_without_migration_target() const
bool has_deprecated_map_without_migration_target_
ZoneVector< MapRef > const & maps() const
ElementAccessFeedback const & AsElementAccess() const
bool IsInsufficient() const
ForInFeedback const & AsForIn() const
GlobalAccessFeedback const & AsGlobalAccess() const
InstanceOfFeedback const & AsInstanceOf() const
TypeOfOpFeedback const & AsTypeOf() const
RegExpLiteralFeedback const & AsRegExpLiteral() const
TemplateObjectFeedback const & AsTemplateObject() const
MegaDOMPropertyAccessFeedback const & AsMegaDOMPropertyAccess() const
BinaryOperationFeedback const & AsBinaryOperation() const
NamedAccessFeedback const & AsNamedAccess() const
ProcessedFeedback(Kind kind, FeedbackSlotKind slot_kind)
FeedbackSlotKind slot_kind() const
LiteralFeedback const & AsLiteral() const
FeedbackSlotKind const slot_kind_
CompareOperationFeedback const & AsCompareOperation() const
CallFeedback const & AsCall() const
SingleValueFeedback(T value, FeedbackSlotKind slot_kind)
static const uint32_t K[64]
#define DCHECK(condition)
KeyedAccessStoreMode store_mode
KeyedAccessLoadMode load_mode
LoadStoreMode(KeyedAccessLoadMode load_mode)