From c817ae9f4e307144061b6f7b8d0690a8472b558c Mon Sep 17 00:00:00 2001 From: Igor Chevdar Date: Thu, 13 Aug 2020 12:06:38 +0500 Subject: [PATCH] [IR] Adopted common constants folding lowering --- .../jetbrains/kotlin/backend/konan/KonanLoweringPhases.kt | 7 +++++++ .../org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt | 1 + 2 files changed, 8 insertions(+) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLoweringPhases.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLoweringPhases.kt index cdfe54419d0..7c859edddb2 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLoweringPhases.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/KonanLoweringPhases.kt @@ -7,6 +7,7 @@ import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesExtractionFr import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineFunctionsLowering import org.jetbrains.kotlin.backend.common.lower.inline.LocalClassesInInlineLambdasLowering import org.jetbrains.kotlin.backend.common.lower.loops.ForLoopsLowering +import org.jetbrains.kotlin.backend.common.lower.optimizations.FoldConstantLowering import org.jetbrains.kotlin.backend.common.phaser.* import org.jetbrains.kotlin.backend.konan.lower.* import org.jetbrains.kotlin.backend.konan.lower.FinallyBlocksLowering @@ -352,4 +353,10 @@ internal val ifNullExpressionsFusionPhase = makeKonanFileLoweringPhase( ::IfNullExpressionsFusionLowering, name = "IfNullExpressionsFusionLowering", description = "Simplify '?.' and '?:' operator chains" +) + +internal val foldConstantLoweringPhase = makeKonanFileOpPhase( + { context, irFile -> FoldConstantLowering(context).lower(irFile) }, + name = "FoldConstantLowering", + description = "Constant Folding" ) \ No newline at end of file diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt index 21ed5a183a7..48adc5a4c84 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/ToplevelPhases.kt @@ -363,6 +363,7 @@ internal val allLoweringsPhase = NamedCompilerPhase( enumConstructorsPhase, initializersPhase, localFunctionsPhase, + foldConstantLoweringPhase, tailrecPhase, defaultParameterExtentPhase, innerClassPhase,