Reviewers: danno,

Description:
AssemblerBase does not need remember a Zone.  Fix this.


BUG=
TEST=


Please review this at http://codereview.chromium.org/10546095/

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

Affected files:
  M src/arm/assembler-arm.cc
  M src/assembler.h
  M src/assembler.cc
  M src/ia32/assembler-ia32.cc
  M src/safepoint-table.cc
  M src/x64/assembler-x64.cc


Index: src/arm/assembler-arm.cc
diff --git a/src/arm/assembler-arm.cc b/src/arm/assembler-arm.cc
index 5ee7581279428f59360d1e84304b41e73cfe87d4..ec28da400255ddac296032c684ab17e8b87b25ff 100644
--- a/src/arm/assembler-arm.cc
+++ b/src/arm/assembler-arm.cc
@@ -291,7 +291,7 @@ static const int kMinimalBufferSize = 4*KB;


 Assembler::Assembler(Isolate* arg_isolate, void* buffer, int buffer_size)
-    : AssemblerBase(arg_isolate, arg_isolate->zone()),
+    : AssemblerBase(arg_isolate),
       positions_recorder_(this),
       emit_debug_code_(FLAG_debug_code) {
   if (buffer == NULL) {
Index: src/assembler.cc
diff --git a/src/assembler.cc b/src/assembler.cc
index 827a4abf7c0abd03f8a72a90a630a09ea4dde853..d4c49ddd459ef744b0b2230557f967ac681df434 100644
--- a/src/assembler.cc
+++ b/src/assembler.cc
@@ -106,10 +106,9 @@ const char* const RelocInfo::kFillerCommentString = "DEOPTIMIZATION PADDING"; // -----------------------------------------------------------------------------
 // Implementation of AssemblerBase

-AssemblerBase::AssemblerBase(Isolate* isolate, Zone* zone)
+AssemblerBase::AssemblerBase(Isolate* isolate)
     : isolate_(isolate),
-      jit_cookie_(0),
-      zone_(zone) {
+      jit_cookie_(0) {
   if (FLAG_mask_constants_with_cookie && isolate != NULL)  {
     jit_cookie_ = V8::RandomPrivate(isolate);
   }
Index: src/assembler.h
diff --git a/src/assembler.h b/src/assembler.h
index c0fb14be720bf096990201e0908bf5ec0de4cdd1..619c69c4b2abe3a2fb9bd383db9e67b8833d815f 100644
--- a/src/assembler.h
+++ b/src/assembler.h
@@ -57,7 +57,7 @@ const unsigned kNoASTId = -1;

 class AssemblerBase: public Malloced {
  public:
-  AssemblerBase(Isolate* isolate, Zone* zone);
+  explicit AssemblerBase(Isolate* isolate);

   Isolate* isolate() const { return isolate_; }
   int jit_cookie() { return jit_cookie_; }
@@ -66,12 +66,9 @@ class AssemblerBase: public Malloced {
   // cross-snapshotting.
   static void QuietNaN(HeapObject* nan) { }

-  Zone* zone() const { return zone_; }
-
  private:
   Isolate* isolate_;
   int jit_cookie_;
-  Zone* zone_;
 };


Index: src/ia32/assembler-ia32.cc
diff --git a/src/ia32/assembler-ia32.cc b/src/ia32/assembler-ia32.cc
index a04a16c808cea486755775855c95d1a5d4e1c6d0..a42f6324e34abe4058d7ab9cc24a3faafb4f0f77 100644
--- a/src/ia32/assembler-ia32.cc
+++ b/src/ia32/assembler-ia32.cc
@@ -313,7 +313,7 @@ static void InitCoverageLog();
 #endif

 Assembler::Assembler(Isolate* arg_isolate, void* buffer, int buffer_size)
-    : AssemblerBase(arg_isolate, arg_isolate->zone()),
+    : AssemblerBase(arg_isolate),
       positions_recorder_(this),
       emit_debug_code_(FLAG_debug_code) {
   if (buffer == NULL) {
Index: src/safepoint-table.cc
diff --git a/src/safepoint-table.cc b/src/safepoint-table.cc
index ddb35a9821333a8062b54e3c8252a8b86e211507..714e5c3977f7b8a5ac99ece038733e893edbbc30 100644
--- a/src/safepoint-table.cc
+++ b/src/safepoint-table.cc
@@ -128,20 +128,19 @@ Safepoint SafepointTableBuilder::DefineSafepoint(
     Safepoint::DeoptMode deopt_mode) {
   ASSERT(arguments >= 0);
   DeoptimizationInfo info;
-  Zone* zone = assembler->zone();
   info.pc = assembler->pc_offset();
   info.arguments = arguments;
   info.has_doubles = (kind & Safepoint::kWithDoubles);
-  deoptimization_info_.Add(info, zone);
-  deopt_index_list_.Add(Safepoint::kNoDeoptimizationIndex, zone);
+  deoptimization_info_.Add(info, zone_);
+  deopt_index_list_.Add(Safepoint::kNoDeoptimizationIndex, zone_);
   if (deopt_mode == Safepoint::kNoLazyDeopt) {
     last_lazy_safepoint_ = deopt_index_list_.length();
   }
-  indexes_.Add(new(zone) ZoneList<int>(8, zone), zone);
+  indexes_.Add(new(zone_) ZoneList<int>(8, zone_), zone_);
   registers_.Add((kind & Safepoint::kWithRegisters)
-      ? new(zone) ZoneList<int>(4, zone)
+      ? new(zone_) ZoneList<int>(4, zone_)
       : NULL,
-      zone);
+      zone_);
   return Safepoint(indexes_.last(), registers_.last());
 }

@@ -162,7 +161,6 @@ void SafepointTableBuilder::Emit(Assembler* assembler, int bits_per_entry) { // For lazy deoptimization we need space to patch a call after every call.
   // Ensure there is always space for such patching, even if the code ends
   // in a call.
-  Zone* zone = assembler->zone();
   int target_offset = assembler->pc_offset() + Deoptimizer::patch_size();
   while (assembler->pc_offset() < target_offset) {
     assembler->nop();
@@ -193,12 +191,12 @@ void SafepointTableBuilder::Emit(Assembler* assembler, int bits_per_entry) {
   }

   // Emit table of bitmaps.
-  ZoneList<uint8_t> bits(bytes_per_entry, zone);
+  ZoneList<uint8_t> bits(bytes_per_entry, zone_);
   for (int i = 0; i < length; i++) {
     ZoneList<int>* indexes = indexes_[i];
     ZoneList<int>* registers = registers_[i];
     bits.Clear();
-    bits.AddBlock(0, bytes_per_entry, zone);
+    bits.AddBlock(0, bytes_per_entry, zone_);

     // Run through the registers (if any).
     ASSERT(IsAligned(kNumSafepointRegisters, kBitsPerByte));
Index: src/x64/assembler-x64.cc
diff --git a/src/x64/assembler-x64.cc b/src/x64/assembler-x64.cc
index 2779de78733540386859160366eb0a08096e2c22..2f0c542bc2ca98907a1ea2e72abd3436d6fdfe3b 100644
--- a/src/x64/assembler-x64.cc
+++ b/src/x64/assembler-x64.cc
@@ -345,7 +345,7 @@ static void InitCoverageLog();
 #endif

 Assembler::Assembler(Isolate* arg_isolate, void* buffer, int buffer_size)
-    : AssemblerBase(arg_isolate, arg_isolate->zone()),
+    : AssemblerBase(arg_isolate),
       code_targets_(100),
       positions_recorder_(this),
       emit_debug_code_(FLAG_debug_code) {


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to