From 79cce48aa9ee38ad49d814225c4f83fe1355bfa2 Mon Sep 17 00:00:00 2001 From: Artem Kobzar Date: Wed, 21 Feb 2024 13:30:12 +0000 Subject: [PATCH] [K/Wasm] Add enum entries comparison optimization --- .../org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt | 2 +- .../jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt index 4fd9ac4769b..c5e1e6a00d8 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/JsLoweringPhases.kt @@ -363,7 +363,7 @@ private val forLoopsLoweringPhase = makeIrModulePhase( private val enumWhenPhase = makeIrModulePhase( ::EnumWhenLowering, name = "EnumWhenLowering", - description = "Replace `when` subjects of enum types with their ordinals" + description = "[Optimization] Replace `when` subjects of enum types with their ordinals" ) private val propertyLazyInitLoweringPhase = makeIrModulePhase( diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt index 4f74a00f615..21b1957d0f0 100644 --- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt +++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/WasmLoweringPhases.kt @@ -202,6 +202,12 @@ private val jsInteropFunctionCallsLowering = makeIrModulePhase( description = "Replace calls to delegates", ) +private val enumWhenPhase = makeIrModulePhase( + ::EnumWhenLowering, + name = "EnumWhenLowering", + description = "[Optimization] Replace `when` subjects of enum types with their ordinals" +) + private val enumClassConstructorLoweringPhase = makeIrModulePhase( ::EnumClassConstructorLowering, name = "EnumClassConstructorLowering", @@ -646,6 +652,7 @@ val loweringList = listOf( tailrecLoweringPhase, + enumWhenPhase, enumClassConstructorLoweringPhase, enumClassConstructorBodyLoweringPhase, enumEntryInstancesLoweringPhase,