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

Side by Side Diff: test/cctest/test-heap.cc

Issue 296413004: Remove high promotion mode. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/x87/macro-assembler-x87.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 2182 matching lines...) Expand 10 before | Expand all | Expand 10 after
2193 2193
2194 2194
2195 TEST(OptimizedPretenuringAllocationFolding) { 2195 TEST(OptimizedPretenuringAllocationFolding) {
2196 i::FLAG_allow_natives_syntax = true; 2196 i::FLAG_allow_natives_syntax = true;
2197 i::FLAG_max_semi_space_size = 1; 2197 i::FLAG_max_semi_space_size = 1;
2198 i::FLAG_allocation_site_pretenuring = false; 2198 i::FLAG_allocation_site_pretenuring = false;
2199 CcTest::InitializeVM(); 2199 CcTest::InitializeVM();
2200 if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return; 2200 if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
2201 if (i::FLAG_gc_global || i::FLAG_stress_compaction) return; 2201 if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
2202 v8::HandleScope scope(CcTest::isolate()); 2202 v8::HandleScope scope(CcTest::isolate());
2203 CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
2204 2203
2205 v8::Local<v8::Value> res = CompileRun( 2204 v8::Local<v8::Value> res = CompileRun(
2206 "function DataObject() {" 2205 "function DataObject() {"
2207 " this.a = 1.1;" 2206 " this.a = 1.1;"
2208 " this.b = [{}];" 2207 " this.b = [{}];"
2209 " this.c = 1.2;" 2208 " this.c = 1.2;"
2210 " this.d = [{}];" 2209 " this.d = [{}];"
2211 " this.e = 1.3;" 2210 " this.e = 1.3;"
2212 " this.f = [{}];" 2211 " this.f = [{}];"
2213 "}" 2212 "}"
(...skipping 22 matching lines...) Expand all
2236 2235
2237 2236
2238 TEST(OptimizedPretenuringAllocationFoldingBlocks) { 2237 TEST(OptimizedPretenuringAllocationFoldingBlocks) {
2239 i::FLAG_allow_natives_syntax = true; 2238 i::FLAG_allow_natives_syntax = true;
2240 i::FLAG_max_semi_space_size = 1; 2239 i::FLAG_max_semi_space_size = 1;
2241 i::FLAG_allocation_site_pretenuring = false; 2240 i::FLAG_allocation_site_pretenuring = false;
2242 CcTest::InitializeVM(); 2241 CcTest::InitializeVM();
2243 if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return; 2242 if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
2244 if (i::FLAG_gc_global || i::FLAG_stress_compaction) return; 2243 if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
2245 v8::HandleScope scope(CcTest::isolate()); 2244 v8::HandleScope scope(CcTest::isolate());
2246 CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
2247 2245
2248 v8::Local<v8::Value> res = CompileRun( 2246 v8::Local<v8::Value> res = CompileRun(
2249 "var number_elements = 30000;" 2247 "var number_elements = 30000;"
2250 "var elements = new Array(number_elements);" 2248 "var elements = new Array(number_elements);"
2251 "function DataObject() {" 2249 "function DataObject() {"
2252 " this.a = [{}];" 2250 " this.a = [{}];"
2253 " this.b = [{}];" 2251 " this.b = [{}];"
2254 " this.c = 1.1;" 2252 " this.c = 1.1;"
2255 " this.d = 1.2;" 2253 " this.d = 1.2;"
2256 " this.e = [{}];" 2254 " this.e = [{}];"
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
2583 2581
2584 // Test global pretenuring call new. 2582 // Test global pretenuring call new.
2585 TEST(OptimizedPretenuringCallNew) { 2583 TEST(OptimizedPretenuringCallNew) {
2586 i::FLAG_allow_natives_syntax = true; 2584 i::FLAG_allow_natives_syntax = true;
2587 i::FLAG_allocation_site_pretenuring = false; 2585 i::FLAG_allocation_site_pretenuring = false;
2588 i::FLAG_pretenuring_call_new = true; 2586 i::FLAG_pretenuring_call_new = true;
2589 CcTest::InitializeVM(); 2587 CcTest::InitializeVM();
2590 if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return; 2588 if (!CcTest::i_isolate()->use_crankshaft() || i::FLAG_always_opt) return;
2591 if (i::FLAG_gc_global || i::FLAG_stress_compaction) return; 2589 if (i::FLAG_gc_global || i::FLAG_stress_compaction) return;
2592 v8::HandleScope scope(CcTest::isolate()); 2590 v8::HandleScope scope(CcTest::isolate());
2593 CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
2594 2591
2595 AlwaysAllocateScope always_allocate(CcTest::i_isolate()); 2592 AlwaysAllocateScope always_allocate(CcTest::i_isolate());
2596 v8::Local<v8::Value> res = CompileRun( 2593 v8::Local<v8::Value> res = CompileRun(
2597 "function g() { this.a = 0; }" 2594 "function g() { this.a = 0; }"
2598 "function f() {" 2595 "function f() {"
2599 " return new g();" 2596 " return new g();"
2600 "};" 2597 "};"
2601 "f(); f(); f();" 2598 "f(); f(); f();"
2602 "%OptimizeFunctionOnNextCall(f);" 2599 "%OptimizeFunctionOnNextCall(f);"
2603 "f();"); 2600 "f();");
(...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after
3716 " %DeoptimizeFunction(test);" 3713 " %DeoptimizeFunction(test);"
3717 "}"); 3714 "}");
3718 3715
3719 // Warm-up with inline allocation enabled. 3716 // Warm-up with inline allocation enabled.
3720 CompileRun("test(); test(); run();"); 3717 CompileRun("test(); test(); run();");
3721 3718
3722 // Run test with inline allocation disabled. 3719 // Run test with inline allocation disabled.
3723 CcTest::heap()->DisableInlineAllocation(); 3720 CcTest::heap()->DisableInlineAllocation();
3724 CompileRun("run()"); 3721 CompileRun("run()");
3725 3722
3726 // Run test with inline allocation disabled and pretenuring.
3727 CcTest::heap()->SetNewSpaceHighPromotionModeActive(true);
3728 CompileRun("run()");
3729
3730 // Run test with inline allocation re-enabled. 3723 // Run test with inline allocation re-enabled.
3731 CcTest::heap()->EnableInlineAllocation(); 3724 CcTest::heap()->EnableInlineAllocation();
3732 CompileRun("run()"); 3725 CompileRun("run()");
3733 } 3726 }
3734 3727
3735 3728
3736 static int AllocationSitesCount(Heap* heap) { 3729 static int AllocationSitesCount(Heap* heap) {
3737 int count = 0; 3730 int count = 0;
3738 for (Object* site = heap->allocation_sites_list(); 3731 for (Object* site = heap->allocation_sites_list();
3739 !(site->IsUndefined()); 3732 !(site->IsUndefined());
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
4242 "array;"); 4235 "array;");
4243 4236
4244 Handle<JSObject> o = 4237 Handle<JSObject> o =
4245 v8::Utils::OpenHandle(*v8::Handle<v8::Object>::Cast(result)); 4238 v8::Utils::OpenHandle(*v8::Handle<v8::Object>::Cast(result));
4246 CHECK(heap->InOldPointerSpace(o->elements())); 4239 CHECK(heap->InOldPointerSpace(o->elements()));
4247 CHECK(heap->InOldPointerSpace(*o)); 4240 CHECK(heap->InOldPointerSpace(*o));
4248 Page* page = Page::FromAddress(o->elements()->address()); 4241 Page* page = Page::FromAddress(o->elements()->address());
4249 CHECK(page->WasSwept() || 4242 CHECK(page->WasSwept() ||
4250 Marking::IsBlack(Marking::MarkBitFrom(o->elements()))); 4243 Marking::IsBlack(Marking::MarkBitFrom(o->elements())));
4251 } 4244 }
OLDNEW
« no previous file with comments | « src/x87/macro-assembler-x87.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698