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

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

Issue 1202173002: Remove --pretenuring-call-new (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix 64 bit release build break. Created 5 years, 3 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/runtime/runtime-object.cc ('k') | src/typing.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 #include "src/type-info.h" 5 #include "src/type-info.h"
6 6
7 #include "src/ast.h" 7 #include "src/ast.h"
8 #include "src/code-stubs.h" 8 #include "src/code-stubs.h"
9 #include "src/compiler.h" 9 #include "src/compiler.h"
10 #include "src/ic/ic.h" 10 #include "src/ic/ic.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 155
156 156
157 bool TypeFeedbackOracle::CallIsMonomorphic(FeedbackVectorICSlot slot) { 157 bool TypeFeedbackOracle::CallIsMonomorphic(FeedbackVectorICSlot slot) {
158 Handle<Object> value = GetInfo(slot); 158 Handle<Object> value = GetInfo(slot);
159 return value->IsAllocationSite() || value->IsJSFunction(); 159 return value->IsAllocationSite() || value->IsJSFunction();
160 } 160 }
161 161
162 162
163 bool TypeFeedbackOracle::CallNewIsMonomorphic(FeedbackVectorSlot slot) { 163 bool TypeFeedbackOracle::CallNewIsMonomorphic(FeedbackVectorSlot slot) {
164 Handle<Object> info = GetInfo(slot); 164 Handle<Object> info = GetInfo(slot);
165 return FLAG_pretenuring_call_new 165 return info->IsAllocationSite() || info->IsJSFunction();
166 ? info->IsJSFunction()
167 : info->IsAllocationSite() || info->IsJSFunction();
168 } 166 }
169 167
170 168
171 byte TypeFeedbackOracle::ForInType(FeedbackVectorSlot feedback_vector_slot) { 169 byte TypeFeedbackOracle::ForInType(FeedbackVectorSlot feedback_vector_slot) {
172 Handle<Object> value = GetInfo(feedback_vector_slot); 170 Handle<Object> value = GetInfo(feedback_vector_slot);
173 return value.is_identical_to( 171 return value.is_identical_to(
174 TypeFeedbackVector::UninitializedSentinel(isolate())) 172 TypeFeedbackVector::UninitializedSentinel(isolate()))
175 ? ForInStatement::FAST_FOR_IN 173 ? ForInStatement::FAST_FOR_IN
176 : ForInStatement::SLOW_FOR_IN; 174 : ForInStatement::SLOW_FOR_IN;
177 } 175 }
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 return Handle<JSFunction>(isolate()->native_context()->array_function()); 215 return Handle<JSFunction>(isolate()->native_context()->array_function());
218 } 216 }
219 217
220 return Handle<JSFunction>::cast(info); 218 return Handle<JSFunction>::cast(info);
221 } 219 }
222 220
223 221
224 Handle<JSFunction> TypeFeedbackOracle::GetCallNewTarget( 222 Handle<JSFunction> TypeFeedbackOracle::GetCallNewTarget(
225 FeedbackVectorSlot slot) { 223 FeedbackVectorSlot slot) {
226 Handle<Object> info = GetInfo(slot); 224 Handle<Object> info = GetInfo(slot);
227 if (FLAG_pretenuring_call_new || info->IsJSFunction()) { 225 if (info->IsJSFunction()) {
228 return Handle<JSFunction>::cast(info); 226 return Handle<JSFunction>::cast(info);
229 } 227 }
230 228
231 DCHECK(info->IsAllocationSite()); 229 DCHECK(info->IsAllocationSite());
232 return Handle<JSFunction>(isolate()->native_context()->array_function()); 230 return Handle<JSFunction>(isolate()->native_context()->array_function());
233 } 231 }
234 232
235 233
236 Handle<AllocationSite> TypeFeedbackOracle::GetCallAllocationSite( 234 Handle<AllocationSite> TypeFeedbackOracle::GetCallAllocationSite(
237 FeedbackVectorICSlot slot) { 235 FeedbackVectorICSlot slot) {
238 Handle<Object> info = GetInfo(slot); 236 Handle<Object> info = GetInfo(slot);
239 if (info->IsAllocationSite()) { 237 if (info->IsAllocationSite()) {
240 return Handle<AllocationSite>::cast(info); 238 return Handle<AllocationSite>::cast(info);
241 } 239 }
242 return Handle<AllocationSite>::null(); 240 return Handle<AllocationSite>::null();
243 } 241 }
244 242
245 243
246 Handle<AllocationSite> TypeFeedbackOracle::GetCallNewAllocationSite( 244 Handle<AllocationSite> TypeFeedbackOracle::GetCallNewAllocationSite(
247 FeedbackVectorSlot slot) { 245 FeedbackVectorSlot slot) {
248 Handle<Object> info = GetInfo(slot); 246 Handle<Object> info = GetInfo(slot);
249 if (FLAG_pretenuring_call_new || info->IsAllocationSite()) { 247 if (info->IsAllocationSite()) {
250 return Handle<AllocationSite>::cast(info); 248 return Handle<AllocationSite>::cast(info);
251 } 249 }
252 return Handle<AllocationSite>::null(); 250 return Handle<AllocationSite>::null();
253 } 251 }
254 252
255 253
256 bool TypeFeedbackOracle::LoadIsBuiltin( 254 bool TypeFeedbackOracle::LoadIsBuiltin(
257 TypeFeedbackId id, Builtins::Name builtin) { 255 TypeFeedbackId id, Builtins::Name builtin) {
258 return *GetInfo(id) == isolate()->builtins()->builtin(builtin); 256 return *GetInfo(id) == isolate()->builtins()->builtin(builtin);
259 } 257 }
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 // Dictionary has been allocated with sufficient size for all elements. 585 // Dictionary has been allocated with sufficient size for all elements.
588 DisallowHeapAllocation no_need_to_resize_dictionary; 586 DisallowHeapAllocation no_need_to_resize_dictionary;
589 HandleScope scope(isolate()); 587 HandleScope scope(isolate());
590 USE(UnseededNumberDictionary::AtNumberPut( 588 USE(UnseededNumberDictionary::AtNumberPut(
591 dictionary_, IdToKey(ast_id), handle(target, isolate()))); 589 dictionary_, IdToKey(ast_id), handle(target, isolate())));
592 } 590 }
593 591
594 592
595 } // namespace internal 593 } // namespace internal
596 } // namespace v8 594 } // namespace v8
OLDNEW
« no previous file with comments | « src/runtime/runtime-object.cc ('k') | src/typing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698