Revision: 24640
Author:   [email protected]
Date:     Wed Oct 15 14:12:20 2014 UTC
Log:      Give simple types to Math.Min, Math.Max, Math.Fround, Math.Clz32.

[email protected]
BUG=

Review URL: https://codereview.chromium.org/657793002
https://code.google.com/p/v8/source/detail?r=24640

Modified:
 /branches/bleeding_edge/src/compiler/typer.cc
 /branches/bleeding_edge/src/compiler/typer.h

=======================================
--- /branches/bleeding_edge/src/compiler/typer.cc Wed Oct 15 11:38:04 2014 UTC +++ /branches/bleeding_edge/src/compiler/typer.cc Wed Oct 15 14:12:20 2014 UTC
@@ -65,6 +65,8 @@
   number_fun2_ = Type::Function(number, number, number, zone);
   weakint_fun1_ = Type::Function(weakint, number, zone);
   imul_fun_ = Type::Function(signed32, integral32, integral32, zone);
+  clz32_fun_ = Type::Function(
+      Type::Range(zero, f->NewNumber(32), zone), number, zone);
   random_fun_ = Type::Function(Type::Union(
       Type::UnsignedSmall(), Type::OtherNumber(), zone), zone);

@@ -1554,40 +1556,48 @@
   if (value->IsJSFunction()) {
     if (JSFunction::cast(*value)->shared()->HasBuiltinFunctionId()) {
       switch (JSFunction::cast(*value)->shared()->builtin_function_id()) {
-        // TODO(rossberg): can't express overloading
+        case kMathRandom:
+          return typer_->random_fun_;
+        case kMathFloor:
+          return typer_->weakint_fun1_;
+        case kMathRound:
+          return typer_->weakint_fun1_;
+        case kMathCeil:
+          return typer_->weakint_fun1_;
         case kMathAbs:
+          // TODO(rossberg): can't express overloading
           return typer_->number_fun1_;
-        case kMathAcos:
+        case kMathLog:
           return typer_->number_fun1_;
-        case kMathAsin:
+        case kMathExp:
           return typer_->number_fun1_;
-        case kMathAtan:
+        case kMathSqrt:
           return typer_->number_fun1_;
-        case kMathAtan2:
+        case kMathPow:
+          return typer_->number_fun2_;
+        case kMathMax:
+          return typer_->number_fun2_;
+        case kMathMin:
           return typer_->number_fun2_;
-        case kMathCeil:
-          return typer_->weakint_fun1_;
         case kMathCos:
           return typer_->number_fun1_;
-        case kMathExp:
+        case kMathSin:
           return typer_->number_fun1_;
-        case kMathFloor:
-          return typer_->weakint_fun1_;
-        case kMathImul:
-          return typer_->imul_fun_;
-        case kMathLog:
+        case kMathTan:
           return typer_->number_fun1_;
-        case kMathPow:
-          return typer_->number_fun2_;
-        case kMathRandom:
-          return typer_->random_fun_;
-        case kMathRound:
-          return typer_->weakint_fun1_;
-        case kMathSin:
+        case kMathAcos:
+          return typer_->number_fun1_;
+        case kMathAsin:
           return typer_->number_fun1_;
-        case kMathSqrt:
+        case kMathAtan:
           return typer_->number_fun1_;
-        case kMathTan:
+        case kMathAtan2:
+          return typer_->number_fun2_;
+        case kMathImul:
+          return typer_->imul_fun_;
+        case kMathClz32:
+          return typer_->clz32_fun_;
+        case kMathFround:
           return typer_->number_fun1_;
         default:
           break;
=======================================
--- /branches/bleeding_edge/src/compiler/typer.h Wed Oct 15 11:38:04 2014 UTC +++ /branches/bleeding_edge/src/compiler/typer.h Wed Oct 15 14:12:20 2014 UTC
@@ -56,6 +56,7 @@
   Type* number_fun2_;
   Type* weakint_fun1_;
   Type* imul_fun_;
+  Type* clz32_fun_;
   Type* random_fun_;
   Type* array_buffer_fun_;
   Type* int8_array_fun_;

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to