Index: src/ic/ic-compiler.cc |
diff --git a/src/ic/ic-compiler.cc b/src/ic/ic-compiler.cc |
index 20e4fedc23bc4b7e3bba26c87c3da5fd40e5f428..ae4b2a5d58c9ab80e4793adee894de68a8659624 100644 |
--- a/src/ic/ic-compiler.cc |
+++ b/src/ic/ic-compiler.cc |
@@ -33,60 +33,6 @@ bool PropertyICCompiler::IncludesNumberMap(MapHandleList* maps) { |
} |
-Handle<Code> PropertyICCompiler::CompileMonomorphic(Handle<Map> map, |
- Handle<Code> handler, |
- Handle<Name> name, |
- IcCheckType check) { |
- MapHandleList maps(1); |
- CodeHandleList handlers(1); |
- maps.Add(map); |
- handlers.Add(handler); |
- Code::StubType stub_type = handler->type(); |
- return CompilePolymorphic(&maps, &handlers, name, stub_type, check); |
-} |
- |
- |
-Handle<Code> PropertyICCompiler::ComputeMonomorphic( |
- Code::Kind kind, Handle<Name> name, Handle<Map> map, Handle<Code> handler, |
- ExtraICState extra_ic_state) { |
- Isolate* isolate = name->GetIsolate(); |
- if (handler.is_identical_to(isolate->builtins()->LoadIC_Normal()) || |
- handler.is_identical_to(isolate->builtins()->LoadIC_Normal_Strong()) || |
- handler.is_identical_to(isolate->builtins()->StoreIC_Normal())) { |
- name = isolate->factory()->normal_ic_symbol(); |
- } |
- |
- CacheHolderFlag flag; |
- Handle<Map> stub_holder = IC::GetICCacheHolder(map, isolate, &flag); |
- if (kind == Code::KEYED_STORE_IC) { |
- // Always set the "property" bit. |
- extra_ic_state = |
- KeyedStoreIC::IcCheckTypeField::update(extra_ic_state, PROPERTY); |
- DCHECK(STANDARD_STORE == |
- KeyedStoreIC::GetKeyedAccessStoreMode(extra_ic_state)); |
- } else if (kind == Code::KEYED_LOAD_IC) { |
- extra_ic_state = KeyedLoadIC::IcCheckTypeField::update(extra_ic_state, |
- PROPERTY); |
- } |
- |
- Handle<Code> ic; |
- // There are multiple string maps that all use the same prototype. That |
- // prototype cannot hold multiple handlers, one for each of the string maps, |
- // for a single name. Hence, turn off caching of the IC. |
- bool can_be_cached = map->instance_type() >= FIRST_NONSTRING_TYPE; |
- if (can_be_cached) { |
- ic = Find(name, stub_holder, kind, extra_ic_state, flag); |
- if (!ic.is_null()) return ic; |
- } |
- |
- PropertyICCompiler ic_compiler(isolate, kind, extra_ic_state, flag); |
- ic = ic_compiler.CompileMonomorphic(map, handler, name, PROPERTY); |
- |
- if (can_be_cached) Map::UpdateCodeCache(stub_holder, name, ic); |
- return ic; |
-} |
- |
- |
Handle<Code> PropertyICCompiler::ComputeKeyedLoadMonomorphicHandler( |
Handle<Map> receiver_map, ExtraICState extra_ic_state) { |
Isolate* isolate = receiver_map->GetIsolate(); |
@@ -138,35 +84,6 @@ Handle<Code> PropertyICCompiler::ComputeKeyedStoreMonomorphicHandler( |
} |
-Handle<Code> PropertyICCompiler::ComputeKeyedStoreMonomorphic( |
- Handle<Map> receiver_map, LanguageMode language_mode, |
- KeyedAccessStoreMode store_mode) { |
- Isolate* isolate = receiver_map->GetIsolate(); |
- ExtraICState extra_state = |
- KeyedStoreIC::ComputeExtraICState(language_mode, store_mode); |
- Code::Flags flags = |
- Code::ComputeMonomorphicFlags(Code::KEYED_STORE_IC, extra_state); |
- |
- DCHECK(store_mode == STANDARD_STORE || |
- store_mode == STORE_AND_GROW_NO_TRANSITION || |
- store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS || |
- store_mode == STORE_NO_TRANSITION_HANDLE_COW); |
- |
- Handle<String> name = isolate->factory()->KeyedStoreMonomorphic_string(); |
- Handle<Object> probe(receiver_map->FindInCodeCache(*name, flags), isolate); |
- if (probe->IsCode()) return Handle<Code>::cast(probe); |
- |
- PropertyICCompiler compiler(isolate, Code::KEYED_STORE_IC, extra_state); |
- Handle<Code> code = |
- compiler.CompileKeyedStoreMonomorphic(receiver_map, store_mode); |
- |
- Map::UpdateCodeCache(receiver_map, name, code); |
- DCHECK(KeyedStoreIC::GetKeyedAccessStoreMode(code->extra_ic_state()) == |
- store_mode); |
- return code; |
-} |
- |
- |
Code* PropertyICCompiler::FindPreMonomorphic(Isolate* isolate, Code::Kind kind, |
ExtraICState state) { |
Code::Flags flags = Code::ComputeFlags(kind, PREMONOMORPHIC, state); |
@@ -239,17 +156,6 @@ Handle<Code> PropertyICCompiler::ComputeCompareNil(Handle<Map> receiver_map, |
} |
-Handle<Code> PropertyICCompiler::ComputePolymorphic( |
- Code::Kind kind, MapHandleList* maps, CodeHandleList* handlers, |
- int valid_maps, Handle<Name> name, ExtraICState extra_ic_state) { |
- Handle<Code> handler = handlers->at(0); |
- Code::StubType type = valid_maps == 1 ? handler->type() : Code::NORMAL; |
- DCHECK(kind == Code::LOAD_IC || kind == Code::STORE_IC); |
- PropertyICCompiler ic_compiler(name->GetIsolate(), kind, extra_ic_state); |
- return ic_compiler.CompilePolymorphic(maps, handlers, name, type, PROPERTY); |
-} |
- |
- |
void PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers( |
MapHandleList* receiver_maps, MapHandleList* transitioned_maps, |
CodeHandleList* handlers, KeyedAccessStoreMode store_mode, |
@@ -267,31 +173,6 @@ void PropertyICCompiler::ComputeKeyedStorePolymorphicHandlers( |
} |
-Handle<Code> PropertyICCompiler::ComputeKeyedStorePolymorphic( |
- MapHandleList* receiver_maps, KeyedAccessStoreMode store_mode, |
- LanguageMode language_mode) { |
- Isolate* isolate = receiver_maps->at(0)->GetIsolate(); |
- DCHECK(store_mode == STANDARD_STORE || |
- store_mode == STORE_AND_GROW_NO_TRANSITION || |
- store_mode == STORE_NO_TRANSITION_IGNORE_OUT_OF_BOUNDS || |
- store_mode == STORE_NO_TRANSITION_HANDLE_COW); |
- Handle<PolymorphicCodeCache> cache = |
- isolate->factory()->polymorphic_code_cache(); |
- ExtraICState extra_state = |
- KeyedStoreIC::ComputeExtraICState(language_mode, store_mode); |
- Code::Flags flags = |
- Code::ComputeFlags(Code::KEYED_STORE_IC, POLYMORPHIC, extra_state); |
- Handle<Object> probe = cache->Lookup(receiver_maps, flags); |
- if (probe->IsCode()) return Handle<Code>::cast(probe); |
- |
- PropertyICCompiler compiler(isolate, Code::KEYED_STORE_IC, extra_state); |
- Handle<Code> code = |
- compiler.CompileKeyedStorePolymorphic(receiver_maps, store_mode); |
- PolymorphicCodeCache::Update(cache, receiver_maps, flags, code); |
- return code; |
-} |
- |
- |
Handle<Code> PropertyICCompiler::CompileLoadInitialize(Code::Flags flags) { |
LoadIC::GenerateInitialize(masm()); |
Handle<Code> code = GetCodeWithFlags(flags, "CompileLoadInitialize"); |
@@ -394,22 +275,6 @@ void PropertyICCompiler::CompileKeyedStorePolymorphicHandlers( |
} |
-Handle<Code> PropertyICCompiler::CompileKeyedStorePolymorphic( |
- MapHandleList* receiver_maps, KeyedAccessStoreMode store_mode) { |
- // Collect MONOMORPHIC stubs for all |receiver_maps|. |
- CodeHandleList handlers(receiver_maps->length()); |
- MapHandleList transitioned_maps(receiver_maps->length()); |
- CompileKeyedStorePolymorphicHandlers(receiver_maps, &transitioned_maps, |
- &handlers, store_mode); |
- |
- Handle<Code> code = CompileKeyedStorePolymorphic(receiver_maps, &handlers, |
- &transitioned_maps); |
- isolate()->counters()->keyed_store_polymorphic_stubs()->Increment(); |
- PROFILE(isolate(), CodeCreateEvent(log_kind(code), *code, 0)); |
- return code; |
-} |
- |
- |
#define __ ACCESS_MASM(masm()) |