Revision f230a1cf deps/v8/test/cctest/test-deoptimization.cc
deps/v8/test/cctest/test-deoptimization.cc | ||
---|---|---|
104 | 104 |
// Abort any ongoing incremental marking to make sure that all weak global |
105 | 105 |
// handle callbacks are processed. |
106 | 106 |
static void NonIncrementalGC() { |
107 |
HEAP->CollectAllGarbage(i::Heap::kAbortIncrementalMarkingMask);
|
|
107 |
CcTest::heap()->CollectAllGarbage(i::Heap::kAbortIncrementalMarkingMask);
|
|
108 | 108 |
} |
109 | 109 |
|
110 | 110 |
|
... | ... | |
134 | 134 |
|
135 | 135 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
136 | 136 |
CHECK(!GetJSFunction(env->Global(), "f")->IsOptimized()); |
137 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
137 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
138 | 138 |
|
139 | 139 |
// Test lazy deoptimization of a simple function. Call the function after the |
140 | 140 |
// deoptimization while it is still activated further down the stack. |
... | ... | |
150 | 150 |
|
151 | 151 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
152 | 152 |
CHECK(!GetJSFunction(env->Global(), "f")->IsOptimized()); |
153 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
153 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
154 | 154 |
} |
155 | 155 |
|
156 | 156 |
|
... | ... | |
172 | 172 |
|
173 | 173 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
174 | 174 |
CHECK(!GetJSFunction(env->Global(), "f")->IsOptimized()); |
175 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
175 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
176 | 176 |
|
177 | 177 |
// Test lazy deoptimization of a simple function with some arguments. Call the |
178 | 178 |
// function after the deoptimization while it is still activated further down |
... | ... | |
189 | 189 |
|
190 | 190 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
191 | 191 |
CHECK(!GetJSFunction(env->Global(), "f")->IsOptimized()); |
192 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
192 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
193 | 193 |
} |
194 | 194 |
|
195 | 195 |
|
... | ... | |
213 | 213 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
214 | 214 |
CHECK_EQ(6, env->Global()->Get(v8_str("result"))->Int32Value()); |
215 | 215 |
CHECK(!GetJSFunction(env->Global(), "f")->IsOptimized()); |
216 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
216 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
217 | 217 |
} |
218 | 218 |
} |
219 | 219 |
|
... | ... | |
237 | 237 |
|
238 | 238 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
239 | 239 |
CHECK_EQ(11, env->Global()->Get(v8_str("calls"))->Int32Value()); |
240 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
240 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
241 | 241 |
|
242 | 242 |
v8::Local<v8::Function> fun = |
243 | 243 |
v8::Local<v8::Function>::Cast(env->Global()->Get(v8::String::New("f"))); |
... | ... | |
269 | 269 |
|
270 | 270 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
271 | 271 |
CHECK_EQ(14, env->Global()->Get(v8_str("result"))->Int32Value()); |
272 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
272 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
273 | 273 |
} |
274 | 274 |
|
275 | 275 |
|
... | ... | |
290 | 290 |
|
291 | 291 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
292 | 292 |
CHECK(env->Global()->Get(v8_str("result"))->IsTrue()); |
293 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
293 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
294 | 294 |
|
295 | 295 |
{ |
296 | 296 |
AlwaysOptimizeAllowNativesSyntaxNoInlining options; |
... | ... | |
307 | 307 |
|
308 | 308 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
309 | 309 |
CHECK_EQ(3, env->Global()->Get(v8_str("result"))->Int32Value()); |
310 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
310 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
311 | 311 |
} |
312 | 312 |
|
313 | 313 |
|
... | ... | |
336 | 336 |
|
337 | 337 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
338 | 338 |
CHECK_EQ(14, env->Global()->Get(v8_str("result"))->Int32Value()); |
339 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
339 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
340 | 340 |
} |
341 | 341 |
|
342 | 342 |
|
... | ... | |
367 | 367 |
i::FLAG_always_opt = true; |
368 | 368 |
CompileRun(f_source); |
369 | 369 |
CompileRun("f('a+', new X());"); |
370 |
CHECK(!i::Isolate::Current()->use_crankshaft() ||
|
|
370 |
CHECK(!CcTest::i_isolate()->use_crankshaft() ||
|
|
371 | 371 |
GetJSFunction(env->Global(), "f")->IsOptimized()); |
372 | 372 |
|
373 | 373 |
// Call f and force deoptimization while processing the binary operation. |
... | ... | |
382 | 382 |
CHECK(result->IsString()); |
383 | 383 |
v8::String::Utf8Value utf8(result); |
384 | 384 |
CHECK_EQ("a+an X", *utf8); |
385 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
385 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
386 | 386 |
} |
387 | 387 |
|
388 | 388 |
|
... | ... | |
419 | 419 |
i::FLAG_always_opt = true; |
420 | 420 |
CompileRun(f_source); |
421 | 421 |
CompileRun("f(7, new X());"); |
422 |
CHECK(!i::Isolate::Current()->use_crankshaft() ||
|
|
422 |
CHECK(!CcTest::i_isolate()->use_crankshaft() ||
|
|
423 | 423 |
GetJSFunction((*env)->Global(), "f")->IsOptimized()); |
424 | 424 |
|
425 | 425 |
// Call f and force deoptimization while processing the binary operation. |
... | ... | |
438 | 438 |
|
439 | 439 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
440 | 440 |
CHECK_EQ(15, env->Global()->Get(v8_str("result"))->Int32Value()); |
441 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
441 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
442 | 442 |
} |
443 | 443 |
|
444 | 444 |
|
... | ... | |
450 | 450 |
|
451 | 451 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
452 | 452 |
CHECK_EQ(-1, env->Global()->Get(v8_str("result"))->Int32Value()); |
453 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
453 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
454 | 454 |
} |
455 | 455 |
|
456 | 456 |
|
... | ... | |
462 | 462 |
|
463 | 463 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
464 | 464 |
CHECK_EQ(56, env->Global()->Get(v8_str("result"))->Int32Value()); |
465 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
465 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
466 | 466 |
} |
467 | 467 |
|
468 | 468 |
|
... | ... | |
474 | 474 |
|
475 | 475 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
476 | 476 |
CHECK_EQ(0, env->Global()->Get(v8_str("result"))->Int32Value()); |
477 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
477 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
478 | 478 |
} |
479 | 479 |
|
480 | 480 |
|
... | ... | |
486 | 486 |
|
487 | 487 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
488 | 488 |
CHECK_EQ(7, env->Global()->Get(v8_str("result"))->Int32Value()); |
489 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
489 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
490 | 490 |
} |
491 | 491 |
|
492 | 492 |
|
... | ... | |
517 | 517 |
i::FLAG_always_opt = true; |
518 | 518 |
CompileRun(f_source); |
519 | 519 |
CompileRun("f('a', new X());"); |
520 |
CHECK(!i::Isolate::Current()->use_crankshaft() ||
|
|
520 |
CHECK(!CcTest::i_isolate()->use_crankshaft() ||
|
|
521 | 521 |
GetJSFunction(env->Global(), "f")->IsOptimized()); |
522 | 522 |
|
523 | 523 |
// Call f and force deoptimization while processing the comparison. |
... | ... | |
529 | 529 |
CHECK(!GetJSFunction(env->Global(), "f")->IsOptimized()); |
530 | 530 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
531 | 531 |
CHECK_EQ(true, env->Global()->Get(v8_str("result"))->BooleanValue()); |
532 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
532 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
533 | 533 |
} |
534 | 534 |
|
535 | 535 |
|
... | ... | |
587 | 587 |
CompileRun("g1(new X());"); |
588 | 588 |
CompileRun("f2(new X(), 'z');"); |
589 | 589 |
CompileRun("g2(new X(), 'z');"); |
590 |
if (i::Isolate::Current()->use_crankshaft()) {
|
|
590 |
if (CcTest::i_isolate()->use_crankshaft()) {
|
|
591 | 591 |
CHECK(GetJSFunction(env->Global(), "f1")->IsOptimized()); |
592 | 592 |
CHECK(GetJSFunction(env->Global(), "g1")->IsOptimized()); |
593 | 593 |
CHECK(GetJSFunction(env->Global(), "f2")->IsOptimized()); |
... | ... | |
609 | 609 |
CHECK(!GetJSFunction(env->Global(), "g2")->IsOptimized()); |
610 | 610 |
CHECK_EQ(4, env->Global()->Get(v8_str("count"))->Int32Value()); |
611 | 611 |
CHECK_EQ(13, env->Global()->Get(v8_str("result"))->Int32Value()); |
612 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
612 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
613 | 613 |
} |
614 | 614 |
|
615 | 615 |
|
... | ... | |
671 | 671 |
CompileRun("g1(new X());"); |
672 | 672 |
CompileRun("f2(new X(), 'z');"); |
673 | 673 |
CompileRun("g2(new X(), 'z');"); |
674 |
if (i::Isolate::Current()->use_crankshaft()) {
|
|
674 |
if (CcTest::i_isolate()->use_crankshaft()) {
|
|
675 | 675 |
CHECK(GetJSFunction(env->Global(), "f1")->IsOptimized()); |
676 | 676 |
CHECK(GetJSFunction(env->Global(), "g1")->IsOptimized()); |
677 | 677 |
CHECK(GetJSFunction(env->Global(), "f2")->IsOptimized()); |
... | ... | |
690 | 690 |
CHECK(!GetJSFunction(env->Global(), "g2")->IsOptimized()); |
691 | 691 |
CHECK_EQ(1, env->Global()->Get(v8_str("count"))->Int32Value()); |
692 | 692 |
CHECK_EQ(13, env->Global()->Get(v8_str("result"))->Int32Value()); |
693 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(Isolate::Current()));
|
|
693 |
CHECK_EQ(0, Deoptimizer::GetDeoptimizedCodeCount(CcTest::i_isolate()));
|
|
694 | 694 |
} |
Also available in: Unified diff