From b92580937a51f1aa5e37d2a458a56d36fbac9e3f Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Mon, 16 May 2022 17:35:18 +0500 Subject: [PATCH] [K/N][codegen] Slightly refactored invocation of CAdapterGenerator --- .../org/jetbrains/kotlin/backend/konan/CompilerOutput.kt | 3 +++ .../src/org/jetbrains/kotlin/backend/konan/Context.kt | 5 ----- .../org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt | 7 +++---- .../org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt index c1012c9e1e7..ba246d8416e 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt @@ -36,6 +36,9 @@ val KonanConfig.isFinalBinary: Boolean get() = when (this.produce) { CompilerOutputKind.FRAMEWORK -> !omitFrameworkBinary } +val CompilerOutputKind.isNativeLibrary: Boolean + get() = this == CompilerOutputKind.DYNAMIC || this == CompilerOutputKind.STATIC + val CompilerOutputKind.involvesBitcodeGeneration: Boolean get() = this != CompilerOutputKind.LIBRARY diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt index 07154ef4e1a..f3e19824280 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/Context.kt @@ -346,11 +346,6 @@ internal class Context(config: KonanConfig) : KonanBackendContext(config) { var referencedFunctions: Set? = null - val isNativeLibrary: Boolean by lazy { - val kind = config.configuration.get(KonanConfigKeys.PRODUCE) - kind == CompilerOutputKind.DYNAMIC || kind == CompilerOutputKind.STATIC - } - internal val stdlibModule get() = this.builtIns.any.module diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt index 36c63252973..9a426e4d0cb 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt @@ -95,10 +95,8 @@ internal val objCExportPhase = konanUnitPhase( internal val buildCExportsPhase = konanUnitPhase( op = { - if (this.isNativeLibrary) { - this.cAdapterGenerator = CAdapterGenerator(this).also { - it.buildExports(this.symbolTable!!) - } + this.cAdapterGenerator = CAdapterGenerator(this).also { + it.buildExports(this.symbolTable!!) } }, name = "BuildCExports", @@ -481,6 +479,7 @@ internal fun PhaseConfig.konanPhasesConfig(config: KonanConfig) { disableUnless(saveAdditionalCacheInfoPhase, config.produce.isCache && config.lazyIrForCaches) disableUnless(finalizeCachePhase, config.produce.isCache) disableUnless(exportInternalAbiPhase, config.produce.isCache) + disableUnless(buildCExportsPhase, config.produce.isNativeLibrary) disableIf(backendCodegen, config.produce == CompilerOutputKind.LIBRARY || config.omitFrameworkBinary || config.produce == CompilerOutputKind.PRELIMINARY_CACHE) disableUnless(checkExternalCallsPhase, getBoolean(KonanConfigKeys.CHECK_EXTERNAL_CALLS)) disableUnless(rewriteExternalCallsCheckerGlobals, getBoolean(KonanConfigKeys.CHECK_EXTERNAL_CALLS)) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt index 0a700e0500b..3835168f52a 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt @@ -443,7 +443,7 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map