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

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

Issue 736043002: Do not bailout from optimizing functions that use f(x, arguments) (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Remove Lookup Created 6 years, 1 month 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
« src/ast.h ('K') | « src/type-info.h ('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/v8.h" 5 #include "src/v8.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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 82
83 83
84 bool TypeFeedbackOracle::StoreIsUninitialized(TypeFeedbackId ast_id) { 84 bool TypeFeedbackOracle::StoreIsUninitialized(TypeFeedbackId ast_id) {
85 Handle<Object> maybe_code = GetInfo(ast_id); 85 Handle<Object> maybe_code = GetInfo(ast_id);
86 if (!maybe_code->IsCode()) return false; 86 if (!maybe_code->IsCode()) return false;
87 Handle<Code> code = Handle<Code>::cast(maybe_code); 87 Handle<Code> code = Handle<Code>::cast(maybe_code);
88 return code->ic_state() == UNINITIALIZED; 88 return code->ic_state() == UNINITIALIZED;
89 } 89 }
90 90
91 91
92 bool TypeFeedbackOracle::CallIsUninitialized(FeedbackVectorICSlot slot) {
93 Handle<Object> value = GetInfo(slot);
94 return value->IsUndefined() ||
95 value.is_identical_to(
96 TypeFeedbackVector::UninitializedSentinel(isolate()));
97 }
98
99
92 bool TypeFeedbackOracle::CallIsMonomorphic(FeedbackVectorICSlot slot) { 100 bool TypeFeedbackOracle::CallIsMonomorphic(FeedbackVectorICSlot slot) {
93 Handle<Object> value = GetInfo(slot); 101 Handle<Object> value = GetInfo(slot);
94 return value->IsAllocationSite() || value->IsJSFunction(); 102 return value->IsAllocationSite() || value->IsJSFunction();
95 } 103 }
96 104
97 105
98 bool TypeFeedbackOracle::CallNewIsMonomorphic(FeedbackVectorSlot slot) { 106 bool TypeFeedbackOracle::CallNewIsMonomorphic(FeedbackVectorSlot slot) {
99 Handle<Object> info = GetInfo(slot); 107 Handle<Object> info = GetInfo(slot);
100 return FLAG_pretenuring_call_new 108 return FLAG_pretenuring_call_new
101 ? info->IsJSFunction() 109 ? info->IsJSFunction()
(...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after
469 UnseededNumberDictionary::kNotFound); 477 UnseededNumberDictionary::kNotFound);
470 // Dictionary has been allocated with sufficient size for all elements. 478 // Dictionary has been allocated with sufficient size for all elements.
471 DisallowHeapAllocation no_need_to_resize_dictionary; 479 DisallowHeapAllocation no_need_to_resize_dictionary;
472 HandleScope scope(isolate()); 480 HandleScope scope(isolate());
473 USE(UnseededNumberDictionary::AtNumberPut( 481 USE(UnseededNumberDictionary::AtNumberPut(
474 dictionary_, IdToKey(ast_id), handle(target, isolate()))); 482 dictionary_, IdToKey(ast_id), handle(target, isolate())));
475 } 483 }
476 484
477 485
478 } } // namespace v8::internal 486 } } // namespace v8::internal
OLDNEW
« src/ast.h ('K') | « src/type-info.h ('k') | src/typing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698