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.

Reply via email to