From ee42b35581d394afa1bbb228051b1a102be57419 Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Thu, 6 Jun 2019 12:33:53 +0300 Subject: [PATCH] Split up IR header onto separate tables --- .../org/jetbrains/kotlin/backend/konan/CompilerOutput.kt | 4 +--- .../kotlin/backend/konan/serialization/KonanIrlinker.kt | 9 +++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt index 8f996837b23..68140ced357 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/CompilerOutput.kt @@ -106,9 +106,7 @@ internal fun produceOutput(context: Context) { context.config.includeBinaries, neededLibraries, context.serializedMetadata!!, - // During serializer and library commonizations we've got duplicate SerializedIr in - // two different packages. TODO: Eliminate them eventually. - SerializedIr(context.serializedIr!!.module, context.serializedIr!!.combinedDeclarationFilePath), + context.serializedIr!!, versions, target, output, diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt index 2b9a401757f..9712aab39c6 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/serialization/KonanIrlinker.kt @@ -42,6 +42,15 @@ class KonanIrLinker( override fun reader(moduleDescriptor: ModuleDescriptor, uniqId: UniqId) = moduleDescriptor.konanLibrary!!.irDeclaration(uniqId.index, uniqId.isLocal) + override fun readSymbol(moduleDescriptor: ModuleDescriptor, symbolIndex: Int) = + moduleDescriptor.konanLibrary!!.symbol(symbolIndex) + + override fun readType(moduleDescriptor: ModuleDescriptor, typeIndex: Int) = + moduleDescriptor.konanLibrary!!.type(typeIndex) + + override fun readString(moduleDescriptor: ModuleDescriptor, stringIndex: Int) = + moduleDescriptor.konanLibrary!!.string(stringIndex) + override val ModuleDescriptor.irHeader get() = this.konanLibrary!!.irHeader val modules: Map get() = mutableMapOf().apply {