diff options
Diffstat (limited to 'deps/v8/src/compiler/processed-feedback.h')
-rw-r--r-- | deps/v8/src/compiler/processed-feedback.h | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/processed-feedback.h b/deps/v8/src/compiler/processed-feedback.h index 17829863de..1d1ee538d8 100644 --- a/deps/v8/src/compiler/processed-feedback.h +++ b/deps/v8/src/compiler/processed-feedback.h @@ -18,7 +18,10 @@ class ElementAccessFeedback; class ForInFeedback; class GlobalAccessFeedback; class InstanceOfFeedback; +class LiteralFeedback; class NamedAccessFeedback; +class RegExpLiteralFeedback; +class TemplateObjectFeedback; class ProcessedFeedback : public ZoneObject { public: @@ -31,7 +34,10 @@ class ProcessedFeedback : public ZoneObject { kForIn, kGlobalAccess, kInstanceOf, + kLiteral, kNamedAccess, + kRegExpLiteral, + kTemplateObject, }; Kind kind() const { return kind_; } @@ -46,6 +52,9 @@ class ProcessedFeedback : public ZoneObject { GlobalAccessFeedback const& AsGlobalAccess() const; InstanceOfFeedback const& AsInstanceOf() const; NamedAccessFeedback const& AsNamedAccess() const; + LiteralFeedback const& AsLiteral() const; + RegExpLiteralFeedback const& AsRegExpLiteral() const; + TemplateObjectFeedback const& AsTemplateObject() const; protected: ProcessedFeedback(Kind kind, FeedbackSlotKind slot_kind); @@ -187,7 +196,9 @@ class SingleValueFeedback : public ProcessedFeedback { (K == kBinaryOperation && slot_kind == FeedbackSlotKind::kBinaryOp) || (K == kCompareOperation && slot_kind == FeedbackSlotKind::kCompareOp) || (K == kForIn && slot_kind == FeedbackSlotKind::kForIn) || - (K == kInstanceOf && slot_kind == FeedbackSlotKind::kInstanceOf)); + (K == kInstanceOf && slot_kind == FeedbackSlotKind::kInstanceOf) || + ((K == kLiteral || K == kRegExpLiteral || K == kTemplateObject) && + slot_kind == FeedbackSlotKind::kLiteral)); } T value() const { return value_; } @@ -202,6 +213,24 @@ class InstanceOfFeedback using SingleValueFeedback::SingleValueFeedback; }; +class LiteralFeedback + : public SingleValueFeedback<AllocationSiteRef, + ProcessedFeedback::kLiteral> { + using SingleValueFeedback::SingleValueFeedback; +}; + +class RegExpLiteralFeedback + : public SingleValueFeedback<JSRegExpRef, + ProcessedFeedback::kRegExpLiteral> { + using SingleValueFeedback::SingleValueFeedback; +}; + +class TemplateObjectFeedback + : public SingleValueFeedback<JSArrayRef, + ProcessedFeedback::kTemplateObject> { + using SingleValueFeedback::SingleValueFeedback; +}; + class BinaryOperationFeedback : public SingleValueFeedback<BinaryOperationHint, ProcessedFeedback::kBinaryOperation> { |