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

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

Issue 1218003003: Remove deprecated --flush-code-incrementally flag. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@local_contrib-14703009
Patch Set: Created 5 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 unified diff | Download patch
« no previous file with comments | « src/heap/mark-compact.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 1176 matching lines...) Expand 10 before | Expand all | Expand 10 after
1187 CHECK(!function->is_compiled() || function->IsOptimized()); 1187 CHECK(!function->is_compiled() || function->IsOptimized());
1188 // Call foo to get it recompiled. 1188 // Call foo to get it recompiled.
1189 CompileRun("foo()"); 1189 CompileRun("foo()");
1190 CHECK(function->shared()->is_compiled()); 1190 CHECK(function->shared()->is_compiled());
1191 CHECK(function->is_compiled()); 1191 CHECK(function->is_compiled());
1192 } 1192 }
1193 1193
1194 1194
1195 TEST(TestCodeFlushingIncremental) { 1195 TEST(TestCodeFlushingIncremental) {
1196 // If we do not flush code this test is invalid. 1196 // If we do not flush code this test is invalid.
1197 if (!FLAG_flush_code || !FLAG_flush_code_incrementally) return; 1197 if (!FLAG_flush_code) return;
1198 i::FLAG_allow_natives_syntax = true; 1198 i::FLAG_allow_natives_syntax = true;
1199 i::FLAG_optimize_for_size = false; 1199 i::FLAG_optimize_for_size = false;
1200 CcTest::InitializeVM(); 1200 CcTest::InitializeVM();
1201 Isolate* isolate = CcTest::i_isolate(); 1201 Isolate* isolate = CcTest::i_isolate();
1202 Factory* factory = isolate->factory(); 1202 Factory* factory = isolate->factory();
1203 v8::HandleScope scope(CcTest::isolate()); 1203 v8::HandleScope scope(CcTest::isolate());
1204 const char* source = "function foo() {" 1204 const char* source = "function foo() {"
1205 " var x = 42;" 1205 " var x = 42;"
1206 " var y = 42;" 1206 " var y = 42;"
1207 " var z = x + y;" 1207 " var z = x + y;"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1256 1256
1257 // Simulate one final GC to make sure the candidate queue is sane. 1257 // Simulate one final GC to make sure the candidate queue is sane.
1258 CcTest::heap()->CollectAllGarbage(); 1258 CcTest::heap()->CollectAllGarbage();
1259 CHECK(function->shared()->is_compiled() || !function->IsOptimized()); 1259 CHECK(function->shared()->is_compiled() || !function->IsOptimized());
1260 CHECK(function->is_compiled() || !function->IsOptimized()); 1260 CHECK(function->is_compiled() || !function->IsOptimized());
1261 } 1261 }
1262 1262
1263 1263
1264 TEST(TestCodeFlushingIncrementalScavenge) { 1264 TEST(TestCodeFlushingIncrementalScavenge) {
1265 // If we do not flush code this test is invalid. 1265 // If we do not flush code this test is invalid.
1266 if (!FLAG_flush_code || !FLAG_flush_code_incrementally) return; 1266 if (!FLAG_flush_code) return;
1267 i::FLAG_allow_natives_syntax = true; 1267 i::FLAG_allow_natives_syntax = true;
1268 i::FLAG_optimize_for_size = false; 1268 i::FLAG_optimize_for_size = false;
1269 CcTest::InitializeVM(); 1269 CcTest::InitializeVM();
1270 Isolate* isolate = CcTest::i_isolate(); 1270 Isolate* isolate = CcTest::i_isolate();
1271 Factory* factory = isolate->factory(); 1271 Factory* factory = isolate->factory();
1272 v8::HandleScope scope(CcTest::isolate()); 1272 v8::HandleScope scope(CcTest::isolate());
1273 const char* source = "var foo = function() {" 1273 const char* source = "var foo = function() {"
1274 " var x = 42;" 1274 " var x = 42;"
1275 " var y = 42;" 1275 " var y = 42;"
1276 " var z = x + y;" 1276 " var z = x + y;"
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
1325 1325
1326 // Simulate one final GC to make sure the candidate queue is sane. 1326 // Simulate one final GC to make sure the candidate queue is sane.
1327 CcTest::heap()->CollectAllGarbage(); 1327 CcTest::heap()->CollectAllGarbage();
1328 CHECK(!function->shared()->is_compiled() || function->IsOptimized()); 1328 CHECK(!function->shared()->is_compiled() || function->IsOptimized());
1329 CHECK(!function->is_compiled() || function->IsOptimized()); 1329 CHECK(!function->is_compiled() || function->IsOptimized());
1330 } 1330 }
1331 1331
1332 1332
1333 TEST(TestCodeFlushingIncrementalAbort) { 1333 TEST(TestCodeFlushingIncrementalAbort) {
1334 // If we do not flush code this test is invalid. 1334 // If we do not flush code this test is invalid.
1335 if (!FLAG_flush_code || !FLAG_flush_code_incrementally) return; 1335 if (!FLAG_flush_code) return;
1336 i::FLAG_allow_natives_syntax = true; 1336 i::FLAG_allow_natives_syntax = true;
1337 i::FLAG_optimize_for_size = false; 1337 i::FLAG_optimize_for_size = false;
1338 CcTest::InitializeVM(); 1338 CcTest::InitializeVM();
1339 Isolate* isolate = CcTest::i_isolate(); 1339 Isolate* isolate = CcTest::i_isolate();
1340 Factory* factory = isolate->factory(); 1340 Factory* factory = isolate->factory();
1341 Heap* heap = isolate->heap(); 1341 Heap* heap = isolate->heap();
1342 v8::HandleScope scope(CcTest::isolate()); 1342 v8::HandleScope scope(CcTest::isolate());
1343 const char* source = "function foo() {" 1343 const char* source = "function foo() {"
1344 " var x = 42;" 1344 " var x = 42;"
1345 " var y = 42;" 1345 " var y = 42;"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
1393 // Simulate one final GC to make sure the candidate queue is sane. 1393 // Simulate one final GC to make sure the candidate queue is sane.
1394 heap->CollectAllGarbage(); 1394 heap->CollectAllGarbage();
1395 CHECK(function->shared()->is_compiled() || !function->IsOptimized()); 1395 CHECK(function->shared()->is_compiled() || !function->IsOptimized());
1396 CHECK(function->is_compiled() || !function->IsOptimized()); 1396 CHECK(function->is_compiled() || !function->IsOptimized());
1397 } 1397 }
1398 1398
1399 1399
1400 TEST(CompilationCacheCachingBehavior) { 1400 TEST(CompilationCacheCachingBehavior) {
1401 // If we do not flush code, or have the compilation cache turned off, this 1401 // If we do not flush code, or have the compilation cache turned off, this
1402 // test is invalid. 1402 // test is invalid.
1403 if (!FLAG_flush_code || !FLAG_flush_code_incrementally || 1403 if (!FLAG_flush_code || !FLAG_compilation_cache) {
1404 !FLAG_compilation_cache) {
1405 return; 1404 return;
1406 } 1405 }
1407 CcTest::InitializeVM(); 1406 CcTest::InitializeVM();
1408 Isolate* isolate = CcTest::i_isolate(); 1407 Isolate* isolate = CcTest::i_isolate();
1409 Factory* factory = isolate->factory(); 1408 Factory* factory = isolate->factory();
1410 Heap* heap = isolate->heap(); 1409 Heap* heap = isolate->heap();
1411 CompilationCache* compilation_cache = isolate->compilation_cache(); 1410 CompilationCache* compilation_cache = isolate->compilation_cache();
1412 LanguageMode language_mode = 1411 LanguageMode language_mode =
1413 construct_language_mode(FLAG_use_strict, FLAG_use_strong); 1412 construct_language_mode(FLAG_use_strict, FLAG_use_strong);
1414 1413
(...skipping 2587 matching lines...) Expand 10 before | Expand all | Expand 10 after
4002 ReleaseStackTraceDataTest(isolate, source2, getter); 4001 ReleaseStackTraceDataTest(isolate, source2, getter);
4003 ReleaseStackTraceDataTest(isolate, source3, getter); 4002 ReleaseStackTraceDataTest(isolate, source3, getter);
4004 ReleaseStackTraceDataTest(isolate, source4, getter); 4003 ReleaseStackTraceDataTest(isolate, source4, getter);
4005 } 4004 }
4006 isolate->Dispose(); 4005 isolate->Dispose();
4007 } 4006 }
4008 4007
4009 4008
4010 TEST(Regress159140) { 4009 TEST(Regress159140) {
4011 i::FLAG_allow_natives_syntax = true; 4010 i::FLAG_allow_natives_syntax = true;
4012 i::FLAG_flush_code_incrementally = true;
4013 CcTest::InitializeVM(); 4011 CcTest::InitializeVM();
4014 Isolate* isolate = CcTest::i_isolate(); 4012 Isolate* isolate = CcTest::i_isolate();
4015 Heap* heap = isolate->heap(); 4013 Heap* heap = isolate->heap();
4016 HandleScope scope(isolate); 4014 HandleScope scope(isolate);
4017 4015
4018 // Perform one initial GC to enable code flushing. 4016 // Perform one initial GC to enable code flushing.
4019 heap->CollectAllGarbage(); 4017 heap->CollectAllGarbage();
4020 4018
4021 // Prepare several closures that are all eligible for code flushing 4019 // Prepare several closures that are all eligible for code flushing
4022 // because all reachable ones are not optimized. Make sure that the 4020 // because all reachable ones are not optimized. Make sure that the
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
4064 CompileRun("%OptimizeFunctionOnNextCall(g); g(3);"); 4062 CompileRun("%OptimizeFunctionOnNextCall(g); g(3);");
4065 heap->CollectAllGarbage(); 4063 heap->CollectAllGarbage();
4066 4064
4067 // Unoptimized code is missing and the deoptimizer will go ballistic. 4065 // Unoptimized code is missing and the deoptimizer will go ballistic.
4068 CompileRun("g('bozo');"); 4066 CompileRun("g('bozo');");
4069 } 4067 }
4070 4068
4071 4069
4072 TEST(Regress165495) { 4070 TEST(Regress165495) {
4073 i::FLAG_allow_natives_syntax = true; 4071 i::FLAG_allow_natives_syntax = true;
4074 i::FLAG_flush_code_incrementally = true;
4075 CcTest::InitializeVM(); 4072 CcTest::InitializeVM();
4076 Isolate* isolate = CcTest::i_isolate(); 4073 Isolate* isolate = CcTest::i_isolate();
4077 Heap* heap = isolate->heap(); 4074 Heap* heap = isolate->heap();
4078 HandleScope scope(isolate); 4075 HandleScope scope(isolate);
4079 4076
4080 // Perform one initial GC to enable code flushing. 4077 // Perform one initial GC to enable code flushing.
4081 heap->CollectAllGarbage(); 4078 heap->CollectAllGarbage();
4082 4079
4083 // Prepare an optimized closure that the optimized code map will get 4080 // Prepare an optimized closure that the optimized code map will get
4084 // populated. Then age the unoptimized code to trigger code flushing 4081 // populated. Then age the unoptimized code to trigger code flushing
(...skipping 27 matching lines...) Expand all
4112 4109
4113 // Make a new closure that will get code installed from the code map. 4110 // Make a new closure that will get code installed from the code map.
4114 // Unoptimized code is missing and the deoptimizer will go ballistic. 4111 // Unoptimized code is missing and the deoptimizer will go ballistic.
4115 CompileRun("var g = mkClosure(); g('bozo');"); 4112 CompileRun("var g = mkClosure(); g('bozo');");
4116 } 4113 }
4117 4114
4118 4115
4119 TEST(Regress169209) { 4116 TEST(Regress169209) {
4120 i::FLAG_stress_compaction = false; 4117 i::FLAG_stress_compaction = false;
4121 i::FLAG_allow_natives_syntax = true; 4118 i::FLAG_allow_natives_syntax = true;
4122 i::FLAG_flush_code_incrementally = true;
4123 4119
4124 CcTest::InitializeVM(); 4120 CcTest::InitializeVM();
4125 Isolate* isolate = CcTest::i_isolate(); 4121 Isolate* isolate = CcTest::i_isolate();
4126 Heap* heap = isolate->heap(); 4122 Heap* heap = isolate->heap();
4127 HandleScope scope(isolate); 4123 HandleScope scope(isolate);
4128 4124
4129 // Perform one initial GC to enable code flushing. 4125 // Perform one initial GC to enable code flushing.
4130 heap->CollectAllGarbage(); 4126 heap->CollectAllGarbage();
4131 4127
4132 // Prepare a shared function info eligible for code flushing for which 4128 // Prepare a shared function info eligible for code flushing for which
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
4261 AlwaysAllocateScope aa_scope(isolate); 4257 AlwaysAllocateScope aa_scope(isolate);
4262 v8::Script::Compile(mote_code_string)->Run(); 4258 v8::Script::Compile(mote_code_string)->Run();
4263 } 4259 }
4264 4260
4265 4261
4266 TEST(Regress168801) { 4262 TEST(Regress168801) {
4267 if (i::FLAG_never_compact) return; 4263 if (i::FLAG_never_compact) return;
4268 i::FLAG_always_compact = true; 4264 i::FLAG_always_compact = true;
4269 i::FLAG_cache_optimized_code = false; 4265 i::FLAG_cache_optimized_code = false;
4270 i::FLAG_allow_natives_syntax = true; 4266 i::FLAG_allow_natives_syntax = true;
4271 i::FLAG_flush_code_incrementally = true;
4272 CcTest::InitializeVM(); 4267 CcTest::InitializeVM();
4273 Isolate* isolate = CcTest::i_isolate(); 4268 Isolate* isolate = CcTest::i_isolate();
4274 Heap* heap = isolate->heap(); 4269 Heap* heap = isolate->heap();
4275 HandleScope scope(isolate); 4270 HandleScope scope(isolate);
4276 4271
4277 // Perform one initial GC to enable code flushing. 4272 // Perform one initial GC to enable code flushing.
4278 heap->CollectAllGarbage(); 4273 heap->CollectAllGarbage();
4279 4274
4280 // Ensure the code ends up on an evacuation candidate. 4275 // Ensure the code ends up on an evacuation candidate.
4281 SimulateFullSpace(heap->code_space()); 4276 SimulateFullSpace(heap->code_space());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
4318 heap->CollectAllGarbage(); 4313 heap->CollectAllGarbage();
4319 heap->CollectAllGarbage(); 4314 heap->CollectAllGarbage();
4320 } 4315 }
4321 4316
4322 4317
4323 TEST(Regress173458) { 4318 TEST(Regress173458) {
4324 if (i::FLAG_never_compact) return; 4319 if (i::FLAG_never_compact) return;
4325 i::FLAG_always_compact = true; 4320 i::FLAG_always_compact = true;
4326 i::FLAG_cache_optimized_code = false; 4321 i::FLAG_cache_optimized_code = false;
4327 i::FLAG_allow_natives_syntax = true; 4322 i::FLAG_allow_natives_syntax = true;
4328 i::FLAG_flush_code_incrementally = true;
4329 CcTest::InitializeVM(); 4323 CcTest::InitializeVM();
4330 Isolate* isolate = CcTest::i_isolate(); 4324 Isolate* isolate = CcTest::i_isolate();
4331 Heap* heap = isolate->heap(); 4325 Heap* heap = isolate->heap();
4332 HandleScope scope(isolate); 4326 HandleScope scope(isolate);
4333 4327
4334 // Perform one initial GC to enable code flushing. 4328 // Perform one initial GC to enable code flushing.
4335 heap->CollectAllGarbage(); 4329 heap->CollectAllGarbage();
4336 4330
4337 // Ensure the code ends up on an evacuation candidate. 4331 // Ensure the code ends up on an evacuation candidate.
4338 SimulateFullSpace(heap->code_space()); 4332 SimulateFullSpace(heap->code_space());
(...skipping 1711 matching lines...) Expand 10 before | Expand all | Expand 10 after
6050 HeapObject::RawField(*array, FixedArray::kHeaderSize)); 6044 HeapObject::RawField(*array, FixedArray::kHeaderSize));
6051 SlotsBuffer::RemoveObjectSlots(CcTest::i_isolate()->heap(), buffer, *array); 6045 SlotsBuffer::RemoveObjectSlots(CcTest::i_isolate()->heap(), buffer, *array);
6052 DCHECK(reinterpret_cast<void*>(buffer->Get(1)) == 6046 DCHECK(reinterpret_cast<void*>(buffer->Get(1)) ==
6053 HeapObject::RawField(heap->empty_fixed_array(), 6047 HeapObject::RawField(heap->empty_fixed_array(),
6054 FixedArrayBase::kLengthOffset)); 6048 FixedArrayBase::kLengthOffset));
6055 DCHECK(reinterpret_cast<void*>(buffer->Get(2)) == 6049 DCHECK(reinterpret_cast<void*>(buffer->Get(2)) ==
6056 HeapObject::RawField(heap->empty_fixed_array(), 6050 HeapObject::RawField(heap->empty_fixed_array(),
6057 FixedArrayBase::kLengthOffset)); 6051 FixedArrayBase::kLengthOffset));
6058 delete buffer; 6052 delete buffer;
6059 } 6053 }
OLDNEW
« no previous file with comments | « src/heap/mark-compact.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698