From 6a791632059dc85374e8df7e274db8defaef22de Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Wed, 5 Apr 2023 15:48:47 +0300 Subject: [PATCH] [K/N][IR] Extracted a common util function --- .../src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt | 2 ++ .../src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt | 2 -- .../src/org/jetbrains/kotlin/backend/konan/llvm/IrToBitcode.kt | 1 + .../konan/optimizations/StaticInitializersOptimization.kt | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt index 1a44c1c3e97..53c8bb3b7de 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/backend/common/ir/IrUtils.kt @@ -144,3 +144,5 @@ fun IrFunction.getAdapteeFromAdaptedForReferenceFunction() : IrFunction? { if (call !is IrFunctionAccessExpression) unknownStructure() return call.symbol.owner } + +fun IrBranch.isUnconditional(): Boolean = (condition as? IrConst<*>)?.value == true diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt index a0abc75b22d..e5e8421f008 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ir/NewIrUtils.kt @@ -89,8 +89,6 @@ fun buildSimpleAnnotation(irBuiltIns: IrBuiltIns, startOffset: Int, endOffset: I internal fun IrExpression.isBoxOrUnboxCall() = (this is IrCall && symbol.owner.origin == DECLARATION_ORIGIN_INLINE_CLASS_SPECIAL_FUNCTION) -internal fun IrBranch.isUnconditional(): Boolean = (condition as? IrConst<*>)?.value == true - internal val IrFunctionAccessExpression.actualCallee: IrFunction get() { val callee = symbol.owner 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 0544f6d2022..27289e8b828 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 @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.konan.llvm import kotlinx.cinterop.* import llvm.* import org.jetbrains.kotlin.backend.common.ir.inlineFunction +import org.jetbrains.kotlin.backend.common.ir.isUnconditional import org.jetbrains.kotlin.backend.common.lower.coroutines.getOrCreateFunctionWithContinuationStub import org.jetbrains.kotlin.backend.common.lower.inline.InlinerExpressionLocationHint import org.jetbrains.kotlin.backend.konan.* diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt index 6bbe18769b4..41efad84037 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/optimizations/StaticInitializersOptimization.kt @@ -6,13 +6,13 @@ package org.jetbrains.kotlin.backend.konan.optimizations import org.jetbrains.kotlin.backend.common.copy +import org.jetbrains.kotlin.backend.common.ir.isUnconditional import org.jetbrains.kotlin.backend.common.lower.createIrBuilder import org.jetbrains.kotlin.backend.common.lower.irBlock import org.jetbrains.kotlin.backend.konan.Context import org.jetbrains.kotlin.backend.konan.DirectedGraphCondensationBuilder import org.jetbrains.kotlin.backend.konan.DirectedGraphMultiNode import org.jetbrains.kotlin.backend.konan.ir.actualCallee -import org.jetbrains.kotlin.backend.konan.ir.isUnconditional import org.jetbrains.kotlin.backend.konan.ir.isVirtualCall import org.jetbrains.kotlin.backend.konan.logMultiple import org.jetbrains.kotlin.backend.konan.lower.*