diff --git a/js/src/ion/Ion.h b/js/src/ion/Ion.h index a014bc20c83..7ad116ef7f3 100644 --- a/js/src/ion/Ion.h +++ b/js/src/ion/Ion.h @@ -129,12 +129,6 @@ struct IonOptions // Default: 800 uint32 inlineMaxTotalBytecodeLength; - // Minimal ratio between the use counts of the caller and the callee to - // enable inlining of functions. - // - // Default: 128 - uint32 inlineUseCountRatio; - // Whether functions are compiled immediately. // // Default: false @@ -176,7 +170,6 @@ struct IonOptions smallFunctionUsesBeforeInlining(usesBeforeInlining / 4), polyInlineMax(4), inlineMaxTotalBytecodeLength(800), - inlineUseCountRatio(128), eagerCompilation(false), slowCallLimit(512) { diff --git a/js/src/ion/IonBuilder.cpp b/js/src/ion/IonBuilder.cpp index 5039d6a3458..0073a4ac249 100644 --- a/js/src/ion/IonBuilder.cpp +++ b/js/src/ion/IonBuilder.cpp @@ -2898,10 +2898,6 @@ IonBuilder::makeInliningDecision(AutoObjectVector &targets) // 2. The cost of inlining (in terms of size expansion of the SSA graph), // and size expansion of the ultimately generated code, will be // less significant. - // 3. Do not inline functions which are not called as frequently as their - // callers. - - uint32_t callerUses = script->getUseCount(); uint32_t totalSize = 0; uint32_t checkUses = js_IonOptions.usesBeforeInlining; @@ -2912,18 +2908,12 @@ IonBuilder::makeInliningDecision(AutoObjectVector &targets) return false; JSScript *script = target->script(); - uint32_t calleeUses = script->getUseCount(); totalSize += script->length; if (totalSize > js_IonOptions.inlineMaxTotalBytecodeLength) return false; if (script->length > js_IonOptions.smallFunctionMaxBytecodeLength) allFunctionsAreSmall = false; - - if (calleeUses * js_IonOptions.inlineUseCountRatio < callerUses) { - IonSpew(IonSpew_Inlining, "Not inlining, callee is not hot"); - return false; - } } if (allFunctionsAreSmall) checkUses = js_IonOptions.smallFunctionUsesBeforeInlining;