Reviewers: Igor Sheludko,

Message:
PTAL

Description:
Get rid of the "spare buffer" cache.

BUG=

Please review this at https://codereview.chromium.org/446923002/

SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge

Affected files (+13, -52 lines):
  M src/arm/assembler-arm.cc
  M src/arm64/assembler-arm64.cc
  M src/assembler.cc
  M src/ia32/assembler-ia32.cc
  M src/isolate.h
  M src/isolate.cc
  M src/x64/assembler-x64.cc
  M src/x87/assembler-x87.cc


Index: src/arm/assembler-arm.cc
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc
index 7831ead1d220ae295c8f56c6472ab31dad419aa9..1c690a8a6d720169f44c5e20ceafb4a300f80b7d 100644
--- a/src/arm/assembler-arm.cc
+++ b/src/arm/assembler-arm.cc
@@ -3202,8 +3202,8 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ < 4*KB) {
-    desc.buffer_size = 4*KB;
+  if (buffer_size_ == 0) {
+    desc.buffer_size = kMinimalBufferSize;
   } else if (buffer_size_ < 1*MB) {
     desc.buffer_size = 2*buffer_size_;
   } else {
Index: src/arm64/assembler-arm64.cc
diff --git a/src/arm64/assembler-arm64.cc b/src/arm64/assembler-arm64.cc
index a9b2a83ed95b1fb95f56f7af38e0619ee2be396a..a51b22ad9a5789875922002a54bdb28897e9934a 100644
--- a/src/arm64/assembler-arm64.cc
+++ b/src/arm64/assembler-arm64.cc
@@ -2771,8 +2771,8 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ < 4 * KB) {
-    desc.buffer_size = 4 * KB;
+  if (buffer_size_ == 0) {
+    desc.buffer_size = kMinimalBufferSize;
   } else if (buffer_size_ < 1 * MB) {
     desc.buffer_size = 2 * buffer_size_;
   } else {
Index: src/assembler.cc
diff --git a/src/assembler.cc b/src/assembler.cc
index 0ee20c7ee00f232a2d7fd11797b9b091888c0ec6..c35c81cc9f3f59dfbd85fc8e8ae5fba3e5095147 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -136,14 +136,7 @@ AssemblerBase::AssemblerBase(Isolate* isolate, void* buffer, int buffer_size)
   }
   if (buffer == NULL) {
     // Do our own buffer management.
-    if (buffer_size <= kMinimalBufferSize) {
-      buffer_size = kMinimalBufferSize;
-      if (isolate->assembler_spare_buffer() != NULL) {
-        buffer = isolate->assembler_spare_buffer();
-        isolate->set_assembler_spare_buffer(NULL);
-      }
-    }
-    if (buffer == NULL) buffer = NewArray<byte>(buffer_size);
+    buffer = NewArray<byte>(buffer_size);
     own_buffer_ = true;
   } else {
     // Use externally provided buffer instead.
@@ -158,15 +151,7 @@ AssemblerBase::AssemblerBase(Isolate* isolate, void* buffer, int buffer_size)


 AssemblerBase::~AssemblerBase() {
-  if (own_buffer_) {
-    if (isolate() != NULL &&
-        isolate()->assembler_spare_buffer() == NULL &&
-        buffer_size_ == kMinimalBufferSize) {
-      isolate()->set_assembler_spare_buffer(buffer_);
-    } else {
-      DeleteArray(buffer_);
-    }
-  }
+  if (own_buffer_) DeleteArray(buffer_);
 }


Index: src/ia32/assembler-ia32.cc
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc
index 5f80e07b56d8b0879f7c09a853815bfd27125ba1..e4fb3325596b53e71aaec3f4221a3ff0cdc6988e 100644
--- a/src/ia32/assembler-ia32.cc
+++ b/src/ia32/assembler-ia32.cc
@@ -2497,8 +2497,8 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ < 4*KB) {
-    desc.buffer_size = 4*KB;
+  if (buffer_size_ == 0) {
+    desc.buffer_size = kMinimalBufferSize;
   } else {
     desc.buffer_size = 2*buffer_size_;
   }
@@ -2527,13 +2527,7 @@ void Assembler::GrowBuffer() {
   MemMove(rc_delta + reloc_info_writer.pos(), reloc_info_writer.pos(),
           desc.reloc_size);

-  // Switch buffers.
-  if (isolate()->assembler_spare_buffer() == NULL &&
-      buffer_size_ == kMinimalBufferSize) {
-    isolate()->set_assembler_spare_buffer(buffer_);
-  } else {
-    DeleteArray(buffer_);
-  }
+  DeleteArray(buffer_);
   buffer_ = desc.buffer;
   buffer_size_ = desc.buffer_size;
   pc_ += pc_delta;
Index: src/isolate.cc
diff --git a/src/isolate.cc b/src/isolate.cc
index 293f7ab77eadaa791d2c8138265f97c28148877e..215296d735cc5b8b9698cfc67d9dc0cfa3bd7208 100644
--- a/src/isolate.cc
+++ b/src/isolate.cc
@@ -1645,9 +1645,6 @@ Isolate::~Isolate() {
   delete entry_stack_;
   entry_stack_ = NULL;

-  delete[] assembler_spare_buffer_;
-  assembler_spare_buffer_ = NULL;
-
   delete unicode_cache_;
   unicode_cache_ = NULL;

Index: src/isolate.h
diff --git a/src/isolate.h b/src/isolate.h
index cf1de10be21f50cdcc34176c0e1d708c2546e372..9ef6fc732a9f9f64c22fd4449ce28834a0107083 100644
--- a/src/isolate.h
+++ b/src/isolate.h
@@ -340,8 +340,6 @@ typedef List<HeapObject*> DebugObjectCache;
V(int, serialize_partial_snapshot_cache_capacity, 0) \ V(Object**, serialize_partial_snapshot_cache, NULL) \ /* Assembler state. */ \ - /* A previously allocated buffer of kMinimalBufferSize bytes, or NULL. */ \ - V(byte*, assembler_spare_buffer, NULL) \ V(FatalErrorCallback, exception_behavior, NULL) \ V(LogEventCallback, event_logger, NULL) \ V(AllowCodeGenerationFromStringsCallback, allow_code_gen_callback, NULL) \
Index: src/x64/assembler-x64.cc
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index 2568cc082204ae839dcf376a416d43b05ed978fb..e428e8ee7771d22360e0aac45e1b2ea53de41b2e 100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -331,8 +331,8 @@ void Assembler::GrowBuffer() {

   // Compute new buffer size.
   CodeDesc desc;  // the new buffer
-  if (buffer_size_ < 4*KB) {
-    desc.buffer_size = 4*KB;
+  if (buffer_size_ == 0) {
+    desc.buffer_size = kMinimalBufferSize;
   } else {
     desc.buffer_size = 2*buffer_size_;
   }
@@ -363,14 +363,7 @@ void Assembler::GrowBuffer() {
   MemMove(rc_delta + reloc_info_writer.pos(), reloc_info_writer.pos(),
           desc.reloc_size);

-  // Switch buffers.
-  if (isolate() != NULL &&
-      isolate()->assembler_spare_buffer() == NULL &&
-      buffer_size_ == kMinimalBufferSize) {
-    isolate()->set_assembler_spare_buffer(buffer_);
-  } else {
-    DeleteArray(buffer_);
-  }
+  DeleteArray(buffer_);
   buffer_ = desc.buffer;
   buffer_size_ = desc.buffer_size;
   pc_ += pc_delta;
Index: src/x87/assembler-x87.cc
diff --git a/src/x87/assembler-x87.cc b/src/x87/assembler-x87.cc
index cb40dac65167426fc64e744cd8d099d474c7af27..7061053e6efc8bd6964ca9dd4c9a51a82a2b615a 100644
--- a/src/x87/assembler-x87.cc
+++ b/src/x87/assembler-x87.cc
@@ -1910,13 +1910,7 @@ void Assembler::GrowBuffer() {
   MemMove(rc_delta + reloc_info_writer.pos(), reloc_info_writer.pos(),
           desc.reloc_size);

-  // Switch buffers.
-  if (isolate()->assembler_spare_buffer() == NULL &&
-      buffer_size_ == kMinimalBufferSize) {
-    isolate()->set_assembler_spare_buffer(buffer_);
-  } else {
-    DeleteArray(buffer_);
-  }
+  DeleteArray(buffer_);
   buffer_ = desc.buffer;
   buffer_size_ = desc.buffer_size;
   pc_ += pc_delta;


--
--
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.

Reply via email to