From a07066f98b608a80fc451fab5fa36cef10d83c24 Mon Sep 17 00:00:00 2001 From: Pavel Kunyavskiy Date: Thu, 9 Jun 2022 16:28:10 +0200 Subject: [PATCH] [K/N] Make overridden runtime variables available during stdlib lto --- .../backend/konan/RuntimeLinkageStrategy.kt | 5 +- .../kotlin/backend/konan/llvm/IrToBitcode.kt | 48 +++++++++---------- .../src/main/cpp/CompilerConstants.hpp | 2 +- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeLinkageStrategy.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeLinkageStrategy.kt index dfedc9c288a..3593987c3e3 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeLinkageStrategy.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/RuntimeLinkageStrategy.kt @@ -8,10 +8,9 @@ package org.jetbrains.kotlin.backend.konan import llvm.LLVMModuleCreateWithNameInContext import llvm.LLVMModuleRef import llvm.LLVMStripModuleDebugInfo -import org.jetbrains.kotlin.backend.konan.llvm.getName +import org.jetbrains.kotlin.backend.konan.llvm.* import org.jetbrains.kotlin.backend.konan.llvm.llvmContext import org.jetbrains.kotlin.backend.konan.llvm.llvmLinkModules2 -import org.jetbrains.kotlin.backend.konan.llvm.parseBitcodeFile /** * To avoid combinatorial explosion, we split runtime into several LLVM modules. @@ -83,6 +82,8 @@ internal sealed class RuntimeLinkageStrategy { LLVMStripModuleDebugInfo(parsedModule) } parsedModule + }?.let { + it + context.generateRuntimeConstantsModule() } return when { runtimeLlvmModules == null -> return None 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 b1ac4208b7f..0d075093a16 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 @@ -439,7 +439,6 @@ internal class CodeGeneratorVisitor(val context: Context, val lifetimes: Map