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

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

Issue 633423002: Teach TurboFan to call vector-based ICs. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Patch One. Created 6 years, 2 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
Index: src/type-feedback-vector.h
diff --git a/src/type-feedback-vector.h b/src/type-feedback-vector.h
index b6fadba73ea0623ea62ee852f15eda9af3394207..18b1c1974b616501edaf349d1e2a91b60fb054ae 100644
--- a/src/type-feedback-vector.h
+++ b/src/type-feedback-vector.h
@@ -49,6 +49,42 @@ class TypeFeedbackVector : public FixedArray {
private:
DISALLOW_IMPLICIT_CONSTRUCTORS(TypeFeedbackVector);
};
+
+// A FeedbackNode is the combination of a TypeFeedbackVector and a slot.
+// Derived classes customize the update and retrieval of feedback.
+class FeedbackNode {
+ public:
+ FeedbackNode(Handle<TypeFeedbackVector> vector, int slot)
+ : vector_(vector), slot_(slot) {}
+ virtual ~FeedbackNode() {}
+
+ Handle<TypeFeedbackVector> vector() const { return vector_; }
+ int slot() const { return slot_; }
+
+ private:
+ Handle<TypeFeedbackVector> vector_;
+ int slot_;
+};
+
+
+bool operator==(FeedbackNode const&, FeedbackNode const&);
+bool operator!=(FeedbackNode const&, FeedbackNode const&);
+
+size_t hash_value(FeedbackNode const&);
+
+
+class LoadICFeedbackNode : public FeedbackNode {
+ public:
+ LoadICFeedbackNode(Handle<TypeFeedbackVector> vector, int slot)
+ : FeedbackNode(vector, slot) {}
+};
+
+
+class KeyedLoadICFeedbackNode : public FeedbackNode {
+ public:
+ KeyedLoadICFeedbackNode(Handle<TypeFeedbackVector> vector, int slot)
+ : FeedbackNode(vector, slot) {}
+};
}
} // namespace v8::internal

Powered by Google App Engine
This is Rietveld 408576698