Commit d7a8170d authored by Ross McIlroy's avatar Ross McIlroy Committed by Commit Bot

[cleanup] Add missing %PrepareFunctionForOptimize in mjsunit tests

Bug: v8:8801,v8:8394,v8:9183
Change-Id: If482c6a14f389d54c6ca3891aa7b8475f7a1fce1
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1660617
Commit-Queue: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
Auto-Submit: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#62192}
parent 9b5635ee
...@@ -53,7 +53,7 @@ function test(factories, w) { ...@@ -53,7 +53,7 @@ function test(factories, w) {
%PrepareFunctionForOptimization(w); %PrepareFunctionForOptimization(w);
factories.forEach(function(f) { w(f(), 0); }); factories.forEach(function(f) { w(f(), 0); });
factories.forEach(function(f) { w(f(), 0); }); factories.forEach(function(f) { w(f(), 0); });
%OptimizeFunctionOnNextCall(w); %OptimizeFunctionOnNextCall(w);
factories.forEach(function(f) { w(f(), 0); }); factories.forEach(function(f) { w(f(), 0); });
} }
......
...@@ -41,6 +41,7 @@ function f(restIsArray, rest) { ...@@ -41,6 +41,7 @@ function f(restIsArray, rest) {
} }
%PrepareFunctionForOptimization(f); %PrepareFunctionForOptimization(f);
%PrepareFunctionForOptimization(f);
f(false, 'b', 'c'); f(false, 'b', 'c');
f(false, 'b', 'c'); f(false, 'b', 'c');
f(false, 'b', 'c'); f(false, 'b', 'c');
......
...@@ -48,6 +48,7 @@ var expected = [1,2,3,3,4,5,6,7,8,9,bozo]; ...@@ -48,6 +48,7 @@ var expected = [1,2,3,3,4,5,6,7,8,9,bozo];
// Make sure we generate optimized code for the first closure after // Make sure we generate optimized code for the first closure after
// warming it up properly so that the literals boilerplate is generated // warming it up properly so that the literals boilerplate is generated
// and the optimized code uses CreateArrayLiteralShallow runtime call. // and the optimized code uses CreateArrayLiteralShallow runtime call.
%PrepareFunctionForOptimization(closure1);
assertEquals(0, closure1(false)); assertEquals(0, closure1(false));
assertEquals(expected, closure1(true)); assertEquals(expected, closure1(true));
%OptimizeFunctionOnNextCall(closure1); %OptimizeFunctionOnNextCall(closure1);
...@@ -55,6 +56,7 @@ assertEquals(expected, closure1(true)); ...@@ -55,6 +56,7 @@ assertEquals(expected, closure1(true));
// Optimize the second closure, which should reuse the optimized code // Optimize the second closure, which should reuse the optimized code
// from the first closure with the same literal boilerplates. // from the first closure with the same literal boilerplates.
%PrepareFunctionForOptimization(closure2);
assertEquals(0, closure2(false)); assertEquals(0, closure2(false));
%OptimizeFunctionOnNextCall(closure2); %OptimizeFunctionOnNextCall(closure2);
assertEquals(expected, closure2(true)); assertEquals(expected, closure2(true));
...@@ -32,6 +32,7 @@ var foo = (function() { ...@@ -32,6 +32,7 @@ var foo = (function() {
})(); })();
%PrepareFunctionForOptimization(foo); %PrepareFunctionForOptimization(foo);
%PrepareFunctionForOptimization(foo);
foo(); foo();
foo(); foo();
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
......
...@@ -70,6 +70,7 @@ source += "x=1; return _0;" ...@@ -70,6 +70,7 @@ source += "x=1; return _0;"
var f = new Function(source); var f = new Function(source);
%PrepareFunctionForOptimization(f); %PrepareFunctionForOptimization(f);
%PrepareFunctionForOptimization(f);
f(); f();
%OptimizeFunctionOnNextCall(f); %OptimizeFunctionOnNextCall(f);
f(); f();
...@@ -38,6 +38,7 @@ function foo(x) { ...@@ -38,6 +38,7 @@ function foo(x) {
} }
%PrepareFunctionForOptimization(foo); %PrepareFunctionForOptimization(foo);
%PrepareFunctionForOptimization(foo);
foo(0); foo(0);
foo(0); foo(0);
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
......
...@@ -38,6 +38,7 @@ function f() { ...@@ -38,6 +38,7 @@ function f() {
} }
%PrepareFunctionForOptimization(f); %PrepareFunctionForOptimization(f);
%PrepareFunctionForOptimization(f);
f(); f();
f(); f();
f(); f();
......
...@@ -38,6 +38,7 @@ function f() { ...@@ -38,6 +38,7 @@ function f() {
} }
%PrepareFunctionForOptimization(f); %PrepareFunctionForOptimization(f);
%PrepareFunctionForOptimization(f);
f(); f();
f(); f();
f(); f();
......
...@@ -39,6 +39,7 @@ function foo(x, fun) { ...@@ -39,6 +39,7 @@ function foo(x, fun) {
} }
%PrepareFunctionForOptimization(foo); %PrepareFunctionForOptimization(foo);
%PrepareFunctionForOptimization(foo);
assertThrows("foo(1, bailout)"); assertThrows("foo(1, bailout)");
assertThrows("foo(1, bailout)"); assertThrows("foo(1, bailout)");
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
......
...@@ -20,10 +20,12 @@ function foo(a) { ...@@ -20,10 +20,12 @@ function foo(a) {
var a = new Int32Array(10); var a = new Int32Array(10);
%PrepareFunctionForOptimization(foo);
foo(a); foo(a);
foo(a); foo(a);
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
foo(a); foo(a);
%PrepareFunctionForOptimization(foo);
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
foo(a); foo(a);
assertOptimized(foo); assertOptimized(foo);
...@@ -44,6 +44,7 @@ ...@@ -44,6 +44,7 @@
function baz(f, deopt) { return foo("x", deopt, f); } function baz(f, deopt) { return foo("x", deopt, f); }
%PrepareFunctionForOptimization(baz); %PrepareFunctionForOptimization(baz);
%PrepareFunctionForOptimization(baz);
baz(f1, 0); baz(f1, 0);
baz(f2, 0); baz(f2, 0);
%OptimizeFunctionOnNextCall(baz); %OptimizeFunctionOnNextCall(baz);
...@@ -68,6 +69,7 @@ ...@@ -68,6 +69,7 @@
function baz(deopt) { return foo("x", deopt); } function baz(deopt) { return foo("x", deopt); }
%PrepareFunctionForOptimization(baz); %PrepareFunctionForOptimization(baz);
%PrepareFunctionForOptimization(baz);
baz(0); baz(0);
baz(0); baz(0);
%OptimizeFunctionOnNextCall(baz); %OptimizeFunctionOnNextCall(baz);
...@@ -92,6 +94,7 @@ ...@@ -92,6 +94,7 @@
function baz(deopt) { return foo(0, deopt); } function baz(deopt) { return foo(0, deopt); }
%PrepareFunctionForOptimization(baz); %PrepareFunctionForOptimization(baz);
%PrepareFunctionForOptimization(baz);
baz(0); baz(0);
baz(0); baz(0);
%OptimizeFunctionOnNextCall(baz); %OptimizeFunctionOnNextCall(baz);
......
...@@ -39,5 +39,6 @@ function foo(len) { return new Array(len); } ...@@ -39,5 +39,6 @@ function foo(len) { return new Array(len); }
%PrepareFunctionForOptimization(foo); %PrepareFunctionForOptimization(foo);
foo(0); foo(0);
foo(0); foo(0);
%PrepareFunctionForOptimization(bar);
%OptimizeFunctionOnNextCall(bar); %OptimizeFunctionOnNextCall(bar);
foo(0); foo(0);
...@@ -39,6 +39,7 @@ function withCommaExpressionInConditional(x) { ...@@ -39,6 +39,7 @@ function withCommaExpressionInConditional(x) {
} }
%PrepareFunctionForOptimization(withCommaExpressionInConditional); %PrepareFunctionForOptimization(withCommaExpressionInConditional);
%PrepareFunctionForOptimization(withCommaExpressionInConditional);
for (var i = 0; i < 5; i++) { for (var i = 0; i < 5; i++) {
withCommaExpressionInConditional(i); withCommaExpressionInConditional(i);
} }
......
...@@ -40,6 +40,7 @@ function __f_0(__v_1,__v_0,i) { ...@@ -40,6 +40,7 @@ function __f_0(__v_1,__v_0,i) {
} }
%PrepareFunctionForOptimization(__f_0); %PrepareFunctionForOptimization(__f_0);
try { try {
%PrepareFunctionForOptimization(__f_0);
__f_0(__v_1,__v_0,0); __f_0(__v_1,__v_0,0);
__f_0(__v_1,__v_0,0); __f_0(__v_1,__v_0,0);
%OptimizeFunctionOnNextCall(__f_0); %OptimizeFunctionOnNextCall(__f_0);
...@@ -85,6 +86,7 @@ function __f_7(o) { ...@@ -85,6 +86,7 @@ function __f_7(o) {
return o.__f_4(); return o.__f_4();
} }
try { try {
%PrepareFunctionForOptimization(__f_7);
for (var __v_7 = 0; __v_7 < 5; __v_7++) __f_7(__v_5); for (var __v_7 = 0; __v_7 < 5; __v_7++) __f_7(__v_5);
%OptimizeFunctionOnNextCall(__f_7); %OptimizeFunctionOnNextCall(__f_7);
__f_7(__v_5); __f_7(__v_5);
...@@ -112,6 +114,7 @@ gc(); ...@@ -112,6 +114,7 @@ gc();
var __v_8; var __v_8;
} catch(e) { print("Caught: " + e); } } catch(e) { print("Caught: " + e); }
function __f_9(n) { return __v_9.charAt(n); } function __f_9(n) { return __v_9.charAt(n); }
%PrepareFunctionForOptimization(__f_9);
try { try {
for (var __v_7 = 0; __v_7 < 5; __v_7++) { for (var __v_7 = 0; __v_7 < 5; __v_7++) {
__v_8 = __f_9(0); __v_8 = __f_9(0);
......
...@@ -15,6 +15,7 @@ function foo(a) { ...@@ -15,6 +15,7 @@ function foo(a) {
for (i = 0; i < 1; i++) ; for (i = 0; i < 1; i++) ;
} }
} }
%PrepareFunctionForOptimization(foo);
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
foo(); foo();
...@@ -27,5 +28,6 @@ var __v_45; ...@@ -27,5 +28,6 @@ var __v_45;
for (__v_45 = 128; __v_45 < 256; __v_45++) { for (__v_45 = 128; __v_45 < 256; __v_45++) {
} }
} }
%PrepareFunctionForOptimization(bar);
%OptimizeFunctionOnNextCall(bar); %OptimizeFunctionOnNextCall(bar);
assertThrows(bar); assertThrows(bar);
...@@ -36,6 +36,7 @@ function foo(object) { ...@@ -36,6 +36,7 @@ function foo(object) {
} }
return key; return key;
} }
%PrepareFunctionForOptimization(foo);
// Collect type feedback for slow-mode for-in. // Collect type feedback for slow-mode for-in.
foo(training); foo(training);
......
...@@ -12,6 +12,8 @@ var f = (function() { ...@@ -12,6 +12,8 @@ var f = (function() {
return foo; return foo;
})(); })();
%PrepareFunctionForOptimization(f);
function deopt(f) { function deopt(f) {
return { return {
toString : function() { toString : function() {
......
...@@ -10,6 +10,7 @@ function g() { ...@@ -10,6 +10,7 @@ function g() {
f(); f();
} }
%PrepareFunctionForOptimization(g);
assertThrows(g, SyntaxError); assertThrows(g, SyntaxError);
%OptimizeFunctionOnNextCall(g); %OptimizeFunctionOnNextCall(g);
assertThrows(g, SyntaxError); assertThrows(g, SyntaxError);
...@@ -12,8 +12,9 @@ ...@@ -12,8 +12,9 @@
Object.defineProperty(C.prototype, "boom", { get: function() { Object.defineProperty(C.prototype, "boom", { get: function() {
if (should_deoptimize_caller) %DeoptimizeFunction(D.prototype.f); if (should_deoptimize_caller) %DeoptimizeFunction(D.prototype.f);
return this.m return this.m
}}) }});
%PrepareFunctionForOptimization(D.prototype.f);
assertEquals(23, new D().f()); assertEquals(23, new D().f());
assertEquals(23, new D().f()); assertEquals(23, new D().f());
%OptimizeFunctionOnNextCall(D.prototype.f); %OptimizeFunctionOnNextCall(D.prototype.f);
...@@ -30,8 +31,9 @@ ...@@ -30,8 +31,9 @@
Object.defineProperty(C.prototype, "boom", { get: function() { Object.defineProperty(C.prototype, "boom", { get: function() {
if (should_deoptimize_caller) %DeoptimizeFunction(D.prototype.f); if (should_deoptimize_caller) %DeoptimizeFunction(D.prototype.f);
return this.m return this.m
}}) }});
%PrepareFunctionForOptimization(D.prototype.f);
assertEquals(23, new D().f("boom")); assertEquals(23, new D().f("boom"));
assertEquals(23, new D().f("boom")); assertEquals(23, new D().f("boom"));
%OptimizeFunctionOnNextCall(D.prototype.f); %OptimizeFunctionOnNextCall(D.prototype.f);
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
if (o == 'warmup') { return g() } if (o == 'warmup') { return g() }
with (o) { return x } with (o) { return x }
} }
%PrepareFunctionForOptimization(f);
function g() { function g() {
// Only a marker function serving as weak embedded object. // Only a marker function serving as weak embedded object.
} }
......
...@@ -12,6 +12,7 @@ function f(osr_and_recurse) { ...@@ -12,6 +12,7 @@ function f(osr_and_recurse) {
for (var i = 0; i < 3; ++i) { for (var i = 0; i < 3; ++i) {
if (i == 1) %OptimizeOsr(); if (i == 1) %OptimizeOsr();
} }
%PrepareFunctionForOptimization(f);
%OptimizeFunctionOnNextCall(f); %OptimizeFunctionOnNextCall(f);
f(false); // Trigger tier-up due to recursive call. f(false); // Trigger tier-up due to recursive call.
boom(this); // Causes a deopt due to below dependency. boom(this); // Causes a deopt due to below dependency.
......
...@@ -8,6 +8,7 @@ function foo(a, b) { ...@@ -8,6 +8,7 @@ function foo(a, b) {
return a + "0123456789012"; return a + "0123456789012";
} }
%PrepareFunctionForOptimization(foo);
foo("a"); foo("a");
foo("a"); foo("a");
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
...@@ -16,6 +17,7 @@ foo("a"); ...@@ -16,6 +17,7 @@ foo("a");
var a = "a".repeat(%StringMaxLength()); var a = "a".repeat(%StringMaxLength());
assertThrows(function() { foo(a); }, RangeError); assertThrows(function() { foo(a); }, RangeError);
%PrepareFunctionForOptimization(foo);
%OptimizeFunctionOnNextCall(foo); %OptimizeFunctionOnNextCall(foo);
assertThrows(function() { foo(a); }, RangeError); assertThrows(function() { foo(a); }, RangeError);
assertOptimized(foo); assertOptimized(foo);
...@@ -9,10 +9,10 @@ function f(n) { ...@@ -9,10 +9,10 @@ function f(n) {
function g() { function g() {
return x; return x;
}; };
%PrepareFunctionForOptimization(g);
for (var i = 0; i < n; ++i) { for (var i = 0; i < n; ++i) {
var x = i; var x = i;
a[i] = g; a[i] = g;
%PrepareFunctionForOptimization(g);
%OptimizeFunctionOnNextCall(g); %OptimizeFunctionOnNextCall(g);
g(); g();
} }
......
...@@ -10,10 +10,10 @@ function f(n) { ...@@ -10,10 +10,10 @@ function f(n) {
function g() { function g() {
return x; return x;
}; };
%PrepareFunctionForOptimization(g);
for (var i = 0; i < n; ++i) { for (var i = 0; i < n; ++i) {
var x = i; var x = i;
a[i] = g; a[i] = g;
%PrepareFunctionForOptimization(g);
%OptimizeFunctionOnNextCall(g); %OptimizeFunctionOnNextCall(g);
g(); g();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment