From 71487e534b25e40279155296b821fb1ffd8d41b0 Mon Sep 17 00:00:00 2001 From: Ivan Kylchik Date: Mon, 12 Dec 2022 15:56:04 +0100 Subject: [PATCH] Reuse some available variables in JVM backend --- .../org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt | 4 ++-- .../org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt | 4 ++-- .../jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt | 2 +- .../kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt index e56df90d715..8da1c9268b1 100644 --- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt +++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/inlineCodegenUtils.kt @@ -56,9 +56,9 @@ const val NUMBERED_FUNCTION_PREFIX = "kotlin/jvm/functions/Function" const val INLINE_FUN_VAR_SUFFIX = "\$iv" internal const val FIRST_FUN_LABEL = "$$$$\$ROOT$$$$$" -internal const val SPECIAL_TRANSFORMATION_NAME = "\$special" +const val SPECIAL_TRANSFORMATION_NAME = "\$special" const val INLINE_TRANSFORMATION_SUFFIX = "\$inlined" -internal const val INLINE_CALL_TRANSFORMATION_SUFFIX = "$$INLINE_TRANSFORMATION_SUFFIX" +const val INLINE_CALL_TRANSFORMATION_SUFFIX = "$$INLINE_TRANSFORMATION_SUFFIX" internal const val INLINE_FUN_THIS_0_SUFFIX = "\$inline_fun" internal const val DEFAULT_LAMBDA_FAKE_CALL = "$$\$DEFAULT_LAMBDA_FAKE_CALL$$$" internal const val CAPTURED_FIELD_FOLD_PREFIX = "$$$" diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt index 76cf848da2d..b497d93146a 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ClassCodegen.kt @@ -131,9 +131,9 @@ class ClassCodegen private constructor( private val regeneratedObjectNameGenerators = mutableMapOf() fun getRegeneratedObjectNameGenerator(function: IrFunction): NameGenerator { - val name = if (function.name.isSpecial) "special" else function.name.asString() + val name = if (function.name.isSpecial) SPECIAL_TRANSFORMATION_NAME else "\$${function.name.asString()}" return regeneratedObjectNameGenerators.getOrPut(name) { - NameGenerator("${type.internalName}\$$name\$\$inlined") + NameGenerator("${type.internalName}$name$INLINE_CALL_TRANSFORMATION_SUFFIX") } } diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt index 06a22dbbe75..7c9ac9e4312 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/ExpressionCodegen.kt @@ -1359,7 +1359,7 @@ class ExpressionCodegen( val clauseStart = markNewLabel() val parameter = clause.catchParameter val descriptorType = parameter.asmType - val index = frameMap.enter(clause.catchParameter, descriptorType) + val index = frameMap.enter(parameter, descriptorType) clause.markLineNumber(true) mv.store(index, descriptorType) val afterStore = markNewLabel() diff --git a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt index f7c460392fe..e01809d2c5f 100644 --- a/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt +++ b/compiler/ir/backend.jvm/codegen/src/org/jetbrains/kotlin/backend/jvm/codegen/IrSourceCompilerForInline.kt @@ -98,7 +98,7 @@ class IrSourceCompilerForInline( override fun generateFinallyBlocks(finallyNode: MethodNode, curFinallyDepth: Int, returnType: Type, afterReturnLabel: Label, target: Label?) { ExpressionCodegen( codegen.irFunction, codegen.signature, codegen.frameMap, InstructionAdapter(finallyNode), codegen.classCodegen, - codegen.smap, codegen.reifiedTypeParametersUsages + sourceMapper, codegen.reifiedTypeParametersUsages ).also { it.finallyDepth = curFinallyDepth }.generateFinallyBlocksIfNeeded(returnType, afterReturnLabel, data, target)