Revision: 22635
Author: verwa...@chromium.org
Date: Mon Jul 28 10:55:32 2014 UTC
Log: Move extra_ic_state to the PropertyICCompiler
BUG=
R=ish...@chromium.org
Review URL: https://codereview.chromium.org/426593002
http://code.google.com/p/v8/source/detail?r=22635
Modified:
/branches/bleeding_edge/src/ic.cc
/branches/bleeding_edge/src/stub-cache.cc
/branches/bleeding_edge/src/stub-cache.h
=======================================
--- /branches/bleeding_edge/src/ic.cc Fri Jul 25 17:50:53 2014 UTC
+++ /branches/bleeding_edge/src/ic.cc Mon Jul 28 10:55:32 2014 UTC
@@ -941,8 +941,7 @@
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<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
=======================================
--- /branches/bleeding_edge/src/stub-cache.cc Fri Jul 25 17:50:53 2014 UTC
+++ /branches/bleeding_edge/src/stub-cache.cc Mon Jul 28 10:55:32 2014 UTC
@@ -195,13 +195,11 @@
}
// 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<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> 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));
=======================================
--- /branches/bleeding_edge/src/stub-cache.h Fri Jul 25 17:50:53 2014 UTC
+++ /branches/bleeding_edge/src/stub-cache.h Mon Jul 28 10:55:32 2014 UTC
@@ -289,18 +289,15 @@
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 @@
CacheHolderFlag cache_holder_;
Isolate* isolate_;
- const ExtraICState extra_ic_state_;
MacroAssembler masm_;
};
@@ -342,11 +338,12 @@
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 @@
Handle<Code> CompileIndexedStorePolymorphic(MapHandleList* receiver_maps,
CodeHandleList*
handler_stubs,
MapHandleList*
transitioned_maps);
+ const ExtraICState extra_ic_state_;
};
@@ -407,9 +405,8 @@
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 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,8 @@
class NamedStoreHandlerCompiler : public PropertyHandlerCompiler {
public:
- NamedStoreHandlerCompiler(Isolate* isolate, Code::Kind kind =
Code::STORE_IC)
- // Handlers do not use strict mode.
- : PropertyHandlerCompiler(isolate, kind, kNoExtraICState,
- kCacheOnReceiver) {}
+ explicit NamedStoreHandlerCompiler(Isolate* isolate)
+ : PropertyHandlerCompiler(isolate, Code::STORE_IC, kCacheOnReceiver)
{}
virtual ~NamedStoreHandlerCompiler() {}
@@ -696,9 +690,8 @@
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
v8-dev@googlegroups.com
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 v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.