Commit 8956128a authored by jgruber's avatar jgruber Committed by Commit Bot

[snapshot] Clean up builtin serializer allocater

Recent changes in SerializerReferences (see https://crrev.com/c/1113930)
opened up these minor improvements to the builtin serializer allocator,
since we now have dedicated BuiltinReferences.

R=yangguo@chromium.org

Bug: v8:7887
Change-Id: Ie76a52a88ef4075c63c5eb2eaa81382c52325688
Reviewed-on: https://chromium-review.googlesource.com/1125844Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#54207}
parent a5332b49
......@@ -18,10 +18,11 @@ SerializerReference BuiltinSerializerAllocator::Allocate(AllocationSpace space,
// system. Instead of worrying about chunk indices and offsets, we simply
// need to generate unique offsets here.
const auto ref = SerializerReference::BuiltinReference(virtual_chunk_offset_);
const auto ref =
SerializerReference::BuiltinReference(next_builtin_reference_index_);
virtual_chunk_size_ += size;
virtual_chunk_offset_ += kObjectAlignment; // Needs to be aligned.
allocated_bytes_ += size;
next_builtin_reference_index_++;
return ref;
}
......@@ -30,7 +31,7 @@ SerializerReference BuiltinSerializerAllocator::Allocate(AllocationSpace space,
bool BuiltinSerializerAllocator::BackReferenceIsAlreadyAllocated(
SerializerReference reference) const {
DCHECK(reference.is_builtin_reference());
return reference.builtin_offset() < virtual_chunk_offset_;
return reference.builtin_index() < next_builtin_reference_index_;
}
#endif // DEBUG
......@@ -50,7 +51,7 @@ void BuiltinSerializerAllocator::OutputStatistics() {
PrintF("\n");
for (int space = FIRST_SPACE; space < kNumberOfSpaces; space++) {
uint32_t space_size = (space == CODE_SPACE) ? virtual_chunk_size_ : 0;
uint32_t space_size = (space == CODE_SPACE) ? allocated_bytes_ : 0;
PrintF("%16d", space_size);
}
PrintF("\n");
......
......@@ -38,10 +38,8 @@ class BuiltinSerializerAllocator final {
static constexpr int kNumberOfSpaces =
SerializerDeserializer::kNumberOfSpaces;
// We need to track a faked offset to create back-references. The size is
// kept simply to display statistics.
uint32_t virtual_chunk_size_ = 0;
uint32_t virtual_chunk_offset_ = 0;
uint32_t allocated_bytes_ = 0;
uint32_t next_builtin_reference_index_ = 0;
DISALLOW_COPY_AND_ASSIGN(BuiltinSerializerAllocator)
};
......
......@@ -131,7 +131,7 @@ class SerializerReference {
SpecialValueTypeBits::decode(bitfield_) == kBuiltinReference;
}
uint32_t builtin_offset() const {
uint32_t builtin_index() const {
DCHECK(is_builtin_reference());
return value_;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment