[K/N][IR] Extracted a common util function

This commit is contained in:
Igor Chevdar
2023-04-05 15:48:47 +03:00
parent cf58e5ff9f
commit 6a79163205
4 changed files with 4 additions and 3 deletions
@@ -144,3 +144,5 @@ fun IrFunction.getAdapteeFromAdaptedForReferenceFunction() : IrFunction? {
if (call !is IrFunctionAccessExpression) unknownStructure() if (call !is IrFunctionAccessExpression) unknownStructure()
return call.symbol.owner return call.symbol.owner
} }
fun IrBranch.isUnconditional(): Boolean = (condition as? IrConst<*>)?.value == true
@@ -89,8 +89,6 @@ fun buildSimpleAnnotation(irBuiltIns: IrBuiltIns, startOffset: Int, endOffset: I
internal fun IrExpression.isBoxOrUnboxCall() = internal fun IrExpression.isBoxOrUnboxCall() =
(this is IrCall && symbol.owner.origin == DECLARATION_ORIGIN_INLINE_CLASS_SPECIAL_FUNCTION) (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 internal val IrFunctionAccessExpression.actualCallee: IrFunction
get() { get() {
val callee = symbol.owner val callee = symbol.owner
@@ -8,6 +8,7 @@ package org.jetbrains.kotlin.backend.konan.llvm
import kotlinx.cinterop.* import kotlinx.cinterop.*
import llvm.* import llvm.*
import org.jetbrains.kotlin.backend.common.ir.inlineFunction 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.coroutines.getOrCreateFunctionWithContinuationStub
import org.jetbrains.kotlin.backend.common.lower.inline.InlinerExpressionLocationHint import org.jetbrains.kotlin.backend.common.lower.inline.InlinerExpressionLocationHint
import org.jetbrains.kotlin.backend.konan.* import org.jetbrains.kotlin.backend.konan.*
@@ -6,13 +6,13 @@
package org.jetbrains.kotlin.backend.konan.optimizations package org.jetbrains.kotlin.backend.konan.optimizations
import org.jetbrains.kotlin.backend.common.copy 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.createIrBuilder
import org.jetbrains.kotlin.backend.common.lower.irBlock import org.jetbrains.kotlin.backend.common.lower.irBlock
import org.jetbrains.kotlin.backend.konan.Context import org.jetbrains.kotlin.backend.konan.Context
import org.jetbrains.kotlin.backend.konan.DirectedGraphCondensationBuilder import org.jetbrains.kotlin.backend.konan.DirectedGraphCondensationBuilder
import org.jetbrains.kotlin.backend.konan.DirectedGraphMultiNode import org.jetbrains.kotlin.backend.konan.DirectedGraphMultiNode
import org.jetbrains.kotlin.backend.konan.ir.actualCallee 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.ir.isVirtualCall
import org.jetbrains.kotlin.backend.konan.logMultiple import org.jetbrains.kotlin.backend.konan.logMultiple
import org.jetbrains.kotlin.backend.konan.lower.* import org.jetbrains.kotlin.backend.konan.lower.*