From 3ee126de7404fdab0c2e820b3a1cd20fc318e29c Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Tue, 12 Mar 2024 12:20:33 +0100 Subject: [PATCH] [IR] Drop `alwaysCreateTemporaryVariablesForArguments` from inliner This parameter was always set to be true. #KT-66509 --- .../jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt | 1 - .../jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt | 1 - .../jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt | 1 - .../org/jetbrains/kotlin/ir/inline/FunctionInlining.kt | 9 ++------- .../backend/konan/driver/phases/NativeLoweringPhases.kt | 1 - 5 files changed, 2 insertions(+), 11 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt index df4df65223d..f79e441e168 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt @@ -207,7 +207,6 @@ private val functionInliningPhase = makeIrModulePhase( it, JsInlineFunctionResolver(it), it.innerClassesSupport, - alwaysCreateTemporaryVariablesForArguments = true, inlineArgumentsWithOriginalOffset = true, ) }, diff --git a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt index b5616ac6b66..5f11890db43 100644 --- a/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt +++ b/compiler/ir/backend.jvm/lower/src/org/jetbrains/kotlin/backend/jvm/JvmLoweringPhases.kt @@ -297,7 +297,6 @@ internal val functionInliningPhase = makeIrModulePhase( FunctionInlining( context, innerClassesSupport = context.innerClassesSupport, - alwaysCreateTemporaryVariablesForArguments = true, regenerateInlinedAnonymousObjects = true, inlineArgumentsWithOriginalOffset = true ) diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt index 55ad03f73f3..bfbd7520405 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt @@ -139,7 +139,6 @@ private val functionInliningPhase = makeCustomPhase( inlineFunctionResolver = WasmInlineFunctionResolver(context), innerClassesSupport = context.innerClassesSupport, insertAdditionalImplicitCasts = true, - alwaysCreateTemporaryVariablesForArguments = true ).inline(module) module.patchDeclarationParents() }, diff --git a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt index 282fa69227a..cec65de7df2 100644 --- a/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt +++ b/compiler/ir/ir.inline/src/org/jetbrains/kotlin/ir/inline/FunctionInlining.kt @@ -80,7 +80,6 @@ class FunctionInlining( private val inlineFunctionResolver: InlineFunctionResolver = InlineFunctionResolver.TRIVIAL, private val innerClassesSupport: InnerClassesSupport? = null, private val insertAdditionalImplicitCasts: Boolean = false, - private val alwaysCreateTemporaryVariablesForArguments: Boolean = false, private val regenerateInlinedAnonymousObjects: Boolean = false, private val inlineArgumentsWithOriginalOffset: Boolean = false, ) : IrElementTransformerVoidWithContext(), BodyLoweringPass { @@ -769,9 +768,7 @@ class FunctionInlining( // Arguments may reference the previous ones - substitute them. val variableInitializer = argument.argumentExpression.transform(substitutor, data = null) - val shouldCreateTemporaryVariable = - (alwaysCreateTemporaryVariablesForArguments && !parameter.isInlineParameter()) || - argument.shouldBeSubstitutedViaTemporaryVariable() + val shouldCreateTemporaryVariable = !parameter.isInlineParameter() || argument.shouldBeSubstitutedViaTemporaryVariable() if (shouldCreateTemporaryVariable) { val newVariable = createTemporaryVariable(parameter, variableInitializer, argument.isDefaultArg, callee) @@ -835,9 +832,7 @@ class FunctionInlining( } ) - if (alwaysCreateTemporaryVariablesForArguments) { - variable.name = Name.identifier(parameter.name.asStringStripSpecialMarkers()) - } + variable.name = Name.identifier(parameter.name.asStringStripSpecialMarkers()) return variable } diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt index 80fca424f37..ffd8c6c2193 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/NativeLoweringPhases.kt @@ -347,7 +347,6 @@ private val inlinePhase = createFileLoweringPhase( FunctionInlining( context.context, NativeInlineFunctionResolver(context.context, context), - alwaysCreateTemporaryVariablesForArguments = true, insertAdditionalImplicitCasts = true, ).lower(irFile) }