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

Side by Side Diff: src/type-feedback-vector.h

Issue 1129853002: Removing FLAG_vector_ics. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Comment response. Created 5 years, 7 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 | « src/mips64/lithium-mips64.cc ('k') | src/type-feedback-vector.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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 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_FEEDBACK_VECTOR_H_ 5 #ifndef V8_TYPE_FEEDBACK_VECTOR_H_
6 #define V8_TYPE_FEEDBACK_VECTOR_H_ 6 #define V8_TYPE_FEEDBACK_VECTOR_H_
7 7
8 #include <vector> 8 #include <vector>
9 9
10 #include "src/checks.h" 10 #include "src/checks.h"
(...skipping 11 matching lines...) Expand all
22 FeedbackVectorSpec() : slots_(0), has_ic_slot_(false) {} 22 FeedbackVectorSpec() : slots_(0), has_ic_slot_(false) {}
23 explicit FeedbackVectorSpec(int slots) : slots_(slots), has_ic_slot_(false) {} 23 explicit FeedbackVectorSpec(int slots) : slots_(slots), has_ic_slot_(false) {}
24 FeedbackVectorSpec(int slots, Code::Kind ic_slot_kind) 24 FeedbackVectorSpec(int slots, Code::Kind ic_slot_kind)
25 : slots_(slots), has_ic_slot_(true), ic_kind_(ic_slot_kind) {} 25 : slots_(slots), has_ic_slot_(true), ic_kind_(ic_slot_kind) {}
26 26
27 int slots() const { return slots_; } 27 int slots() const { return slots_; }
28 28
29 int ic_slots() const { return has_ic_slot_ ? 1 : 0; } 29 int ic_slots() const { return has_ic_slot_ ? 1 : 0; }
30 30
31 Code::Kind GetKind(int ic_slot) const { 31 Code::Kind GetKind(int ic_slot) const {
32 DCHECK(FLAG_vector_ics && has_ic_slot_ && ic_slot == 0); 32 DCHECK(has_ic_slot_ && ic_slot == 0);
33 return ic_kind_; 33 return ic_kind_;
34 } 34 }
35 35
36 private: 36 private:
37 int slots_; 37 int slots_;
38 bool has_ic_slot_; 38 bool has_ic_slot_;
39 Code::Kind ic_kind_; 39 Code::Kind ic_kind_;
40 }; 40 };
41 41
42 42
43 class ZoneFeedbackVectorSpec { 43 class ZoneFeedbackVectorSpec {
44 public: 44 public:
45 explicit ZoneFeedbackVectorSpec(Zone* zone) 45 explicit ZoneFeedbackVectorSpec(Zone* zone)
46 : slots_(0), ic_slots_(0), ic_slot_kinds_(zone) {} 46 : slots_(0), ic_slots_(0), ic_slot_kinds_(zone) {}
47 47
48 ZoneFeedbackVectorSpec(Zone* zone, int slots, int ic_slots) 48 ZoneFeedbackVectorSpec(Zone* zone, int slots, int ic_slots)
49 : slots_(slots), 49 : slots_(slots), ic_slots_(ic_slots), ic_slot_kinds_(ic_slots, zone) {}
50 ic_slots_(ic_slots),
51 ic_slot_kinds_(FLAG_vector_ics ? ic_slots : 0, zone) {}
52 50
53 int slots() const { return slots_; } 51 int slots() const { return slots_; }
54 void increase_slots(int count) { slots_ += count; } 52 void increase_slots(int count) { slots_ += count; }
55 53
56 int ic_slots() const { return ic_slots_; } 54 int ic_slots() const { return ic_slots_; }
57 void increase_ic_slots(int count) { 55 void increase_ic_slots(int count) {
58 ic_slots_ += count; 56 ic_slots_ += count;
59 if (FLAG_vector_ics) ic_slot_kinds_.resize(ic_slots_); 57 ic_slot_kinds_.resize(ic_slots_);
60 } 58 }
61 59
62 void SetKind(int ic_slot, Code::Kind kind) { 60 void SetKind(int ic_slot, Code::Kind kind) {
63 DCHECK(FLAG_vector_ics);
64 ic_slot_kinds_[ic_slot] = kind; 61 ic_slot_kinds_[ic_slot] = kind;
65 } 62 }
66 63
67 Code::Kind GetKind(int ic_slot) const { 64 Code::Kind GetKind(int ic_slot) const {
68 DCHECK(FLAG_vector_ics);
69 return static_cast<Code::Kind>(ic_slot_kinds_.at(ic_slot)); 65 return static_cast<Code::Kind>(ic_slot_kinds_.at(ic_slot));
70 } 66 }
71 67
72 private: 68 private:
73 int slots_; 69 int slots_;
74 int ic_slots_; 70 int ic_slots_;
75 ZoneVector<unsigned char> ic_slot_kinds_; 71 ZoneVector<unsigned char> ic_slot_kinds_;
76 }; 72 };
77 73
78 74
(...skipping 14 matching lines...) Expand all
93 static TypeFeedbackVector* cast(Object* obj) { 89 static TypeFeedbackVector* cast(Object* obj) {
94 DCHECK(obj->IsTypeFeedbackVector()); 90 DCHECK(obj->IsTypeFeedbackVector());
95 return reinterpret_cast<TypeFeedbackVector*>(obj); 91 return reinterpret_cast<TypeFeedbackVector*>(obj);
96 } 92 }
97 93
98 static const int kReservedIndexCount = 3; 94 static const int kReservedIndexCount = 3;
99 static const int kFirstICSlotIndex = 0; 95 static const int kFirstICSlotIndex = 0;
100 static const int kWithTypesIndex = 1; 96 static const int kWithTypesIndex = 1;
101 static const int kGenericCountIndex = 2; 97 static const int kGenericCountIndex = 2;
102 98
103 static int elements_per_ic_slot() { return FLAG_vector_ics ? 2 : 1; } 99 static int elements_per_ic_slot() { return 2; }
104 100
105 int first_ic_slot_index() const { 101 int first_ic_slot_index() const {
106 DCHECK(length() >= kReservedIndexCount); 102 DCHECK(length() >= kReservedIndexCount);
107 return Smi::cast(get(kFirstICSlotIndex))->value(); 103 return Smi::cast(get(kFirstICSlotIndex))->value();
108 } 104 }
109 105
110 int ic_with_type_info_count() { 106 int ic_with_type_info_count() {
111 return length() > 0 ? Smi::cast(get(kWithTypesIndex))->value() : 0; 107 return length() > 0 ? Smi::cast(get(kWithTypesIndex))->value() : 0;
112 } 108 }
113 109
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps, 414 void ConfigurePolymorphic(Handle<Name> name, MapHandleList* maps,
419 CodeHandleList* handlers); 415 CodeHandleList* handlers);
420 416
421 InlineCacheState StateFromFeedback() const override; 417 InlineCacheState StateFromFeedback() const override;
422 Name* FindFirstName() const override; 418 Name* FindFirstName() const override;
423 }; 419 };
424 } 420 }
425 } // namespace v8::internal 421 } // namespace v8::internal
426 422
427 #endif // V8_TRANSITIONS_H_ 423 #endif // V8_TRANSITIONS_H_
OLDNEW
« no previous file with comments | « src/mips64/lithium-mips64.cc ('k') | src/type-feedback-vector.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698