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

Side by Side Diff: test/mjsunit/shared-function-tier-up-ignition.js

Issue 2654733004: [tests] Make assertOptimized()/assertUnoptimized() great again. (Closed)
Patch Set: Rebasing for relanding Created 3 years, 10 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
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 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 // Flags: --mark-shared-functions-for-tier-up --allow-natives-syntax 5 // Flags: --mark-shared-functions-for-tier-up --allow-natives-syntax
6 // Flags: --ignition-staging --no-turbo 6 // Flags: --ignition-staging --no-turbo
7 // Flags: --crankshaft --no-always-opt 7 // Flags: --crankshaft --no-always-opt
8 8
9 // If we are always or never optimizing it is useless.
10 assertFalse(isAlwaysOptimize());
11 assertFalse(isNeverOptimize());
12
9 (function() { 13 (function() {
10 var sum = 0; 14 var sum = 0;
11 var i = 0; 15 var i = 0;
12 for (var i = 0; i < 5; ++i) { 16 for (var i = 0; i < 5; ++i) {
13 var f = function(x) { 17 var f = function(x) {
14 return 2 * x; 18 return 2 * x;
15 } 19 }
16 sum += f(i); 20 sum += f(i);
17 21
18 if (%GetOptimizationStatus(f) == 3 || %GetOptimizationStatus(f) == 4) {
19 // If we are always or never optimizing f, just exit, this test is useless .
20 return;
21 }
22
23 if (i == 1) { 22 if (i == 1) {
24 // f must be interpreted code. 23 // f must be interpreted code.
25 assertEquals(8, %GetOptimizationStatus(f)); 24 assertTrue(isInterpreted(f));
26 25
27 // Allow it to run twice (i = 0, 1), then tier-up to baseline. 26 // Allow it to run twice (i = 0, 1), then tier-up to baseline.
28 %BaselineFunctionOnNextCall(f); 27 %BaselineFunctionOnNextCall(f);
29 } else if (i == 2) { 28 } else if (i == 2) {
30 // Tier-up at i = 2 should only go up to baseline. 29 // Tier-up at i = 2 should only go up to baseline.
31 assertEquals(2, %GetOptimizationStatus(f)); 30 assertTrue(isBaselined(f));
31
32 } else if (i == 3) { 32 } else if (i == 3) {
33 // Now f must be baseline code. 33 // Now f must be baseline code.
34 assertEquals(2, %GetOptimizationStatus(f)); 34 assertTrue(isBaselined(f));
35 35
36 // Run two more times (i = 2, 3), then tier-up to optimized. 36 // Run two more times (i = 2, 3), then tier-up to optimized.
37 %OptimizeFunctionOnNextCall(f); 37 %OptimizeFunctionOnNextCall(f);
38 } else if (i == 4) { 38 } else if (i == 4) {
39 // Tier-up at i = 4 should now go up to crankshaft. 39 // Tier-up at i = 4 should now go up to crankshaft.
40 assertEquals(1, %GetOptimizationStatus(f)); 40 assertTrue(isCrankshafted(f));
41 } 41 }
42 } 42 }
43 })() 43 })()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698