Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(756)

Unified Diff: test/unittests/interpreter/constant-array-builder-unittest.cc

Issue 2167763003: [Interpreter] Avoid allocating pairs array in VisitDeclarations. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@int_merge_binary
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: test/unittests/interpreter/constant-array-builder-unittest.cc
diff --git a/test/unittests/interpreter/constant-array-builder-unittest.cc b/test/unittests/interpreter/constant-array-builder-unittest.cc
index c48ac58738c18d8a1f4eb4bbdc1e1a82678c50fb..1233aa4843d826ea10f6d9277f0c437a0e2275a7 100644
--- a/test/unittests/interpreter/constant-array-builder-unittest.cc
+++ b/test/unittests/interpreter/constant-array-builder-unittest.cc
@@ -43,7 +43,7 @@ TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithIdx8Reservations) {
for (size_t reserved = 1; reserved < k8BitCapacity; reserved *= 3) {
ConstantArrayBuilder builder(isolate(), zone());
for (size_t i = 0; i < reserved; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(operand_size == OperandSize::kByte);
}
for (size_t i = 0; i < 2 * k8BitCapacity; i++) {
@@ -94,7 +94,7 @@ TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithIdx8Reservations) {
// Now make reservations, and commit them with unique entries.
for (size_t i = 0; i < duplicates_in_idx8_space; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(operand_size == OperandSize::kByte);
}
for (size_t i = 0; i < duplicates_in_idx8_space; i++) {
@@ -118,7 +118,7 @@ TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithWideReservations) {
CHECK_EQ(builder.size(), i + 1);
}
for (size_t i = 0; i < reserved; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(operand_size == OperandSize::kShort);
CHECK_EQ(builder.size(), k8BitCapacity);
}
@@ -127,14 +127,14 @@ TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithWideReservations) {
CHECK_EQ(builder.size(), k8BitCapacity);
}
for (size_t i = 0; i < reserved; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(operand_size == OperandSize::kShort);
Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
builder.CommitReservedEntry(operand_size, object);
CHECK_EQ(builder.size(), k8BitCapacity);
}
for (size_t i = k8BitCapacity; i < k8BitCapacity + reserved; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(operand_size == OperandSize::kShort);
Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
builder.CommitReservedEntry(operand_size, object);
@@ -177,7 +177,7 @@ TEST_F(ConstantArrayBuilderTest, ToLargeFixedArray) {
TEST_F(ConstantArrayBuilderTest, GapFilledWhenLowReservationCommitted) {
ConstantArrayBuilder builder(isolate(), zone());
for (size_t i = 0; i < k8BitCapacity; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(OperandSize::kByte == operand_size);
CHECK_EQ(builder.size(), 0);
}
@@ -203,7 +203,7 @@ TEST_F(ConstantArrayBuilderTest, GapFilledWhenLowReservationCommitted) {
TEST_F(ConstantArrayBuilderTest, GapNotFilledWhenLowReservationDiscarded) {
ConstantArrayBuilder builder(isolate(), zone());
for (size_t i = 0; i < k8BitCapacity; i++) {
- OperandSize operand_size = builder.CreateReservedEntry();
+ OperandSize operand_size = builder.CreateDiscardableReservedEntry();
CHECK(OperandSize::kByte == operand_size);
CHECK_EQ(builder.size(), 0);
}
@@ -230,7 +230,7 @@ TEST_F(ConstantArrayBuilderTest, HolesWithUnusedReservations) {
static int kNumberOfHoles = 128;
ConstantArrayBuilder builder(isolate(), zone());
for (int i = 0; i < kNumberOfHoles; ++i) {
- CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kByte);
+ CHECK_EQ(builder.CreateDiscardableReservedEntry(), OperandSize::kByte);
}
for (int i = 0; i < 128; ++i) {
CHECK_EQ(builder.Insert(isolate()->factory()->NewNumber(i)), i);
@@ -252,13 +252,13 @@ TEST_F(ConstantArrayBuilderTest, HolesWithUnusedReservations) {
TEST_F(ConstantArrayBuilderTest, ReservationsAtAllScales) {
ConstantArrayBuilder builder(isolate(), zone());
for (int i = 0; i < 256; i++) {
- CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kByte);
+ CHECK_EQ(builder.CreateDiscardableReservedEntry(), OperandSize::kByte);
}
for (int i = 256; i < 65536; ++i) {
- CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kShort);
+ CHECK_EQ(builder.CreateDiscardableReservedEntry(), OperandSize::kShort);
}
for (int i = 65536; i < 131072; ++i) {
- CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kQuad);
+ CHECK_EQ(builder.CreateDiscardableReservedEntry(), OperandSize::kQuad);
}
CHECK_EQ(builder.CommitReservedEntry(OperandSize::kByte,
isolate()->factory()->NewNumber(1)),
@@ -283,6 +283,40 @@ TEST_F(ConstantArrayBuilderTest, ReservationsAtAllScales) {
}
}
+TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithFixedReservations) {
+ ConstantArrayBuilder builder(isolate(), zone());
+ for (size_t i = 0; i < k16BitCapacity; i++) {
+ if ((i % 2) == 0) {
+ CHECK_EQ(i, builder.ReserveEntry());
+ } else {
+ builder.Insert(handle(Smi::FromInt(static_cast<int>(i)), isolate()));
+ }
+ }
+ CHECK_EQ(builder.size(), k16BitCapacity);
+
+ // Check values before reserved entries are inserted.
+ for (size_t i = 0; i < k16BitCapacity; i++) {
+ if ((i % 2) == 0) {
+ // Check reserved values are the hole.
+ Handle<Object> empty = builder.At(i);
+ CHECK(empty->SameValue(isolate()->heap()->the_hole_value()));
+ } else {
+ CHECK_EQ(Handle<Smi>::cast(builder.At(i))->value(), i);
+ }
+ }
+
+ // Insert reserved entries.
+ for (size_t i = 0; i < k16BitCapacity; i += 2) {
+ builder.InsertReservedEntry(
+ i, handle(Smi::FromInt(static_cast<int>(i)), isolate()));
+ }
+
+ // Check values after reserved entries are inserted.
+ for (size_t i = 0; i < k16BitCapacity; i++) {
+ CHECK_EQ(Handle<Smi>::cast(builder.At(i))->value(), i);
+ }
+}
+
} // namespace interpreter
} // namespace internal
} // namespace v8
« src/interpreter/constant-array-builder.cc ('K') | « src/interpreter/constant-array-builder.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698