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

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

Issue 2493183002: [ignition] Fix more -Wsign-compare warnings. (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « test/unittests/interpreter/bytecode-register-optimizer-unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/factory.h" 7 #include "src/factory.h"
8 #include "src/handles-inl.h" 8 #include "src/handles-inl.h"
9 #include "src/interpreter/constant-array-builder.h" 9 #include "src/interpreter/constant-array-builder.h"
10 #include "src/isolate.h" 10 #include "src/isolate.h"
(...skipping 25 matching lines...) Expand all
36 } 36 }
37 CHECK_EQ(builder.size(), k16BitCapacity); 37 CHECK_EQ(builder.size(), k16BitCapacity);
38 for (size_t i = 0; i < k16BitCapacity; i++) { 38 for (size_t i = 0; i < k16BitCapacity; i++) {
39 CHECK_EQ(Handle<Smi>::cast(builder.At(i))->value(), static_cast<int>(i)); 39 CHECK_EQ(Handle<Smi>::cast(builder.At(i))->value(), static_cast<int>(i));
40 } 40 }
41 } 41 }
42 42
43 TEST_F(ConstantArrayBuilderTest, ToFixedArray) { 43 TEST_F(ConstantArrayBuilderTest, ToFixedArray) {
44 CanonicalHandleScope canonical(isolate()); 44 CanonicalHandleScope canonical(isolate());
45 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 45 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
46 static const size_t kNumberOfElements = 37; 46 static const int kNumberOfElements = 37;
47 for (size_t i = 0; i < kNumberOfElements; i++) { 47 for (int i = 0; i < kNumberOfElements; i++) {
48 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i); 48 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
49 builder.Insert(object); 49 builder.Insert(object);
50 CHECK(builder.At(i)->SameValue(*object)); 50 CHECK(builder.At(i)->SameValue(*object));
51 } 51 }
52 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate()); 52 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate());
53 CHECK_EQ(constant_array->length(), kNumberOfElements); 53 CHECK_EQ(constant_array->length(), kNumberOfElements);
54 for (size_t i = 0; i < kNumberOfElements; i++) { 54 for (int i = 0; i < kNumberOfElements; i++) {
55 CHECK(constant_array->get(static_cast<int>(i))->SameValue(*builder.At(i))); 55 CHECK(constant_array->get(i)->SameValue(*builder.At(i)));
56 } 56 }
57 } 57 }
58 58
59 TEST_F(ConstantArrayBuilderTest, ToLargeFixedArray) { 59 TEST_F(ConstantArrayBuilderTest, ToLargeFixedArray) {
60 CanonicalHandleScope canonical(isolate()); 60 CanonicalHandleScope canonical(isolate());
61 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 61 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
62 static const size_t kNumberOfElements = 37373; 62 static const int kNumberOfElements = 37373;
63 for (size_t i = 0; i < kNumberOfElements; i++) { 63 for (int i = 0; i < kNumberOfElements; i++) {
64 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i); 64 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
65 builder.Insert(object); 65 builder.Insert(object);
66 CHECK(builder.At(i)->SameValue(*object)); 66 CHECK(builder.At(i)->SameValue(*object));
67 } 67 }
68 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate()); 68 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate());
69 CHECK_EQ(constant_array->length(), kNumberOfElements); 69 CHECK_EQ(constant_array->length(), kNumberOfElements);
Michael Starzinger 2016/11/11 11:45:43 nit: As discussed offline: If the bogus conversion
ulan 2016/11/11 11:47:25 Done.
rmcilroy 2016/11/11 11:48:52 Any reason to do this? It seems like Ulan's approa
Michael Starzinger 2016/11/11 11:54:32 My reasoning was that safe indexed vector accessor
70 for (size_t i = 0; i < kNumberOfElements; i++) { 70 for (int i = 0; i < kNumberOfElements; i++) {
71 CHECK(constant_array->get(static_cast<int>(i))->SameValue(*builder.At(i))); 71 CHECK(constant_array->get(i)->SameValue(*builder.At(i)));
72 } 72 }
73 } 73 }
74 74
75 TEST_F(ConstantArrayBuilderTest, ToLargeFixedArrayWithReservations) { 75 TEST_F(ConstantArrayBuilderTest, ToLargeFixedArrayWithReservations) {
76 CanonicalHandleScope canonical(isolate()); 76 CanonicalHandleScope canonical(isolate());
77 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 77 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
78 static const size_t kNumberOfElements = 37373; 78 static const int kNumberOfElements = 37373;
79 for (size_t i = 0; i < kNumberOfElements; i++) { 79 for (int i = 0; i < kNumberOfElements; i++) {
80 builder.CommitReservedEntry(builder.CreateReservedEntry(), 80 builder.CommitReservedEntry(builder.CreateReservedEntry(), Smi::FromInt(i));
81 Smi::FromInt(static_cast<int>(i)));
82 } 81 }
83 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate()); 82 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate());
84 CHECK_EQ(constant_array->length(), kNumberOfElements); 83 CHECK_EQ(constant_array->length(), kNumberOfElements);
85 for (size_t i = 0; i < kNumberOfElements; i++) { 84 for (int i = 0; i < kNumberOfElements; i++) {
86 CHECK(constant_array->get(static_cast<int>(i))->SameValue(*builder.At(i))); 85 CHECK(constant_array->get(i)->SameValue(*builder.At(i)));
87 } 86 }
88 } 87 }
89 88
90 TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithIdx8Reservations) { 89 TEST_F(ConstantArrayBuilderTest, AllocateEntriesWithIdx8Reservations) {
91 CanonicalHandleScope canonical(isolate()); 90 CanonicalHandleScope canonical(isolate());
92 for (size_t reserved = 1; reserved < k8BitCapacity; reserved *= 3) { 91 for (size_t reserved = 1; reserved < k8BitCapacity; reserved *= 3) {
93 ConstantArrayBuilder builder(zone(), 92 ConstantArrayBuilder builder(zone(),
94 isolate()->factory()->the_hole_value()); 93 isolate()->factory()->the_hole_value());
95 for (size_t i = 0; i < reserved; i++) { 94 for (size_t i = 0; i < reserved; i++) {
96 OperandSize operand_size = builder.CreateReservedEntry(); 95 OperandSize operand_size = builder.CreateReservedEntry();
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 } 196 }
198 } 197 }
199 } 198 }
200 199
201 TEST_F(ConstantArrayBuilderTest, GapFilledWhenLowReservationCommitted) { 200 TEST_F(ConstantArrayBuilderTest, GapFilledWhenLowReservationCommitted) {
202 CanonicalHandleScope canonical(isolate()); 201 CanonicalHandleScope canonical(isolate());
203 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 202 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
204 for (size_t i = 0; i < k8BitCapacity; i++) { 203 for (size_t i = 0; i < k8BitCapacity; i++) {
205 OperandSize operand_size = builder.CreateReservedEntry(); 204 OperandSize operand_size = builder.CreateReservedEntry();
206 CHECK(OperandSize::kByte == operand_size); 205 CHECK(OperandSize::kByte == operand_size);
207 CHECK_EQ(builder.size(), 0); 206 CHECK_EQ(builder.size(), 0u);
208 } 207 }
209 for (size_t i = 0; i < k8BitCapacity; i++) { 208 for (size_t i = 0; i < k8BitCapacity; i++) {
210 builder.CommitReservedEntry(builder.CreateReservedEntry(), 209 builder.CommitReservedEntry(builder.CreateReservedEntry(),
211 Smi::FromInt(static_cast<int>(i))); 210 Smi::FromInt(static_cast<int>(i)));
212 CHECK_EQ(builder.size(), i + k8BitCapacity + 1); 211 CHECK_EQ(builder.size(), i + k8BitCapacity + 1);
213 } 212 }
214 for (size_t i = 0; i < k8BitCapacity; i++) { 213 for (size_t i = 0; i < k8BitCapacity; i++) {
215 builder.CommitReservedEntry(OperandSize::kByte, 214 builder.CommitReservedEntry(OperandSize::kByte,
216 Smi::FromInt(static_cast<int>(i))); 215 Smi::FromInt(static_cast<int>(i)));
217 CHECK_EQ(builder.size(), 2 * k8BitCapacity); 216 CHECK_EQ(builder.size(), 2 * k8BitCapacity);
218 } 217 }
219 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate()); 218 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate());
220 CHECK_EQ(constant_array->length(), 2 * k8BitCapacity); 219 CHECK_EQ(constant_array->length(), static_cast<int>(2 * k8BitCapacity));
221 for (size_t i = 0; i < k8BitCapacity; i++) { 220 for (size_t i = 0; i < k8BitCapacity; i++) {
222 Object* original = constant_array->get(static_cast<int>(k8BitCapacity + i)); 221 Object* original = constant_array->get(static_cast<int>(k8BitCapacity + i));
223 Object* duplicate = constant_array->get(static_cast<int>(i)); 222 Object* duplicate = constant_array->get(static_cast<int>(i));
224 CHECK(original->SameValue(duplicate)); 223 CHECK(original->SameValue(duplicate));
225 Handle<Object> reference = isolate()->factory()->NewNumberFromSize(i); 224 Handle<Object> reference = isolate()->factory()->NewNumberFromSize(i);
226 CHECK(original->SameValue(*reference)); 225 CHECK(original->SameValue(*reference));
227 } 226 }
228 } 227 }
229 228
230 TEST_F(ConstantArrayBuilderTest, GapNotFilledWhenLowReservationDiscarded) { 229 TEST_F(ConstantArrayBuilderTest, GapNotFilledWhenLowReservationDiscarded) {
231 CanonicalHandleScope canonical(isolate()); 230 CanonicalHandleScope canonical(isolate());
232 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 231 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
233 for (size_t i = 0; i < k8BitCapacity; i++) { 232 for (size_t i = 0; i < k8BitCapacity; i++) {
234 OperandSize operand_size = builder.CreateReservedEntry(); 233 OperandSize operand_size = builder.CreateReservedEntry();
235 CHECK(OperandSize::kByte == operand_size); 234 CHECK(OperandSize::kByte == operand_size);
236 CHECK_EQ(builder.size(), 0); 235 CHECK_EQ(builder.size(), 0u);
237 } 236 }
238 for (size_t i = 0; i < k8BitCapacity; i++) { 237 for (size_t i = 0; i < k8BitCapacity; i++) {
239 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i); 238 Handle<Object> object = isolate()->factory()->NewNumberFromSize(i);
240 builder.Insert(object); 239 builder.Insert(object);
241 CHECK_EQ(builder.size(), i + k8BitCapacity + 1); 240 CHECK_EQ(builder.size(), i + k8BitCapacity + 1);
242 } 241 }
243 for (size_t i = 0; i < k8BitCapacity; i++) { 242 for (size_t i = 0; i < k8BitCapacity; i++) {
244 builder.DiscardReservedEntry(OperandSize::kByte); 243 builder.DiscardReservedEntry(OperandSize::kByte);
245 builder.Insert(builder.At(i + k8BitCapacity)); 244 builder.Insert(builder.At(i + k8BitCapacity));
246 CHECK_EQ(builder.size(), 2 * k8BitCapacity); 245 CHECK_EQ(builder.size(), 2 * k8BitCapacity);
(...skipping 11 matching lines...) Expand all
258 CanonicalHandleScope canonical(isolate()); 257 CanonicalHandleScope canonical(isolate());
259 static int kNumberOfHoles = 128; 258 static int kNumberOfHoles = 128;
260 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 259 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
261 for (int i = 0; i < kNumberOfHoles; ++i) { 260 for (int i = 0; i < kNumberOfHoles; ++i) {
262 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kByte); 261 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kByte);
263 } 262 }
264 for (int i = 0; i < 128; ++i) { 263 for (int i = 0; i < 128; ++i) {
265 CHECK_EQ(builder.Insert(isolate()->factory()->NewNumber(i)), 264 CHECK_EQ(builder.Insert(isolate()->factory()->NewNumber(i)),
266 static_cast<size_t>(i)); 265 static_cast<size_t>(i));
267 } 266 }
268 CHECK_EQ(builder.Insert(isolate()->factory()->NewNumber(256)), 256); 267 CHECK_EQ(builder.Insert(isolate()->factory()->NewNumber(256)), 256u);
269 268
270 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate()); 269 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate());
271 CHECK_EQ(constant_array->length(), 257); 270 CHECK_EQ(constant_array->length(), 257);
272 for (int i = 128; i < 256; i++) { 271 for (int i = 128; i < 256; i++) {
273 CHECK(constant_array->get(i)->SameValue( 272 CHECK(constant_array->get(i)->SameValue(
274 *isolate()->factory()->the_hole_value())); 273 *isolate()->factory()->the_hole_value()));
275 } 274 }
276 CHECK(!constant_array->get(127)->SameValue( 275 CHECK(!constant_array->get(127)->SameValue(
277 *isolate()->factory()->the_hole_value())); 276 *isolate()->factory()->the_hole_value()));
278 CHECK(!constant_array->get(256)->SameValue( 277 CHECK(!constant_array->get(256)->SameValue(
279 *isolate()->factory()->the_hole_value())); 278 *isolate()->factory()->the_hole_value()));
280 } 279 }
281 280
282 TEST_F(ConstantArrayBuilderTest, ReservationsAtAllScales) { 281 TEST_F(ConstantArrayBuilderTest, ReservationsAtAllScales) {
283 CanonicalHandleScope canonical(isolate()); 282 CanonicalHandleScope canonical(isolate());
284 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value()); 283 ConstantArrayBuilder builder(zone(), isolate()->factory()->the_hole_value());
285 for (int i = 0; i < 256; i++) { 284 for (int i = 0; i < 256; i++) {
286 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kByte); 285 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kByte);
287 } 286 }
288 for (int i = 256; i < 65536; ++i) { 287 for (int i = 256; i < 65536; ++i) {
289 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kShort); 288 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kShort);
290 } 289 }
291 for (int i = 65536; i < 131072; ++i) { 290 for (int i = 65536; i < 131072; ++i) {
292 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kQuad); 291 CHECK_EQ(builder.CreateReservedEntry(), OperandSize::kQuad);
293 } 292 }
294 CHECK_EQ(builder.CommitReservedEntry(OperandSize::kByte, Smi::FromInt(1)), 0); 293 CHECK_EQ(builder.CommitReservedEntry(OperandSize::kByte, Smi::FromInt(1)),
294 0u);
295 CHECK_EQ(builder.CommitReservedEntry(OperandSize::kShort, Smi::FromInt(2)), 295 CHECK_EQ(builder.CommitReservedEntry(OperandSize::kShort, Smi::FromInt(2)),
296 256); 296 256u);
297 CHECK_EQ(builder.CommitReservedEntry(OperandSize::kQuad, Smi::FromInt(3)), 297 CHECK_EQ(builder.CommitReservedEntry(OperandSize::kQuad, Smi::FromInt(3)),
298 65536); 298 65536u);
299 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate()); 299 Handle<FixedArray> constant_array = builder.ToFixedArray(isolate());
300 CHECK_EQ(constant_array->length(), 65537); 300 CHECK_EQ(constant_array->length(), 65537);
301 int count = 1; 301 int count = 1;
302 for (int i = 0; i < constant_array->length(); ++i) { 302 for (int i = 0; i < constant_array->length(); ++i) {
303 Handle<Object> expected; 303 Handle<Object> expected;
304 if (i == 0 || i == 256 || i == 65536) { 304 if (i == 0 || i == 256 || i == 65536) {
305 expected = isolate()->factory()->NewNumber(count++); 305 expected = isolate()->factory()->NewNumber(count++);
306 } else { 306 } else {
307 expected = isolate()->factory()->the_hole_value(); 307 expected = isolate()->factory()->the_hole_value();
308 } 308 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 341
342 // Check values after reserved entries are inserted. 342 // Check values after reserved entries are inserted.
343 for (size_t i = 0; i < k16BitCapacity; i++) { 343 for (size_t i = 0; i < k16BitCapacity; i++) {
344 CHECK_EQ(Handle<Smi>::cast(builder.At(i))->value(), static_cast<int>(i)); 344 CHECK_EQ(Handle<Smi>::cast(builder.At(i))->value(), static_cast<int>(i));
345 } 345 }
346 } 346 }
347 347
348 } // namespace interpreter 348 } // namespace interpreter
349 } // namespace internal 349 } // namespace internal
350 } // namespace v8 350 } // namespace v8
OLDNEW
« no previous file with comments | « test/unittests/interpreter/bytecode-register-optimizer-unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698