Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(640)

Unified Diff: src/type-feedback-vector.h

Issue 2587393006: [runtime] Collect IC feedback in DefineDataPropertyInLiteral. (Closed)
Patch Set: Rebase. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/runtime/runtime-object.cc ('k') | src/type-feedback-vector.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/type-feedback-vector.h
diff --git a/src/type-feedback-vector.h b/src/type-feedback-vector.h
index 0c741a37bba9c17d65889f4d5459823ea3fba47a..ed74904fcd9b298b92f51c8fdc87b1bae54280bd 100644
--- a/src/type-feedback-vector.h
+++ b/src/type-feedback-vector.h
@@ -30,6 +30,7 @@ enum class FeedbackVectorSlotKind {
KEYED_STORE_IC,
INTERPRETER_BINARYOP_IC,
INTERPRETER_COMPARE_IC,
+ STORE_DATA_PROPERTY_IN_LITERAL_IC,
// This is a general purpose slot that occupies one feedback vector element.
GENERAL,
@@ -81,6 +82,10 @@ class FeedbackVectorSpecBase {
return AddSlot(FeedbackVectorSlotKind::GENERAL);
}
+ FeedbackVectorSlot AddStoreDataPropertyInLiteralICSlot() {
+ return AddSlot(FeedbackVectorSlotKind::STORE_DATA_PROPERTY_IN_LITERAL_IC);
+ }
+
#ifdef OBJECT_PRINT
// For gdb debugging.
void Print();
@@ -667,6 +672,28 @@ class CompareICNexus final : public FeedbackNexus {
}
};
+class StoreDataPropertyInLiteralICNexus : public FeedbackNexus {
+ public:
+ StoreDataPropertyInLiteralICNexus(Handle<TypeFeedbackVector> vector,
+ FeedbackVectorSlot slot)
+ : FeedbackNexus(vector, slot) {
+ DCHECK_EQ(FeedbackVectorSlotKind::STORE_DATA_PROPERTY_IN_LITERAL_IC,
+ vector->GetKind(slot));
+ }
+ StoreDataPropertyInLiteralICNexus(TypeFeedbackVector* vector,
+ FeedbackVectorSlot slot)
+ : FeedbackNexus(vector, slot) {
+ DCHECK_EQ(FeedbackVectorSlotKind::STORE_DATA_PROPERTY_IN_LITERAL_IC,
+ vector->GetKind(slot));
+ }
+
+ void Clear(Code* host) { ConfigureUninitialized(); }
+
+ void ConfigureMonomorphic(Handle<Name> name, Handle<Map> receiver_map);
+
+ InlineCacheState StateFromFeedback() const override;
+};
+
inline BinaryOperationHint BinaryOperationHintFromFeedback(int type_feedback);
inline CompareOperationHint CompareOperationHintFromFeedback(int type_feedback);
« no previous file with comments | « src/runtime/runtime-object.cc ('k') | src/type-feedback-vector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698