From fafa2b1a67f701353d650df63e798cce00b0398c Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Tue, 24 Jan 2023 15:00:23 +0200 Subject: [PATCH] [K/N] Support prerequisites in phase builders --- .../jetbrains/kotlin/backend/konan/driver/phases/Lowerings.kt | 4 +++- .../kotlin/backend/konan/driver/phases/PhaseBuilders.kt | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Lowerings.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Lowerings.kt index 9c70b72256b..27316ed62db 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Lowerings.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/Lowerings.kt @@ -232,11 +232,13 @@ private fun PhaseEngine.convertToNativeGeneration( private fun createFileLoweringPhase( name: String, description: String, - lowering: (NativeGenerationState) -> FileLoweringPass + lowering: (NativeGenerationState) -> FileLoweringPass, + prerequisite: Set> = emptySet(), ): SimpleNamedCompilerPhase = createSimpleNamedCompilerPhase( name, description, postactions = fileLoweringActions, + prerequisite = prerequisite, outputIfNotEnabled = { _, _, _, irFile -> irFile }, op = { context, irFile -> lowering(context).lower(irFile) diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/PhaseBuilders.kt b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/PhaseBuilders.kt index 863ffe917af..cabda73812c 100644 --- a/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/PhaseBuilders.kt +++ b/kotlin-native/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/driver/phases/PhaseBuilders.kt @@ -13,6 +13,7 @@ internal fun createSimpleNamedCompiler description: String, preactions: Set> = emptySet(), postactions: Set> = emptySet(), + prerequisite: Set> = emptySet(), outputIfNotEnabled: (PhaseConfigurationService, PhaserState, Context, Input) -> Output, op: (Context, Input) -> Output ): SimpleNamedCompilerPhase = object : SimpleNamedCompilerPhase( @@ -22,6 +23,7 @@ internal fun createSimpleNamedCompiler postactions = postactions.map { f -> fun(actionState: ActionState, data: Pair, context: Context) = f(actionState, data.second, context) }.toSet(), + prerequisite = prerequisite, ) { override fun outputIfNotEnabled(phaseConfig: PhaseConfigurationService, phaserState: PhaserState, context: Context, input: Input): Output = outputIfNotEnabled(phaseConfig, phaserState, context, input) @@ -35,6 +37,7 @@ internal fun createSimpleNamedCompilerPhase( description: String, preactions: Set> = emptySet(), postactions: Set> = emptySet(), + prerequisite: Set> = emptySet(), op: (Context, Input) -> Unit ): SimpleNamedCompilerPhase = object : SimpleNamedCompilerPhase( name, @@ -43,6 +46,7 @@ internal fun createSimpleNamedCompilerPhase( postactions = postactions.map { f -> fun(actionState: ActionState, data: Pair, context: Context) = f(actionState, data.first, context) }.toSet(), + prerequisite = prerequisite, ) { override fun outputIfNotEnabled(phaseConfig: PhaseConfigurationService, phaserState: PhaserState, context: Context, input: Input) {}