[Wasm] A name cache to distinguish same named declarations in DCE dump

This commit is contained in:
Sergei Kharitontcev-Beglov
2023-07-05 15:57:01 +02:00
committed by Space Team
parent bc0afc36a2
commit 34c6afec5e
8 changed files with 65 additions and 32 deletions
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.backend.wasm.dce
import org.jetbrains.kotlin.backend.wasm.WasmBackendContext
import org.jetbrains.kotlin.ir.IrElement
import org.jetbrains.kotlin.ir.backend.js.dce.DceDumpNameCache
import org.jetbrains.kotlin.ir.backend.js.utils.*
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrBody
@@ -16,7 +17,7 @@ import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
import org.jetbrains.kotlin.ir.visitors.acceptVoid
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
fun eliminateDeadDeclarations(modules: List<IrModuleFragment>, context: WasmBackendContext) {
fun eliminateDeadDeclarations(modules: List<IrModuleFragment>, context: WasmBackendContext, dceDumpNameCache: DceDumpNameCache) {
val printReachabilityInfo =
context.configuration.getBoolean(JSConfigurationKeys.PRINT_REACHABILITY_INFO) ||
java.lang.Boolean.getBoolean("kotlin.wasm.dce.print.reachability.info")
@@ -29,7 +30,7 @@ fun eliminateDeadDeclarations(modules: List<IrModuleFragment>, context: WasmBack
context = context,
printReachabilityInfo = printReachabilityInfo,
dumpReachabilityInfoToFile
).collectDeclarations(rootDeclarations = buildRoots(modules, context))
).collectDeclarations(rootDeclarations = buildRoots(modules, context), dceDumpNameCache)
val remover = WasmUselessDeclarationsRemover(context, usefulDeclarations)
modules.onAllFiles {