Reviewers: Igor Sheludko,
Message:
PTAL
Description:
Move extra_ic_state to the PropertyICCompiler
BUG=
Please review this at https://codereview.chromium.org/426593002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+16, -26 lines):
M src/ic.cc
M src/stub-cache.h
M src/stub-cache.cc
Index: src/ic.cc
diff --git a/src/ic.cc b/src/ic.cc
index
88c141323b5c91cde3c6ff0542bf73299e1a7e60..66f057440424c8e68f67a6496e94847ba8ab5641
100644
--- a/src/ic.cc
+++ b/src/ic.cc
@@ -941,8 +941,7 @@ Handle<Code> LoadIC::CompileHandler(LookupResult*
lookup, Handle<Object> object,
Handle<HeapType> type = receiver_type();
Handle<JSObject> holder(lookup->holder());
bool receiver_is_holder = object.is_identical_to(holder);
- NamedLoadHandlerCompiler compiler(isolate(), handler_kind(),
kNoExtraICState,
- cache_holder);
+ NamedLoadHandlerCompiler compiler(isolate(), cache_holder);
switch (lookup->type()) {
case FIELD: {
@@ -1392,7 +1391,7 @@ Handle<Code> StoreIC::CompileHandler(LookupResult*
lookup,
Handle<JSObject> receiver = Handle<JSObject>::cast(object);
Handle<JSObject> holder(lookup->holder());
- NamedStoreHandlerCompiler compiler(isolate(), kind());
+ NamedStoreHandlerCompiler compiler(isolate());
if (lookup->IsTransition()) {
// Explicitly pass in the receiver map since LookupForWrite may have
Index: src/stub-cache.cc
diff --git a/src/stub-cache.cc b/src/stub-cache.cc
index
0a28ae31724b1431693178d36f378f26ea80470c..841f838ba5a1f2685e888ff4ff49746e61b6e951
100644
--- a/src/stub-cache.cc
+++ b/src/stub-cache.cc
@@ -195,13 +195,11 @@ Handle<Code>
StubCache::ComputeLoadNonexistent(Handle<Name> name,
}
// Compile the stub that is either shared for all names or
// name specific if there are global objects involved.
- Code::Kind handler_kind = Code::LOAD_IC;
Handle<Code> handler = PropertyHandlerCompiler::Find(
- cache_name, stub_holder_map, handler_kind, flag, Code::FAST);
+ cache_name, stub_holder_map, Code::LOAD_IC, flag, Code::FAST);
if (!handler.is_null()) return handler;
- NamedLoadHandlerCompiler compiler(isolate_, handler_kind,
kNoExtraICState,
- flag);
+ NamedLoadHandlerCompiler compiler(isolate_, flag);
handler = compiler.CompileLoadNonexistent(type, last, cache_name);
Map::UpdateCodeCache(stub_holder_map, cache_name, handler);
return handler;
@@ -1137,7 +1135,7 @@ Handle<Code> PropertyICCompiler::GetCode(Code::Kind
kind, Code::StubType type,
Handle<Name> name,
InlineCacheState state) {
Code::Flags flags =
- Code::ComputeFlags(kind, state, extra_state(), type, cache_holder());
+ Code::ComputeFlags(kind, state, extra_ic_state_, type,
cache_holder());
Handle<Code> code = GetCodeWithFlags(flags, name);
IC::RegisterWeakMapDependency(code);
PROFILE(isolate(), CodeCreateEvent(log_kind(code), *code, *name));
@@ -1148,7 +1146,6 @@ Handle<Code> PropertyICCompiler::GetCode(Code::Kind
kind, Code::StubType type,
Handle<Code> PropertyHandlerCompiler::GetCode(Code::Kind kind,
Code::StubType type,
Handle<Name> name) {
- ASSERT_EQ(kNoExtraICState, extra_state());
Code::Flags flags = Code::ComputeHandlerFlags(kind, type,
cache_holder());
Handle<Code> code = GetCodeWithFlags(flags, name);
PROFILE(isolate(), CodeCreateEvent(Logger::STUB_TAG, *code, *name));
Index: src/stub-cache.h
diff --git a/src/stub-cache.h b/src/stub-cache.h
index
054c6ccc20fb67280dd6359896da3c55a1c625bc..c4b1578de2f4a4c48fc2bb50062b1e4e7a6b774b
100644
--- a/src/stub-cache.h
+++ b/src/stub-cache.h
@@ -289,18 +289,15 @@ class PropertyAccessCompiler BASE_EMBEDDED {
protected:
PropertyAccessCompiler(Isolate* isolate, Code::Kind kind,
- ExtraICState extra_ic_state,
CacheHolderFlag cache_holder)
: registers_(GetCallingConvention(kind)),
kind_(kind),
cache_holder_(cache_holder),
isolate_(isolate),
- extra_ic_state_(extra_ic_state),
masm_(isolate, NULL, 256) {}
Code::Kind kind() const { return kind_; }
CacheHolderFlag cache_holder() const { return cache_holder_; }
- ExtraICState extra_state() const { return extra_ic_state_; }
MacroAssembler* masm() { return &masm_; }
Isolate* isolate() const { return isolate_; }
Heap* heap() const { return isolate()->heap(); }
@@ -332,7 +329,6 @@ class PropertyAccessCompiler BASE_EMBEDDED {
CacheHolderFlag cache_holder_;
Isolate* isolate_;
- const ExtraICState extra_ic_state_;
MacroAssembler masm_;
};
@@ -342,11 +338,12 @@ class PropertyICCompiler : public
PropertyAccessCompiler {
PropertyICCompiler(Isolate* isolate, Code::Kind kind,
ExtraICState extra_ic_state = kNoExtraICState,
CacheHolderFlag cache_holder = kCacheOnReceiver)
- : PropertyAccessCompiler(isolate, kind, extra_ic_state,
cache_holder) {}
+ : PropertyAccessCompiler(isolate, kind, cache_holder),
+ extra_ic_state_(extra_ic_state) {}
static Handle<Code> Find(Handle<Name> name, Handle<Map> stub_holder_map,
Code::Kind kind,
- ExtraICState extra_state = kNoExtraICState,
+ ExtraICState extra_ic_state = kNoExtraICState,
CacheHolderFlag cache_holder =
kCacheOnReceiver);
Handle<Code> CompileLoadInitialize(Code::Flags flags);
@@ -397,6 +394,7 @@ class PropertyICCompiler : public
PropertyAccessCompiler {
Handle<Code> CompileIndexedStorePolymorphic(MapHandleList* receiver_maps,
CodeHandleList*
handler_stubs,
MapHandleList*
transitioned_maps);
+ const ExtraICState extra_ic_state_;
};
@@ -407,9 +405,8 @@ class PropertyHandlerCompiler : public
PropertyAccessCompiler {
protected:
PropertyHandlerCompiler(Isolate* isolate, Code::Kind kind,
- ExtraICState extra_ic_state,
CacheHolderFlag cache_holder)
- : PropertyAccessCompiler(isolate, kind, extra_ic_state,
cache_holder) {}
+ : PropertyAccessCompiler(isolate, kind, cache_holder) {}
virtual ~PropertyHandlerCompiler() {}
@@ -481,10 +478,9 @@ class PropertyHandlerCompiler : public
PropertyAccessCompiler {
class NamedLoadHandlerCompiler : public PropertyHandlerCompiler {
public:
- NamedLoadHandlerCompiler(Isolate* isolate, Code::Kind kind =
Code::LOAD_IC,
- ExtraICState extra_ic_state = kNoExtraICState,
+ NamedLoadHandlerCompiler(Isolate* isolate,
CacheHolderFlag cache_holder = kCacheOnReceiver)
- : PropertyHandlerCompiler(isolate, kind, extra_ic_state,
cache_holder) {}
+ : PropertyHandlerCompiler(isolate, Code::LOAD_IC, cache_holder) {}
virtual ~NamedLoadHandlerCompiler() {}
@@ -594,10 +590,9 @@ class NamedLoadHandlerCompiler : public
PropertyHandlerCompiler {
class NamedStoreHandlerCompiler : public PropertyHandlerCompiler {
public:
- NamedStoreHandlerCompiler(Isolate* isolate, Code::Kind kind =
Code::STORE_IC)
+ explicit NamedStoreHandlerCompiler(Isolate* isolate)
// Handlers do not use strict mode.
- : PropertyHandlerCompiler(isolate, kind, kNoExtraICState,
- kCacheOnReceiver) {}
+ : PropertyHandlerCompiler(isolate, Code::STORE_IC, kCacheOnReceiver)
{}
virtual ~NamedStoreHandlerCompiler() {}
@@ -696,9 +691,8 @@ class NamedStoreHandlerCompiler : public
PropertyHandlerCompiler {
class IndexedHandlerCompiler : public PropertyHandlerCompiler {
public:
- IndexedHandlerCompiler(Isolate* isolate,
- ExtraICState extra_ic_state = kNoExtraICState)
- : PropertyHandlerCompiler(isolate, Code::KEYED_LOAD_IC,
extra_ic_state,
+ explicit IndexedHandlerCompiler(Isolate* isolate)
+ : PropertyHandlerCompiler(isolate, Code::KEYED_LOAD_IC,
kCacheOnReceiver) {}
virtual ~IndexedHandlerCompiler() {}
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.