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

Side by Side Diff: src/type-info.h

Issue 979323005: Refactor TypeFeedbackOracle to accept Handle<Name> instead of Handle<String>. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 9 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 unified diff | Download patch
« no previous file with comments | « no previous file | src/type-info.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_TYPE_INFO_H_ 5 #ifndef V8_TYPE_INFO_H_
6 #define V8_TYPE_INFO_H_ 6 #define V8_TYPE_INFO_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/globals.h" 9 #include "src/globals.h"
10 #include "src/types.h" 10 #include "src/types.h"
(...skipping 24 matching lines...) Expand all
35 // to various cycles in our headers. 35 // to various cycles in our headers.
36 // TODO(rossberg): once all oracle access is removed from ast.cc, it should 36 // TODO(rossberg): once all oracle access is removed from ast.cc, it should
37 // be possible. 37 // be possible.
38 byte ForInType(FeedbackVectorSlot feedback_vector_slot); 38 byte ForInType(FeedbackVectorSlot feedback_vector_slot);
39 39
40 void GetStoreModeAndKeyType(TypeFeedbackId id, 40 void GetStoreModeAndKeyType(TypeFeedbackId id,
41 KeyedAccessStoreMode* store_mode, 41 KeyedAccessStoreMode* store_mode,
42 IcCheckType* key_type); 42 IcCheckType* key_type);
43 void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type); 43 void GetLoadKeyType(TypeFeedbackId id, IcCheckType* key_type);
44 44
45 void PropertyReceiverTypes(TypeFeedbackId id, Handle<String> name, 45 void PropertyReceiverTypes(TypeFeedbackId id, Handle<Name> name,
46 SmallMapList* receiver_types); 46 SmallMapList* receiver_types);
47 void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<String> name, 47 void PropertyReceiverTypes(FeedbackVectorICSlot slot, Handle<Name> name,
48 SmallMapList* receiver_types); 48 SmallMapList* receiver_types);
49 void KeyedPropertyReceiverTypes(TypeFeedbackId id, 49 void KeyedPropertyReceiverTypes(TypeFeedbackId id,
50 SmallMapList* receiver_types, 50 SmallMapList* receiver_types,
51 bool* is_string, 51 bool* is_string,
52 IcCheckType* key_type); 52 IcCheckType* key_type);
53 void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot, 53 void KeyedPropertyReceiverTypes(FeedbackVectorICSlot slot,
54 SmallMapList* receiver_types, bool* is_string, 54 SmallMapList* receiver_types, bool* is_string,
55 IcCheckType* key_type); 55 IcCheckType* key_type);
56 void AssignmentReceiverTypes(TypeFeedbackId id, 56 void AssignmentReceiverTypes(TypeFeedbackId id, Handle<Name> name,
57 Handle<String> name,
58 SmallMapList* receiver_types); 57 SmallMapList* receiver_types);
59 void KeyedAssignmentReceiverTypes(TypeFeedbackId id, 58 void KeyedAssignmentReceiverTypes(TypeFeedbackId id,
60 SmallMapList* receiver_types, 59 SmallMapList* receiver_types,
61 KeyedAccessStoreMode* store_mode, 60 KeyedAccessStoreMode* store_mode,
62 IcCheckType* key_type); 61 IcCheckType* key_type);
63 void CountReceiverTypes(TypeFeedbackId id, 62 void CountReceiverTypes(TypeFeedbackId id,
64 SmallMapList* receiver_types); 63 SmallMapList* receiver_types);
65 64
66 void CollectReceiverTypes(TypeFeedbackId id, 65 void CollectReceiverTypes(TypeFeedbackId id,
67 SmallMapList* types); 66 SmallMapList* types);
(...skipping 29 matching lines...) Expand all
97 Type** left, 96 Type** left,
98 Type** right, 97 Type** right,
99 Type** combined); 98 Type** combined);
100 99
101 Type* CountType(TypeFeedbackId id); 100 Type* CountType(TypeFeedbackId id);
102 101
103 Zone* zone() const { return zone_; } 102 Zone* zone() const { return zone_; }
104 Isolate* isolate() const { return isolate_; } 103 Isolate* isolate() const { return isolate_; }
105 104
106 private: 105 private:
107 void CollectReceiverTypes(TypeFeedbackId id, 106 void CollectReceiverTypes(TypeFeedbackId id, Handle<Name> name,
108 Handle<String> name, 107 Code::Flags flags, SmallMapList* types);
109 Code::Flags flags,
110 SmallMapList* types);
111 template <class T> 108 template <class T>
112 void CollectReceiverTypes(T* obj, Handle<String> name, Code::Flags flags, 109 void CollectReceiverTypes(T* obj, Handle<Name> name, Code::Flags flags,
113 SmallMapList* types); 110 SmallMapList* types);
114 111
115 // Returns true if there is at least one string map and if 112 // Returns true if there is at least one string map and if
116 // all maps are string maps. 113 // all maps are string maps.
117 bool HasOnlyStringMaps(SmallMapList* receiver_types); 114 bool HasOnlyStringMaps(SmallMapList* receiver_types);
118 115
119 void SetInfo(TypeFeedbackId id, Object* target); 116 void SetInfo(TypeFeedbackId id, Object* target);
120 117
121 void BuildDictionary(Handle<Code> code); 118 void BuildDictionary(Handle<Code> code);
122 void GetRelocInfos(Handle<Code> code, ZoneList<RelocInfo>* infos); 119 void GetRelocInfos(Handle<Code> code, ZoneList<RelocInfo>* infos);
(...skipping 18 matching lines...) Expand all
141 Zone* zone_; 138 Zone* zone_;
142 Handle<UnseededNumberDictionary> dictionary_; 139 Handle<UnseededNumberDictionary> dictionary_;
143 Handle<TypeFeedbackVector> feedback_vector_; 140 Handle<TypeFeedbackVector> feedback_vector_;
144 141
145 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle); 142 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle);
146 }; 143 };
147 144
148 } } // namespace v8::internal 145 } } // namespace v8::internal
149 146
150 #endif // V8_TYPE_INFO_H_ 147 #endif // V8_TYPE_INFO_H_
OLDNEW
« no previous file with comments | « no previous file | src/type-info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698