Revision: 7765
Author:   [email protected]
Date:     Tue May  3 06:53:08 2011
Log: Replace long running loops by OptimizeFunctionOnNextCall in some tests that are often timing out on ARM.

Review URL: http://codereview.chromium.org/6910022
http://code.google.com/p/v8/source/detail?r=7765

Modified:
 /branches/bleeding_edge/test/mjsunit/closures.js
 /branches/bleeding_edge/test/mjsunit/compiler/regress-closures-with-eval.js
 /branches/bleeding_edge/test/mjsunit/compiler/regress-intoverflow.js
 /branches/bleeding_edge/test/mjsunit/regress/regress-1099.js
 /branches/bleeding_edge/test/mjsunit/strict-mode-opt.js

=======================================
--- /branches/bleeding_edge/test/mjsunit/closures.js Mon Jan 17 00:11:03 2011 +++ /branches/bleeding_edge/test/mjsunit/closures.js Tue May 3 06:53:08 2011
@@ -25,10 +25,10 @@
 // (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: --allow-natives-syntax
+
 function runner(f, expected) {
-  for (var i = 0; i < 1000000; i++) {
-    assertEquals(expected, f.call(this));
-  }
+  assertEquals(expected, f.call(this));
 }

 function test(n) {
@@ -36,6 +36,8 @@
     var result = n * 2 + arguments.length;
     return result;
   }
+  for (var i = 0; i < 5; ++i) MyFunction();
+  %OptimizeFunctionOnNextCall(MyFunction)
   runner(MyFunction, n * 2);
 }

=======================================
--- /branches/bleeding_edge/test/mjsunit/compiler/regress-closures-with-eval.js Mon Jan 17 00:11:03 2011 +++ /branches/bleeding_edge/test/mjsunit/compiler/regress-closures-with-eval.js Tue May 3 06:53:08 2011
@@ -25,12 +25,15 @@
 // (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: --allow-natives-syntax
+
 // Verifies that closures in presence of eval work fine.
 function withEval(expr, filter) {
   function walk(v) {
     for (var i in v) {
       for (var i in v) {}
     }
+    %OptimizeFunctionOnNextCall(filter);
     return filter(v);
   }

@@ -46,6 +49,8 @@

 var expr = '([' + makeTagInfoJSON(128).join(', ') + '])'

-for (var n = 0; n < 300; n++) {
+for (var n = 0; n < 5; n++) {
   withEval(expr, function(a) { return a; });
 }
+%OptimizeFunctionOnNextCall(withEval);
+withEval(expr, function(a) { return a; });
=======================================
--- /branches/bleeding_edge/test/mjsunit/compiler/regress-intoverflow.js Thu Dec 16 23:23:06 2010 +++ /branches/bleeding_edge/test/mjsunit/compiler/regress-intoverflow.js Tue May 3 06:53:08 2011
@@ -25,6 +25,8 @@
 // (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: --allow-natives-syntax
+
 // Test overflow checks in optimized code.
 function testMul(a, b) {
   a *= 2;
@@ -34,7 +36,8 @@
   }
 }

-for (var i=0; i<1000000; i++) testMul(0,0);
+for (var i=0; i<5; i++) testMul(0,0);
+%OptimizeFunctionOnNextCall(testMul);
 assertEquals(4611686018427388000, testMul(-0x40000000, -0x40000000));

 function testAdd(a, b) {
@@ -45,7 +48,8 @@
   }
 }

-for (var i=0; i<1000000; i++) testAdd(0,0);
+for (var i=0; i<5; i++) testAdd(0,0);
+%OptimizeFunctionOnNextCall(testAdd);
 assertEquals(-4294967296, testAdd(-0x40000000, -0x40000000));


@@ -58,5 +62,6 @@
   }
 }

-for (var i=0; i<1000000; i++) testSub(0,0);
+for (var i=0; i<5; i++) testSub(0,0);
+%OptimizeFunctionOnNextCall(testSub);
 assertEquals(-2147483650, testSub(-0x40000000, 1));
=======================================
--- /branches/bleeding_edge/test/mjsunit/regress/regress-1099.js Fri Feb 4 07:42:02 2011 +++ /branches/bleeding_edge/test/mjsunit/regress/regress-1099.js Tue May 3 06:53:08 2011
@@ -25,6 +25,8 @@
 // (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: --allow-natives-syntax
+
// Test that LApplyArguments lithium instruction restores context after the call.

 function X() {
@@ -41,6 +43,9 @@

 var y = Y(X());

-for (var i = 0; i < 1000000; i++) {
+for (var i = 0; i < 5; i++) {
   assertTrue(y("foo"));
 }
+
+%OptimizeFunctionOnNextCall(y);
+assertTrue(y("foo"));
=======================================
--- /branches/bleeding_edge/test/mjsunit/strict-mode-opt.js Fri Apr 8 07:30:10 2011 +++ /branches/bleeding_edge/test/mjsunit/strict-mode-opt.js Tue May 3 06:53:08 2011
@@ -25,8 +25,10 @@
 // (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: --allow-natives-syntax
+
 var global = 0;
-var MAX = 1000000;
+var MAX = 5;

 // Attempt to inline strcit in non-strict.

@@ -43,6 +45,7 @@
 (function testInlineStrictInNonStrict() {
   for (var i = 0; i <= MAX; i ++) {
     try {
+      if (i == MAX - 1) %OptimizeFunctionOnNextCall(nonstrictCallStrict);
       nonstrictCallStrict(i);
     } catch (e) {
       assertInstanceof(e, ReferenceError);
@@ -68,6 +71,7 @@
 (function testInlineNonStrictInStrict() {
   for (var i = 0; i <= MAX; i ++) {
     try {
+      if (i == MAX - 1) %OptimizeFunctionOnNextCall(nonstrictCallStrict);
       strictCallNonStrict(i);
     } catch (e) {
       fail("no exception", "exception");
@@ -87,6 +91,7 @@
 (function testOptimizeStrictAssignToUndefined() {
   for (var i = 0; i <= MAX; i ++) {
     try {
+      if (i == MAX - 1) %OptimizeFunctionOnNextCall(nonstrictCallStrict);
       strictAssignToUndefined(i);
     } catch (e) {
       assertInstanceof(e, ReferenceError);

--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to