Reduce the number of iterations in some OSR tests by using an explicit %OptimizeOsr().
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/913463002 Cr-Commit-Position: refs/heads/master@{#26540}
This commit is contained in:
parent
f40238d36b
commit
1db760de7d
@ -25,37 +25,40 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
// Flags: --use-osr --turbo-osr
|
// Flags: --allow-natives-syntax --use-osr --turbo-osr
|
||||||
|
|
||||||
function f1() {
|
function f1() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 0; i < 1000000; i++) {
|
for (var i = 0; i < 1000; i++) {
|
||||||
var x = i + 2;
|
var x = i + 2;
|
||||||
var y = x + 5;
|
var y = x + 5;
|
||||||
var z = y + 3;
|
var z = y + 3;
|
||||||
sum += z;
|
sum += z;
|
||||||
|
if (i == 18) %OptimizeOsr();
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
function f2() {
|
function f2() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 0; i < 1000000; i++) {
|
for (var i = 0; i < 1000; i++) {
|
||||||
var x = i + 2;
|
var x = i + 2;
|
||||||
var y = x + 5;
|
var y = x + 5;
|
||||||
var z = y + 3;
|
var z = y + 3;
|
||||||
sum += z;
|
sum += z;
|
||||||
|
if (i == 19) %OptimizeOsr();
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
function f3() {
|
function f3() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 0; i < 1000000; i++) {
|
for (var i = 0; i < 1000; i++) {
|
||||||
var x = i + 2;
|
var x = i + 2;
|
||||||
var y = x + 5;
|
var y = x + 5;
|
||||||
var z = y + 3;
|
var z = y + 3;
|
||||||
sum += z;
|
sum += z;
|
||||||
|
if (i == 20) %OptimizeOsr();
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
@ -63,21 +66,21 @@ function f3() {
|
|||||||
function test1() {
|
function test1() {
|
||||||
var j = 11;
|
var j = 11;
|
||||||
for (var i = 0; i < 2; i++) {
|
for (var i = 0; i < 2; i++) {
|
||||||
assertEquals(500009500000, f1());
|
assertEquals(509500, f1());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function test2() {
|
function test2() {
|
||||||
for (var i = 0; i < 2; i++) {
|
for (var i = 0; i < 2; i++) {
|
||||||
var j = 11, k = 12;
|
var j = 11, k = 12;
|
||||||
assertEquals(500009500000, f2());
|
assertEquals(509500, f2());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function test3() {
|
function test3() {
|
||||||
for (var i = 0; i < 2; i++) {
|
for (var i = 0; i < 2; i++) {
|
||||||
var j = 11, k = 13, m = 14;
|
var j = 11, k = 13, m = 14;
|
||||||
assertEquals(500009500000, f3());
|
assertEquals(509500, f3());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,16 +2,17 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --use-osr --turbo-osr
|
// Flags: --allow-natives-syntax --use-osr --turbo-osr
|
||||||
|
|
||||||
function f() {
|
function f() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 5; i < 6; i++) {
|
for (var i = 5; i < 6; i++) {
|
||||||
for (var j = 0; j < 1000000; j++) {
|
for (var j = 0; j < 1000; j++) {
|
||||||
var x = i + 2;
|
var x = i + 2;
|
||||||
var y = x + 5;
|
var y = x + 5;
|
||||||
var z = y + 3;
|
var z = y + 3;
|
||||||
sum += z;
|
sum += z;
|
||||||
|
if (i == 21) %OptimizeOsr();
|
||||||
}
|
}
|
||||||
if (true) break;
|
if (true) break;
|
||||||
}
|
}
|
||||||
@ -19,6 +20,6 @@ function f() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
assertEquals(15000000, f());
|
assertEquals(15000, f());
|
||||||
assertEquals(15000000, f());
|
assertEquals(15000, f());
|
||||||
assertEquals(15000000, f());
|
assertEquals(15000, f());
|
||||||
|
@ -2,17 +2,18 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --use-osr --turbo-osr
|
// Flags: --allow-natives-syntax --use-osr --turbo-osr
|
||||||
|
|
||||||
function f() {
|
function f() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var m = 99; m < 100; m++) {
|
for (var m = 99; m < 100; m++) {
|
||||||
for (var i = 5; i < 6; i++) {
|
for (var i = 5; i < 6; i++) {
|
||||||
for (var j = 0; j < 1000000; j++) {
|
for (var j = 0; j < 1000; j++) {
|
||||||
var x = i + 2;
|
var x = i + 2;
|
||||||
var y = x + 5;
|
var y = x + 5;
|
||||||
var z = y + 3;
|
var z = y + 3;
|
||||||
sum += z;
|
sum += z;
|
||||||
|
if (i == 19) %OptimizeOsr();
|
||||||
}
|
}
|
||||||
if (true) break;
|
if (true) break;
|
||||||
}
|
}
|
||||||
@ -22,6 +23,6 @@ function f() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
assertEquals(15000000, f());
|
assertEquals(15000, f());
|
||||||
assertEquals(15000000, f());
|
assertEquals(15000, f());
|
||||||
assertEquals(15000000, f());
|
assertEquals(15000, f());
|
||||||
|
@ -2,20 +2,21 @@
|
|||||||
// Use of this source code is governed by a BSD-style license that can be
|
// Use of this source code is governed by a BSD-style license that can be
|
||||||
// found in the LICENSE file.
|
// found in the LICENSE file.
|
||||||
|
|
||||||
// Flags: --use-osr
|
// Flags: --allow-natives-syntax --use-osr
|
||||||
|
|
||||||
function f() {
|
function f() {
|
||||||
var sum = 0;
|
var sum = 0;
|
||||||
for (var i = 0; i < 1000000; i++) {
|
for (var i = 0; i < 1000; i++) {
|
||||||
var x = i + 2;
|
var x = i + 2;
|
||||||
var y = x + 5;
|
var y = x + 5;
|
||||||
var z = y + 3;
|
var z = y + 3;
|
||||||
sum += z;
|
sum += z;
|
||||||
|
if (i == 11) %OptimizeOsr();
|
||||||
}
|
}
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (var i = 0; i < 2; i++) {
|
for (var i = 0; i < 2; i++) {
|
||||||
assertEquals(500009500000, f());
|
assertEquals(509500, f());
|
||||||
}
|
}
|
||||||
|
@ -88,11 +88,10 @@ function assertKind(expected, obj, name_opt) {
|
|||||||
assertEquals(expected, getKind(obj), name_opt);
|
assertEquals(expected, getKind(obj), name_opt);
|
||||||
}
|
}
|
||||||
|
|
||||||
// long-running loop forces OSR.
|
|
||||||
%NeverOptimizeFunction(construct_smis);
|
%NeverOptimizeFunction(construct_smis);
|
||||||
%NeverOptimizeFunction(construct_doubles);
|
%NeverOptimizeFunction(construct_doubles);
|
||||||
%NeverOptimizeFunction(convert_mixed);
|
%NeverOptimizeFunction(convert_mixed);
|
||||||
for (var i = 0; i < 1000000; i++) { }
|
for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
|
||||||
|
|
||||||
// This code exists to eliminate the learning influence of AllocationSites
|
// This code exists to eliminate the learning influence of AllocationSites
|
||||||
// on the following tests.
|
// on the following tests.
|
||||||
|
@ -1,54 +0,0 @@
|
|||||||
// Copyright 2011 the V8 project authors. All rights reserved.
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following
|
|
||||||
// disclaimer in the documentation and/or other materials provided
|
|
||||||
// with the distribution.
|
|
||||||
// * Neither the name of Google Inc. nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived
|
|
||||||
// from this software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
// Flags: --opt-eagerly --debug-code --lazy
|
|
||||||
|
|
||||||
// See: http://code.google.com/p/v8/issues/detail?id=1145
|
|
||||||
// Should not throw a syntax error exception (change this if we make lazily
|
|
||||||
// compiled functions with syntax errors into early errors).
|
|
||||||
// Should not hit an assertion in debug mode.
|
|
||||||
|
|
||||||
// A lazily compiled function with a syntax error that is attempted inlined
|
|
||||||
// would set a pending exception that is then ignored (until it triggers
|
|
||||||
// an assert).
|
|
||||||
// This file must be at least 1024 bytes long to trigger lazy compilation.
|
|
||||||
|
|
||||||
function f() { return 1; }
|
|
||||||
|
|
||||||
// Must be lazy. Must throw SyntaxError during compilation.
|
|
||||||
function fail() { continue; }
|
|
||||||
|
|
||||||
function opt_me() {
|
|
||||||
var x = 1;
|
|
||||||
// Do lots of function calls and hope to be optimized.
|
|
||||||
for (var i = 0; i < 1000000; i++) {
|
|
||||||
x = f();
|
|
||||||
}
|
|
||||||
if (x == 0) fail(); // Hope to be inlined during optimization.
|
|
||||||
}
|
|
||||||
|
|
||||||
opt_me();
|
|
@ -25,6 +25,8 @@
|
|||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
for (var i = 0; i < 1000000; i++) { }
|
// Flags: --allow-natives-syntax
|
||||||
|
|
||||||
|
for (var i = 0; i < 10; i++) { if (i == 5) %OptimizeOsr(); }
|
||||||
var xl = 4096;
|
var xl = 4096;
|
||||||
var z = i % xl;
|
var z = i % xl;
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
// Copyright 2010 the V8 project authors. All rights reserved.
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions are
|
|
||||||
// met:
|
|
||||||
//
|
|
||||||
// * Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
// * Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following
|
|
||||||
// disclaimer in the documentation and/or other materials provided
|
|
||||||
// with the distribution.
|
|
||||||
// * Neither the name of Google Inc. nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived
|
|
||||||
// from this software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
||||||
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
||||||
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
||||||
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
||||||
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
||||||
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
for (var i = 0; i < 1000000; i++) {
|
|
||||||
a = new Array(0);
|
|
||||||
assertEquals(0, a.length);
|
|
||||||
assertEquals(0, a.length);
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user