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

Unified Diff: src/ic/handler-compiler.cc

Issue 1846963002: Use a dictionary-mode code cache on the map rather than a dual system. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Addressed comment Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/ic/handler-compiler.h ('k') | src/ic/ia32/handler-compiler-ia32.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/ic/handler-compiler.cc
diff --git a/src/ic/handler-compiler.cc b/src/ic/handler-compiler.cc
index 714888c8b3ef2626e82a64194a3f03b51f3aff38..2eff81f6b5fcf4fc594aed5c750e2b5cc8f87ceb 100644
--- a/src/ic/handler-compiler.cc
+++ b/src/ic/handler-compiler.cc
@@ -14,16 +14,14 @@
namespace v8 {
namespace internal {
-
Handle<Code> PropertyHandlerCompiler::Find(Handle<Name> name,
Handle<Map> stub_holder,
Code::Kind kind,
- CacheHolderFlag cache_holder,
- Code::StubType type) {
- Code::Flags flags = Code::ComputeHandlerFlags(kind, type, cache_holder);
- Object* probe = stub_holder->FindInCodeCache(*name, flags);
- if (probe->IsCode()) return handle(Code::cast(probe));
- return Handle<Code>::null();
+ CacheHolderFlag cache_holder) {
+ Code::Flags flags = Code::ComputeHandlerFlags(kind, cache_holder);
+ Code* code = stub_holder->LookupInCodeCache(*name, flags);
+ if (code == nullptr) return Handle<Code>();
+ return handle(code);
}
@@ -66,7 +64,7 @@ Handle<Code> NamedLoadHandlerCompiler::ComputeLoadNonexistent(
// Compile the stub that is either shared for all names or
// name specific if there are global objects involved.
Handle<Code> handler = PropertyHandlerCompiler::Find(
- cache_name, stub_holder_map, Code::LOAD_IC, flag, Code::FAST);
+ cache_name, stub_holder_map, Code::LOAD_IC, flag);
if (!handler.is_null()) return handler;
NamedLoadHandlerCompiler compiler(isolate, receiver_map, last, flag);
@@ -77,9 +75,8 @@ Handle<Code> NamedLoadHandlerCompiler::ComputeLoadNonexistent(
Handle<Code> PropertyHandlerCompiler::GetCode(Code::Kind kind,
- Code::StubType type,
Handle<Name> name) {
- Code::Flags flags = Code::ComputeHandlerFlags(kind, type, cache_holder());
+ Code::Flags flags = Code::ComputeHandlerFlags(kind, cache_holder());
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::HANDLER_TAG,
AbstractCode::cast(*code), *name));
@@ -194,7 +191,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadField(Handle<Name> name,
__ Move(receiver(), reg);
LoadFieldStub stub(isolate(), field);
GenerateTailCall(masm(), stub.GetCode());
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -204,7 +201,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadConstant(Handle<Name> name,
__ Move(receiver(), reg);
LoadConstantStub stub(isolate(), constant_index);
GenerateTailCall(masm(), stub.GetCode());
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -221,7 +218,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadNonexistent(
}
GenerateLoadConstant(isolate()->factory()->undefined_value());
FrontendFooter(name, &miss);
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -229,7 +226,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
Handle<Name> name, Handle<AccessorInfo> callback) {
Register reg = Frontend(name);
GenerateLoadCallback(reg, callback);
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -240,7 +237,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadCallback(
Register holder = Frontend(name);
GenerateApiAccessorCall(masm(), call_optimization, map(), receiver(),
scratch2(), false, no_reg, holder, accessor_index);
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -358,7 +355,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadInterceptor(
} else {
GenerateLoadInterceptor(reg);
}
- return GetCode(kind(), Code::FAST, it->name());
+ return GetCode(kind(), it->name());
}
@@ -416,7 +413,7 @@ Handle<Code> NamedLoadHandlerCompiler::CompileLoadViaGetter(
Register holder = Frontend(name);
GenerateLoadViaGetter(masm(), map(), receiver(), holder, accessor_index,
expected_arguments, scratch2());
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -506,7 +503,7 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreTransition(
PopVectorAndSlot();
TailCallBuiltin(masm(), MissBuiltin(kind()));
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
bool NamedStoreHandlerCompiler::RequiresFieldTypeChecks(
@@ -534,7 +531,7 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreField(LookupIterator* it) {
__ bind(&miss);
if (need_save_restore) PopVectorAndSlot();
TailCallBuiltin(masm(), MissBuiltin(kind()));
- return GetCode(kind(), Code::FAST, it->name());
+ return GetCode(kind(), it->name());
}
@@ -545,7 +542,7 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreViaSetter(
GenerateStoreViaSetter(masm(), map(), receiver(), holder, accessor_index,
expected_arguments, scratch2());
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
@@ -556,7 +553,7 @@ Handle<Code> NamedStoreHandlerCompiler::CompileStoreCallback(
GenerateApiAccessorCall(masm(), call_optimization, handle(object->map()),
receiver(), scratch2(), true, value(), holder,
accessor_index);
- return GetCode(kind(), Code::FAST, name);
+ return GetCode(kind(), name);
}
« no previous file with comments | « src/ic/handler-compiler.h ('k') | src/ic/ia32/handler-compiler-ia32.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698