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