[K/N] Fix inlining of property setters by replacing ReturnsInsertion lowering
This commit is contained in:
-7
@@ -376,13 +376,6 @@ internal val autoboxPhase = makeKonanFileLoweringPhase(
|
|||||||
prerequisite = setOf(bridgesPhase, coroutinesPhase)
|
prerequisite = setOf(bridgesPhase, coroutinesPhase)
|
||||||
)
|
)
|
||||||
|
|
||||||
internal val returnsInsertionPhase = makeKonanFileLoweringPhase(
|
|
||||||
::ReturnsInsertionLowering,
|
|
||||||
name = "ReturnsInsertion",
|
|
||||||
description = "Returns insertion for Unit functions",
|
|
||||||
prerequisite = setOf(autoboxPhase, coroutinesPhase, enumClassPhase)
|
|
||||||
)
|
|
||||||
|
|
||||||
internal val ifNullExpressionsFusionPhase = makeKonanFileLoweringPhase(
|
internal val ifNullExpressionsFusionPhase = makeKonanFileLoweringPhase(
|
||||||
::IfNullExpressionsFusionLowering,
|
::IfNullExpressionsFusionLowering,
|
||||||
name = "IfNullExpressionsFusionLowering",
|
name = "IfNullExpressionsFusionLowering",
|
||||||
|
|||||||
+1
-1
@@ -231,7 +231,6 @@ internal val allLoweringsPhase = NamedCompilerPhase(
|
|||||||
typeOperatorPhase,
|
typeOperatorPhase,
|
||||||
bridgesPhase,
|
bridgesPhase,
|
||||||
autoboxPhase,
|
autoboxPhase,
|
||||||
returnsInsertionPhase,
|
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
actions = setOf(defaultDumper, ::moduleValidationCallback)
|
actions = setOf(defaultDumper, ::moduleValidationCallback)
|
||||||
@@ -379,6 +378,7 @@ internal val bitcodePhase = NamedCompilerPhase(
|
|||||||
generateDebugInfoHeaderPhase then
|
generateDebugInfoHeaderPhase then
|
||||||
propertyAccessorInlinePhase then // Have to run after link dependencies phase, because fields
|
propertyAccessorInlinePhase then // Have to run after link dependencies phase, because fields
|
||||||
// from dependencies can be changed during lowerings.
|
// from dependencies can be changed during lowerings.
|
||||||
|
returnsInsertionPhase then
|
||||||
escapeAnalysisPhase then
|
escapeAnalysisPhase then
|
||||||
localEscapeAnalysisPhase then
|
localEscapeAnalysisPhase then
|
||||||
codegenPhase then
|
codegenPhase then
|
||||||
|
|||||||
+8
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.backend.common.phaser.namedUnitPhase
|
|||||||
import org.jetbrains.kotlin.backend.konan.*
|
import org.jetbrains.kotlin.backend.konan.*
|
||||||
import org.jetbrains.kotlin.backend.konan.descriptors.GlobalHierarchyAnalysis
|
import org.jetbrains.kotlin.backend.konan.descriptors.GlobalHierarchyAnalysis
|
||||||
import org.jetbrains.kotlin.backend.konan.lower.RedundantCoercionsCleaner
|
import org.jetbrains.kotlin.backend.konan.lower.RedundantCoercionsCleaner
|
||||||
|
import org.jetbrains.kotlin.backend.konan.lower.ReturnsInsertionLowering
|
||||||
import org.jetbrains.kotlin.backend.konan.optimizations.*
|
import org.jetbrains.kotlin.backend.konan.optimizations.*
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
@@ -108,6 +109,13 @@ internal val buildDFGPhase = makeKonanModuleOpPhase(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
internal val returnsInsertionPhase = makeKonanModuleOpPhase(
|
||||||
|
name = "ReturnsInsertion",
|
||||||
|
description = "Returns insertion for Unit functions",
|
||||||
|
prerequisite = setOf(autoboxPhase, coroutinesPhase, enumClassPhase),
|
||||||
|
op = { context, irModule -> irModule.files.forEach { ReturnsInsertionLowering(context).lower(it) } }
|
||||||
|
)
|
||||||
|
|
||||||
internal val devirtualizationPhase = makeKonanModuleOpPhase(
|
internal val devirtualizationPhase = makeKonanModuleOpPhase(
|
||||||
name = "Devirtualization",
|
name = "Devirtualization",
|
||||||
description = "Devirtualization",
|
description = "Devirtualization",
|
||||||
|
|||||||
Reference in New Issue
Block a user