2011-07-02 Maciej Stachowiak <mjs@apple.com>
authormjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 2 Jul 2011 20:45:55 +0000 (20:45 +0000)
committermjs@apple.com <mjs@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 2 Jul 2011 20:45:55 +0000 (20:45 +0000)
        Reviewed by Darin Adler.

        SunSpider: The main function of math-cordic is dead code
        https://bugs.webkit.org/show_bug.cgi?id=63863

        Try to prevent math-cordic from being eliminated as dead code or
        compiled down to a constant.

        * tests/sunspider-1.0/math-cordic.js:
        (cordicsincos):
        (cordic):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@90317 268f45cc-cd09-0410-ab3c-d52691b4dbfc

PerformanceTests/SunSpider/ChangeLog
PerformanceTests/SunSpider/tests/sunspider-1.0/math-cordic.js

index f8c0a14..07cca77 100644 (file)
@@ -1,3 +1,17 @@
+2011-07-02  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Darin Adler.
+
+        SunSpider: The main function of math-cordic is dead code
+        https://bugs.webkit.org/show_bug.cgi?id=63863
+        
+        Try to prevent math-cordic from being eliminated as dead code or
+        compiled down to a constant.
+
+        * tests/sunspider-1.0/math-cordic.js:
+        (cordicsincos):
+        (cordic):
+
 2011-06-30  Maciej Stachowiak  <mjs@apple.com>
 
         Reviewed by Adam Barth.
index 4d3833b..c708857 100644 (file)
@@ -49,8 +49,9 @@ var Angles = [
   FIXED(0.027977) 
               ];
 
+var Target = 28.027;
 
-function cordicsincos() {
+function cordicsincos(Target) {
     var X;
     var Y;
     var TargetAngle;
@@ -60,7 +61,7 @@ function cordicsincos() {
     X = FIXED(AG_CONST);         /* AG_CONST * cos(0) */
     Y = 0;                       /* AG_CONST * sin(0) */
 
-    TargetAngle = FIXED(28.027);
+    TargetAngle = FIXED(Target);
     CurrAngle = 0;
     for (Step = 0; Step < 12; Step++) {
         var NewX;
@@ -76,15 +77,19 @@ function cordicsincos() {
             CurrAngle -= Angles[Step];
         }
     }
+
+    return FLOAT(X) * FLOAT(Y);
 }
 
 ///// End CORDIC
 
+var total = 0;
+
 function cordic( runs ) {
   var start = new Date();
 
   for ( var i = 0 ; i < runs ; i++ ) {
-      cordicsincos();
+      total += cordicsincos(Target);
   }
 
   var end = new Date();