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

Side by Side Diff: src/feedback-vector.cc

Issue 2764113002: [type-profile] Handle returns correctly. (Closed)
Patch Set: Private slot. Created 3 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
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 #include "src/feedback-vector.h" 5 #include "src/feedback-vector.h"
6 #include "src/code-stubs.h" 6 #include "src/code-stubs.h"
7 #include "src/feedback-vector-inl.h" 7 #include "src/feedback-vector-inl.h"
8 #include "src/ic/ic-inl.h" 8 #include "src/ic/ic-inl.h"
9 #include "src/ic/ic-state.h" 9 #include "src/ic/ic-state.h"
10 #include "src/objects.h" 10 #include "src/objects.h"
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 } 170 }
171 } 171 }
172 return false; 172 return false;
173 } 173 }
174 174
175 FeedbackSlotKind FeedbackVector::GetKind(FeedbackSlot slot) const { 175 FeedbackSlotKind FeedbackVector::GetKind(FeedbackSlot slot) const {
176 DCHECK(!is_empty()); 176 DCHECK(!is_empty());
177 return metadata()->GetKind(slot); 177 return metadata()->GetKind(slot);
178 } 178 }
179 179
180 FeedbackSlot FeedbackVector::GetTypeProfileSlot() const {
181 FeedbackMetadataIterator iter(metadata());
182 while (iter.HasNext()) {
183 FeedbackSlot slot = iter.Next();
184 if (IsTypeProfile(slot)) {
185 return slot;
186 }
187 }
188 return FeedbackSlot();
189 }
190
180 // static 191 // static
181 Handle<FeedbackVector> FeedbackVector::New(Isolate* isolate, 192 Handle<FeedbackVector> FeedbackVector::New(Isolate* isolate,
182 Handle<SharedFunctionInfo> shared) { 193 Handle<SharedFunctionInfo> shared) {
183 Factory* factory = isolate->factory(); 194 Factory* factory = isolate->factory();
184 195
185 const int slot_count = shared->feedback_metadata()->slot_count(); 196 const int slot_count = shared->feedback_metadata()->slot_count();
186 const int length = slot_count + kReservedIndexCount; 197 const int length = slot_count + kReservedIndexCount;
187 198
188 Handle<FixedArray> array = factory->NewFixedArray(length, TENURED); 199 Handle<FixedArray> array = factory->NewFixedArray(length, TENURED);
189 array->set_map_no_write_barrier(isolate->heap()->feedback_vector_map()); 200 array->set_map_no_write_barrier(isolate->heap()->feedback_vector_map());
(...skipping 897 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 Handle<Tuple2> entry = Handle<Tuple2>::cast(maybe_entry); 1098 Handle<Tuple2> entry = Handle<Tuple2>::cast(maybe_entry);
1088 Handle<String> type = 1099 Handle<String> type =
1089 Handle<String>(String::cast(entry->value1()), isolate); 1100 Handle<String>(String::cast(entry->value1()), isolate);
1090 int position = Smi::cast(entry->value2())->value(); 1101 int position = Smi::cast(entry->value2())->value();
1091 PrintF("%d: %s\n", position, type->ToCString().get()); 1102 PrintF("%d: %s\n", position, type->ToCString().get());
1092 } 1103 }
1093 } 1104 }
1094 1105
1095 } // namespace internal 1106 } // namespace internal
1096 } // namespace v8 1107 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698