Bug 1385215 part 1 - Ion-inline native calls in jsop_funcall/jsop_funapplyarguments. r=nbp
authorJan de Mooij <jdemooij@mozilla.com>
Mon, 31 Jul 2017 13:09:26 +0200
changeset 371972 433a0c6cef71
parent 371971 b1a2f780f966
child 371973 aa3fa3b4af72
push id93178
push userjandemooij@gmail.com
push dateMon, 31 Jul 2017 11:09:44 +0000
treeherdermozilla-inbound@433a0c6cef71 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersnbp
bugs1385215
milestone56.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1385215 part 1 - Ion-inline native calls in jsop_funcall/jsop_funapplyarguments. r=nbp
js/src/jit/IonBuilder.cpp
--- a/js/src/jit/IonBuilder.cpp
+++ b/js/src/jit/IonBuilder.cpp
@@ -5086,24 +5086,23 @@ IonBuilder::jsop_funcall(uint32_t argc)
     if (!zeroArguments) {
         InliningDecision decision = makeInliningDecision(target, callInfo);
         switch (decision) {
           case InliningDecision_Error:
             return abort(AbortReason::Alloc);
           case InliningDecision_DontInline:
           case InliningDecision_WarmUpCountTooLow:
             break;
-          case InliningDecision_Inline:
-            if (target->isInterpreted()) {
-                InliningStatus status;
-                MOZ_TRY_VAR(status, inlineScriptedCall(callInfo, target));
-                if (status == InliningStatus_Inlined)
-                    return Ok();
-            }
+          case InliningDecision_Inline: {
+            InliningStatus status;
+            MOZ_TRY_VAR(status, inlineSingleCall(callInfo, target));
+            if (status == InliningStatus_Inlined)
+                return Ok();
             break;
+          }
         }
     }
 
     // Call without inlining.
     return makeCall(target, callInfo);
 }
 
 AbortReasonOr<Ok>
@@ -5319,23 +5318,22 @@ IonBuilder::jsop_funapplyarguments(uint3
     // Try to inline the call.
     InliningDecision decision = makeInliningDecision(target, callInfo);
     switch (decision) {
       case InliningDecision_Error:
         return abort(AbortReason::Alloc);
       case InliningDecision_DontInline:
       case InliningDecision_WarmUpCountTooLow:
         break;
-      case InliningDecision_Inline:
-        if (target->isInterpreted()) {
-            InliningStatus status;
-            MOZ_TRY_VAR(status, inlineScriptedCall(callInfo, target));
-            if (status == InliningStatus_Inlined)
-                return Ok();
-        }
+      case InliningDecision_Inline: {
+        InliningStatus status;
+        MOZ_TRY_VAR(status, inlineSingleCall(callInfo, target));
+        if (status == InliningStatus_Inlined)
+            return Ok();
+      }
     }
 
     return makeCall(target, callInfo);
 }
 
 AbortReasonOr<Ok>
 IonBuilder::jsop_call(uint32_t argc, bool constructing, bool ignoresReturnValue)
 {