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

Side by Side Diff: src/ic/ic.cc

Issue 2065373003: [ic] LoadICState cleanup. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@cleanup-load-global-ic
Patch Set: Rebasing Created 4 years, 6 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/ic/ic.h ('k') | src/ic/ic-compiler.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/ic/ic.h" 5 #include "src/ic/ic.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/api-arguments-inl.h" 8 #include "src/api-arguments-inl.h"
9 #include "src/api.h" 9 #include "src/api.h"
10 #include "src/arguments.h" 10 #include "src/arguments.h"
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after
494 if (stub.state() != CompareICState::KNOWN_RECEIVER) return; 494 if (stub.state() != CompareICState::KNOWN_RECEIVER) return;
495 SetTargetAtAddress(address, GetRawUninitialized(isolate, stub.op()), 495 SetTargetAtAddress(address, GetRawUninitialized(isolate, stub.op()),
496 constant_pool); 496 constant_pool);
497 PatchInlinedSmiCode(isolate, address, DISABLE_INLINED_SMI_CHECK); 497 PatchInlinedSmiCode(isolate, address, DISABLE_INLINED_SMI_CHECK);
498 } 498 }
499 499
500 500
501 // static 501 // static
502 Handle<Code> KeyedLoadIC::ChooseMegamorphicStub(Isolate* isolate, 502 Handle<Code> KeyedLoadIC::ChooseMegamorphicStub(Isolate* isolate,
503 ExtraICState extra_state) { 503 ExtraICState extra_state) {
504 // TODO(ishell): remove extra_ic_state
504 if (FLAG_compiled_keyed_generic_loads) { 505 if (FLAG_compiled_keyed_generic_loads) {
505 return KeyedLoadGenericStub(isolate, LoadICState(extra_state)).GetCode(); 506 return KeyedLoadGenericStub(isolate).GetCode();
506 } else { 507 } else {
507 return isolate->builtins()->KeyedLoadIC_Megamorphic(); 508 return isolate->builtins()->KeyedLoadIC_Megamorphic();
508 } 509 }
509 } 510 }
510 511
511 512
512 static bool MigrateDeprecated(Handle<Object> object) { 513 static bool MigrateDeprecated(Handle<Object> object) {
513 if (!object->IsJSObject()) return false; 514 if (!object->IsJSObject()) return false;
514 Handle<JSObject> receiver = Handle<JSObject>::cast(object); 515 Handle<JSObject> receiver = Handle<JSObject>::cast(object);
515 if (!receiver->map()->is_deprecated()) return false; 516 if (!receiver->map()->is_deprecated()) return false;
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
826 // Indicate that we've handled this case. 827 // Indicate that we've handled this case.
827 DCHECK(UseVector()); 828 DCHECK(UseVector());
828 vector_set_ = true; 829 vector_set_ = true;
829 break; 830 break;
830 case GENERIC: 831 case GENERIC:
831 UNREACHABLE(); 832 UNREACHABLE();
832 break; 833 break;
833 } 834 }
834 } 835 }
835 836
836 Handle<Code> LoadIC::initialize_stub_in_optimized_code( 837 Handle<Code> LoadIC::initialize_stub_in_optimized_code(Isolate* isolate) {
837 Isolate* isolate, ExtraICState extra_state) {
838 if (FLAG_tf_load_ic_stub) { 838 if (FLAG_tf_load_ic_stub) {
839 return LoadICTFStub(isolate, LoadICState(extra_state)).GetCode(); 839 return LoadICTFStub(isolate).GetCode();
840 } 840 }
841 return LoadICStub(isolate, LoadICState(extra_state)).GetCode(); 841 return LoadICStub(isolate).GetCode();
842 } 842 }
843 843
844 Handle<Code> LoadGlobalIC::initialize_stub_in_optimized_code( 844 Handle<Code> LoadGlobalIC::initialize_stub_in_optimized_code(
845 Isolate* isolate, ExtraICState extra_state) { 845 Isolate* isolate, ExtraICState extra_state) {
846 return LoadGlobalICStub(isolate, LoadICState(extra_state)).GetCode(); 846 return LoadGlobalICStub(isolate, LoadGlobalICState(extra_state)).GetCode();
847 } 847 }
848 848
849 Handle<Code> KeyedLoadIC::initialize_stub_in_optimized_code( 849 Handle<Code> KeyedLoadIC::initialize_stub_in_optimized_code(
850 Isolate* isolate, ExtraICState extra_state) { 850 Isolate* isolate, ExtraICState extra_state) {
851 return KeyedLoadICStub(isolate, LoadICState(extra_state)).GetCode(); 851 // TODO(ishell): remove extra_ic_state
852 return KeyedLoadICStub(isolate).GetCode();
852 } 853 }
853 854
854 Handle<Code> KeyedStoreIC::initialize_stub_in_optimized_code( 855 Handle<Code> KeyedStoreIC::initialize_stub_in_optimized_code(
855 Isolate* isolate, LanguageMode language_mode) { 856 Isolate* isolate, LanguageMode language_mode) {
856 StoreICState state = StoreICState(language_mode); 857 StoreICState state = StoreICState(language_mode);
857 return VectorKeyedStoreICStub(isolate, state).GetCode(); 858 return VectorKeyedStoreICStub(isolate, state).GetCode();
858 } 859 }
859 860
860 861
861 Handle<Code> KeyedStoreIC::ChooseMegamorphicStub(Isolate* isolate, 862 Handle<Code> KeyedStoreIC::ChooseMegamorphicStub(Isolate* isolate,
(...skipping 2154 matching lines...) Expand 10 before | Expand all | Expand 10 after
3016 DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC, 3017 DCHECK_EQ(FeedbackVectorSlotKind::KEYED_LOAD_IC,
3017 vector->GetKind(vector_slot)); 3018 vector->GetKind(vector_slot));
3018 KeyedLoadICNexus nexus(vector, vector_slot); 3019 KeyedLoadICNexus nexus(vector, vector_slot);
3019 KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus); 3020 KeyedLoadIC ic(IC::EXTRA_CALL_FRAME, isolate, &nexus);
3020 ic.UpdateState(receiver, key); 3021 ic.UpdateState(receiver, key);
3021 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key)); 3022 RETURN_RESULT_OR_FAILURE(isolate, ic.Load(receiver, key));
3022 } 3023 }
3023 } 3024 }
3024 } // namespace internal 3025 } // namespace internal
3025 } // namespace v8 3026 } // namespace v8
OLDNEW
« no previous file with comments | « src/ic/ic.h ('k') | src/ic/ic-compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698