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

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

Issue 2133233002: [LoadIC] Handle simple field loads in the dispatcher (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix release builds for realz Created 4 years, 5 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/ic/ic.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 38d5695a537dbea157005e9fcef5b3406410374c..cfcb6dbd699be22a2fd8d52d18668f7a6a508ff9 100644
--- a/src/type-feedback-vector.h
+++ b/src/type-feedback-vector.h
@@ -412,8 +412,9 @@ class FeedbackNexus {
virtual InlineCacheState StateFromFeedback() const = 0;
virtual int ExtractMaps(MapHandleList* maps) const;
- virtual MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const;
- virtual bool FindHandlers(CodeHandleList* code_list, int length = -1) const;
+ virtual MaybeHandle<Object> FindHandlerForMap(Handle<Map> map) const;
+ virtual bool FindHandlers(List<Handle<Object>>* code_list,
+ int length = -1) const;
virtual Name* FindFirstName() const { return NULL; }
virtual void ConfigureUninitialized();
@@ -434,7 +435,7 @@ class FeedbackNexus {
Handle<FixedArray> EnsureArrayOfSize(int length);
Handle<FixedArray> EnsureExtraArrayOfSize(int length);
void InstallHandlers(Handle<FixedArray> array, MapHandleList* maps,
- CodeHandleList* handlers);
+ List<Handle<Object>>* handlers);
private:
// The reason for having a vector handle and a raw pointer is that we can and
@@ -471,10 +472,11 @@ class CallICNexus final : public FeedbackNexus {
// CallICs don't record map feedback.
return 0;
}
- MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const final {
+ MaybeHandle<Object> FindHandlerForMap(Handle<Map> map) const final {
return MaybeHandle<Code>();
}
- bool FindHandlers(CodeHandleList* code_list, int length = -1) const final {
+ bool FindHandlers(List<Handle<Object>>* code_list,
+ int length = -1) const final {
return length == 0;
}
@@ -499,9 +501,10 @@ class LoadICNexus : public FeedbackNexus {
void Clear(Code* host);
- void ConfigureMonomorphic(Handle<Map> receiver_map, Handle<Code> handler);
+ void ConfigureMonomorphic(Handle<Map> receiver_map, Handle<Object> handler);
- void ConfigurePolymorphic(MapHandleList* maps, CodeHandleList* handlers);
+ void ConfigurePolymorphic(MapHandleList* maps,
+ List<Handle<Object>>* handlers);
InlineCacheState StateFromFeedback() const override;
};
@@ -521,10 +524,11 @@ class LoadGlobalICNexus : public FeedbackNexus {
// LoadGlobalICs don't record map feedback.
return 0;
}
- MaybeHandle<Code> FindHandlerForMap(Handle<Map> map) const final {
+ MaybeHandle<Object> FindHandlerForMap(Handle<Map> map) const final {
return MaybeHandle<Code>();
}
- bool FindHandlers(CodeHandleList* code_list, int length = -1) const final {
+ bool FindHandlers(List<Handle<Object>>* code_list,
+ int length = -1) const final {
return length == 0;
}
@@ -556,7 +560,7 @@ class KeyedLoadICNexus : public FeedbackNexus {
Handle<Code> handler);
// name can be null.
void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps,
- CodeHandleList* handlers);
+ List<Handle<Object>>* handlers);
void ConfigureMegamorphicKeyed(IcCheckType property_type);
@@ -585,7 +589,8 @@ class StoreICNexus : public FeedbackNexus {
void ConfigureMonomorphic(Handle<Map> receiver_map, Handle<Code> handler);
- void ConfigurePolymorphic(MapHandleList* maps, CodeHandleList* handlers);
+ void ConfigurePolymorphic(MapHandleList* maps,
+ List<Handle<Object>>* handlers);
InlineCacheState StateFromFeedback() const override;
};
@@ -613,7 +618,7 @@ class KeyedStoreICNexus : public FeedbackNexus {
Handle<Code> handler);
// name can be null.
void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps,
- CodeHandleList* handlers);
+ List<Handle<Object>>* handlers);
void ConfigurePolymorphic(MapHandleList* maps,
MapHandleList* transitioned_maps,
CodeHandleList* handlers);
« no previous file with comments | « src/ic/ic.cc ('k') | src/type-feedback-vector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698