| Index: test/cctest/test-heap.cc
|
| diff --git a/test/cctest/test-heap.cc b/test/cctest/test-heap.cc
|
| index 8f664d5ad1ce5f2a5e0a1d1db90352fb84b42be0..7263f81ce19240cc37d19e82ce6d2143848fdaf7 100644
|
| --- a/test/cctest/test-heap.cc
|
| +++ b/test/cctest/test-heap.cc
|
| @@ -2190,7 +2190,6 @@ TEST(OptimizedAllocationAlwaysInNewSpace) {
|
|
|
| TEST(OptimizedPretenuringAllocationFolding) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| @@ -2206,8 +2205,13 @@ TEST(OptimizedPretenuringAllocationFolding) {
|
| " this.e = 1.3;"
|
| " this.f = [{}];"
|
| "}"
|
| + "var number_elements = 100000;"
|
| + "var elements = new Array();"
|
| "function f() {"
|
| - " return new DataObject();"
|
| + " for (var i = 0; i < 100000-1; i++) {"
|
| + " elements[i] = new DataObject();"
|
| + " }"
|
| + " return new DataObject()"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2227,7 +2231,6 @@ TEST(OptimizedPretenuringAllocationFolding) {
|
|
|
| TEST(OptimizedPretenuringAllocationFoldingBlocks) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| @@ -2235,6 +2238,9 @@ TEST(OptimizedPretenuringAllocationFoldingBlocks) {
|
| CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 3000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function DataObject() {"
|
| " this.a = [{}];"
|
| " this.b = [{}];"
|
| @@ -2244,7 +2250,11 @@ TEST(OptimizedPretenuringAllocationFoldingBlocks) {
|
| " this.f = 1.3;"
|
| "}"
|
| "function f() {"
|
| - " return new DataObject();"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = new DataObject();"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2264,17 +2274,21 @@ TEST(OptimizedPretenuringAllocationFoldingBlocks) {
|
|
|
| TEST(OptimizedPretenuringObjectArrayLiterals) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = [{}, {}, {}];"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = [{}, {}, {}];"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2290,17 +2304,21 @@ TEST(OptimizedPretenuringObjectArrayLiterals) {
|
|
|
| TEST(OptimizedPretenuringMixedInObjectProperties) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = {a: {c: 2.2, d: {}}, b: 1.1};"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = {a: {c: 2.2, d: {}}, b: 1.1};"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2322,17 +2340,21 @@ TEST(OptimizedPretenuringMixedInObjectProperties) {
|
|
|
| TEST(OptimizedPretenuringDoubleArrayProperties) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = {a: 1.1, b: 2.2};"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = {a: 1.1, b: 2.2};"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2348,17 +2370,21 @@ TEST(OptimizedPretenuringDoubleArrayProperties) {
|
|
|
| TEST(OptimizedPretenuringdoubleArrayLiterals) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = [1.1, 2.2, 3.3];"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = [1.1, 2.2, 3.3];"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2374,17 +2400,21 @@ TEST(OptimizedPretenuringdoubleArrayLiterals) {
|
|
|
| TEST(OptimizedPretenuringNestedMixedArrayLiterals) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = [[{}, {}, {}],[1.1, 2.2, 3.3]];"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = [[{}, {}, {}], [1.1, 2.2, 3.3]];"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2409,17 +2439,21 @@ TEST(OptimizedPretenuringNestedMixedArrayLiterals) {
|
|
|
| TEST(OptimizedPretenuringNestedObjectLiterals) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = [[{}, {}, {}],[{}, {}, {}]];"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = [[{}, {}, {}],[{}, {}, {}]];"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
| @@ -2444,17 +2478,21 @@ TEST(OptimizedPretenuringNestedObjectLiterals) {
|
|
|
| TEST(OptimizedPretenuringNestedDoubleLiterals) {
|
| i::FLAG_allow_natives_syntax = true;
|
| - i::FLAG_allocation_site_pretenuring = false;
|
| CcTest::InitializeVM();
|
| if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
|
| if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
|
| v8::HandleScope scope(CcTest::isolate());
|
| - CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
|
|
|
| v8::Local<v8::Value> res = CompileRun(
|
| + "var number_elements = 100000;"
|
| + "var current_counter = 0;"
|
| + "var elements = new Array(number_elements * 4);"
|
| "function f() {"
|
| - " var numbers = [[1.1, 1.2, 1.3],[2.1, 2.2, 2.3]];"
|
| - " return numbers;"
|
| + " for (var i = 0; i < number_elements; i++) {"
|
| + " elements[current_counter] = [[1.1, 1.2, 1.3],[2.1, 2.2, 2.3]];"
|
| + " current_counter++;"
|
| + " }"
|
| + " return elements[current_counter - 1];"
|
| "};"
|
| "f(); f(); f();"
|
| "%OptimizeFunctionOnNextCall(f);"
|
|
|