| OLD | NEW |
| 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 #include "test/cctest/cctest.h" | 6 #include "test/cctest/cctest.h" |
| 7 | 7 |
| 8 #include "src/base/utils/random-number-generator.h" | 8 #include "src/base/utils/random-number-generator.h" |
| 9 #include "src/compiler/structured-machine-assembler.h" | 9 #include "src/compiler/structured-machine-assembler.h" |
| 10 #include "test/cctest/compiler/codegen-tester.h" | 10 #include "test/cctest/compiler/codegen-tester.h" |
| (...skipping 261 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 272 for (size_t j = 0; i != inputs.end(); j++, ++i) { | 272 for (size_t j = 0; i != inputs.end(); j++, ++i) { |
| 273 int32_t result = m.Call(*i); | 273 int32_t result = m.Call(*i); |
| 274 CHECK_EQ(j < max ? hit : miss, result); | 274 CHECK_EQ(j < max ? hit : miss, result); |
| 275 } | 275 } |
| 276 } | 276 } |
| 277 | 277 |
| 278 | 278 |
| 279 TEST(RunIfBuilderDisjunction) { | 279 TEST(RunIfBuilderDisjunction) { |
| 280 size_t len = ValueHelper::int32_vector().size() - 1; | 280 size_t len = ValueHelper::int32_vector().size() - 1; |
| 281 size_t max = len > 10 ? 10 : len - 1; | 281 size_t max = len > 10 ? 10 : len - 1; |
| 282 for (size_t i = 0; i < ARRAY_SIZE(all_branch_types); i++) { | 282 for (size_t i = 0; i < arraysize(all_branch_types); i++) { |
| 283 for (size_t j = 0; j < ARRAY_SIZE(all_branch_types); j++) { | 283 for (size_t j = 0; j < arraysize(all_branch_types); j++) { |
| 284 for (size_t size = 1; size < max; size++) { | 284 for (size_t size = 1; size < max; size++) { |
| 285 RunIfBuilderDisjunction(size, all_branch_types[i], all_branch_types[j]); | 285 RunIfBuilderDisjunction(size, all_branch_types[i], all_branch_types[j]); |
| 286 } | 286 } |
| 287 RunIfBuilderDisjunction(len, all_branch_types[i], all_branch_types[j]); | 287 RunIfBuilderDisjunction(len, all_branch_types[i], all_branch_types[j]); |
| 288 } | 288 } |
| 289 } | 289 } |
| 290 } | 290 } |
| 291 | 291 |
| 292 | 292 |
| 293 static void RunIfBuilderConjunction(size_t max, IfBuilderBranchType then_type, | 293 static void RunIfBuilderConjunction(size_t max, IfBuilderBranchType then_type, |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 for (size_t j = 0; i != inputs.end(); j++, ++i) { | 338 for (size_t j = 0; i != inputs.end(); j++, ++i) { |
| 339 int32_t result = m.Call(*i); | 339 int32_t result = m.Call(*i); |
| 340 CHECK_EQ(j >= max ? hit : miss, result); | 340 CHECK_EQ(j >= max ? hit : miss, result); |
| 341 } | 341 } |
| 342 } | 342 } |
| 343 | 343 |
| 344 | 344 |
| 345 TEST(RunIfBuilderConjunction) { | 345 TEST(RunIfBuilderConjunction) { |
| 346 size_t len = ValueHelper::int32_vector().size() - 1; | 346 size_t len = ValueHelper::int32_vector().size() - 1; |
| 347 size_t max = len > 10 ? 10 : len - 1; | 347 size_t max = len > 10 ? 10 : len - 1; |
| 348 for (size_t i = 0; i < ARRAY_SIZE(all_branch_types); i++) { | 348 for (size_t i = 0; i < arraysize(all_branch_types); i++) { |
| 349 for (size_t j = 0; j < ARRAY_SIZE(all_branch_types); j++) { | 349 for (size_t j = 0; j < arraysize(all_branch_types); j++) { |
| 350 for (size_t size = 1; size < max; size++) { | 350 for (size_t size = 1; size < max; size++) { |
| 351 RunIfBuilderConjunction(size, all_branch_types[i], all_branch_types[j]); | 351 RunIfBuilderConjunction(size, all_branch_types[i], all_branch_types[j]); |
| 352 } | 352 } |
| 353 RunIfBuilderConjunction(len, all_branch_types[i], all_branch_types[j]); | 353 RunIfBuilderConjunction(len, all_branch_types[i], all_branch_types[j]); |
| 354 } | 354 } |
| 355 } | 355 } |
| 356 } | 356 } |
| 357 | 357 |
| 358 | 358 |
| 359 static void RunDisjunctionVariables(int disjunctions, bool explicit_then, | 359 static void RunDisjunctionVariables(int disjunctions, bool explicit_then, |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 676 // prv_1 = res | 676 // prv_1 = res |
| 677 res.Set(m.Int32Add(prv_0.Get(), prv_1.Get())); | 677 res.Set(m.Int32Add(prv_0.Get(), prv_1.Get())); |
| 678 prv_0.Set(prv_1.Get()); | 678 prv_0.Set(prv_1.Get()); |
| 679 prv_1.Set(res.Get()); | 679 prv_1.Set(res.Get()); |
| 680 // cnt-- | 680 // cnt-- |
| 681 cnt.Set(m.Int32Sub(cnt.Get(), one)); | 681 cnt.Set(m.Int32Sub(cnt.Get(), one)); |
| 682 } | 682 } |
| 683 m.Return(res.Get()); | 683 m.Return(res.Get()); |
| 684 | 684 |
| 685 int32_t values[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144}; | 685 int32_t values[] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144}; |
| 686 for (size_t i = 0; i < ARRAY_SIZE(values); i++) { | 686 for (size_t i = 0; i < arraysize(values); i++) { |
| 687 CHECK_EQ(values[i], m.Call(static_cast<int32_t>(i))); | 687 CHECK_EQ(values[i], m.Call(static_cast<int32_t>(i))); |
| 688 } | 688 } |
| 689 } | 689 } |
| 690 | 690 |
| 691 | 691 |
| 692 static int VariableIntroduction() { | 692 static int VariableIntroduction() { |
| 693 while (true) { | 693 while (true) { |
| 694 int ret = 0; | 694 int ret = 0; |
| 695 for (int i = 0; i < 10; i++) { | 695 for (int i = 0; i < 10; i++) { |
| 696 for (int j = i; j < 10; j++) { | 696 for (int j = i; j < 10; j++) { |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 887 stack_frame_size_(Int32Constant(kFrameVariables * 4)), | 887 stack_frame_size_(Int32Constant(kFrameVariables * 4)), |
| 888 left_offset_(Int32Constant(0 * 4)), | 888 left_offset_(Int32Constant(0 * 4)), |
| 889 right_offset_(Int32Constant(1 * 4)) { | 889 right_offset_(Int32Constant(1 * 4)) { |
| 890 Build(); | 890 Build(); |
| 891 } | 891 } |
| 892 | 892 |
| 893 int32_t DoCall(int32_t* input, int32_t input_length) { | 893 int32_t DoCall(int32_t* input, int32_t input_length) { |
| 894 int32_t stack_space[20]; | 894 int32_t stack_space[20]; |
| 895 // Do call. | 895 // Do call. |
| 896 int32_t return_val = Call(input, input_length, stack_space, | 896 int32_t return_val = Call(input, input_length, stack_space, |
| 897 static_cast<int32_t>(ARRAY_SIZE(stack_space))); | 897 static_cast<int32_t>(arraysize(stack_space))); |
| 898 // Ran out of stack space. | 898 // Ran out of stack space. |
| 899 if (return_val != 0) return return_val; | 899 if (return_val != 0) return return_val; |
| 900 // Check sorted. | 900 // Check sorted. |
| 901 int32_t last = input[0]; | 901 int32_t last = input[0]; |
| 902 for (int32_t i = 0; i < input_length; i++) { | 902 for (int32_t i = 0; i < input_length; i++) { |
| 903 CHECK(last <= input[i]); | 903 CHECK(last <= input[i]); |
| 904 last = input[i]; | 904 last = input[i]; |
| 905 } | 905 } |
| 906 return return_val; | 906 return return_val; |
| 907 } | 907 } |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1011 // Frame constants. | 1011 // Frame constants. |
| 1012 Node* const stack_frame_size_; | 1012 Node* const stack_frame_size_; |
| 1013 Node* const left_offset_; | 1013 Node* const left_offset_; |
| 1014 Node* const right_offset_; | 1014 Node* const right_offset_; |
| 1015 }; | 1015 }; |
| 1016 | 1016 |
| 1017 | 1017 |
| 1018 TEST(RunSimpleQuicksort) { | 1018 TEST(RunSimpleQuicksort) { |
| 1019 QuicksortHelper m; | 1019 QuicksortHelper m; |
| 1020 int32_t inputs[] = {9, 7, 1, 8, 11}; | 1020 int32_t inputs[] = {9, 7, 1, 8, 11}; |
| 1021 CHECK_EQ(0, m.DoCall(inputs, ARRAY_SIZE(inputs))); | 1021 CHECK_EQ(0, m.DoCall(inputs, arraysize(inputs))); |
| 1022 } | 1022 } |
| 1023 | 1023 |
| 1024 | 1024 |
| 1025 TEST(RunRandomQuicksort) { | 1025 TEST(RunRandomQuicksort) { |
| 1026 QuicksortHelper m; | 1026 QuicksortHelper m; |
| 1027 | 1027 |
| 1028 v8::base::RandomNumberGenerator rng; | 1028 v8::base::RandomNumberGenerator rng; |
| 1029 static const int kMaxLength = 40; | 1029 static const int kMaxLength = 40; |
| 1030 int32_t inputs[kMaxLength]; | 1030 int32_t inputs[kMaxLength]; |
| 1031 | 1031 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1046 for (int i = 0; i < 10; i++) { | 1046 for (int i = 0; i < 10; i++) { |
| 1047 IfBuilder b(&m); | 1047 IfBuilder b(&m); |
| 1048 b.If(m.Int32Constant(0)).Then(); | 1048 b.If(m.Int32Constant(0)).Then(); |
| 1049 m.NewVariable(m.Int32Constant(0)); | 1049 m.NewVariable(m.Int32Constant(0)); |
| 1050 } | 1050 } |
| 1051 m.Return(m.Int32Constant(0)); | 1051 m.Return(m.Int32Constant(0)); |
| 1052 CHECK_EQ(0, m.Call()); | 1052 CHECK_EQ(0, m.Call()); |
| 1053 } | 1053 } |
| 1054 | 1054 |
| 1055 #endif | 1055 #endif |
| OLD | NEW |