fixup! [Wasm] added an extra dump with wasm bytecode size of functions/field
diff --git a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt
index cc7d77e..701b305 100644
--- a/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt
+++ b/compiler/cli/cli-js/src/org/jetbrains/kotlin/cli/js/K2JsIrCompiler.kt
@@ -362,7 +362,6 @@
dumpDeclarationIrSizesIfNeed(arguments.irDceDumpDeclarationIrSizesToFile, allModules, dceDumpNameCache)
val generateSourceMaps = configuration.getBoolean(JSConfigurationKeys.SOURCE_MAP)
- val symbolOffsets = if (arguments.irDceDumpDeclarationWasmSizesToFile != null) hashMapOf<IrDeclaration, Int>() else null
val res = compileWasm(
allModules = allModules,
backendContext = backendContext,
@@ -372,13 +371,13 @@
generateWat = configuration.get(JSConfigurationKeys.WASM_GENERATE_WAT, false),
generateSourceMaps = generateSourceMaps,
generateWatSourceMap = configuration.get(JSConfigurationKeys.WASM_GENERATE_WAT_SOURCE_MAP, false),
- irDeclarationWasmSizes = symbolOffsets,
+ generateWasmSizes = arguments.irDceDumpDeclarationWasmSizesToFile != null,
)
dumpDeclarationIrSizesIfNeed(
arguments.irDceDumpDeclarationWasmSizesToFile,
allModules,
dceDumpNameCache,
- symbolOffsets
+ res.symbolOffsets
)
writeCompilationResult(
diff --git a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt
index 2f6fb45..881e321 100644
--- a/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt
+++ b/compiler/ir/backend.wasm/src/org/jetbrains/kotlin/backend/wasm/compiler.kt
@@ -49,7 +49,8 @@
val wasm: ByteArray,
val sourceMap: String?,
val watSourceMap: String?,
- val functionsWatPositions: Map<IrDeclaration, SourceLocation>?
+ val functionsWatPositions: Map<IrDeclaration, SourceLocation>?,
+ val symbolOffsets: Map<IrDeclaration, Int>?
)
fun compileToLoweredIr(
@@ -107,7 +108,7 @@
generateWat: Boolean = false,
generateSourceMaps: Boolean = false,
generateWatSourceMap: Boolean = false,
- irDeclarationWasmSizes: MutableMap<IrDeclaration, Int>? = null,
+ generateWasmSizes: Boolean = false,
): WasmCompilerResult {
val compiledWasmModule = WasmCompiledModuleFragment(
backendContext.irBuiltIns,
@@ -128,11 +129,8 @@
} else {
null
}
- val wasmInstructionOffsets = if (irDeclarationWasmSizes != null) {
- hashMapOf<WasmInstr, Pair<Int, Int>>()
- } else {
- null
- }
+ val irDeclarationWasmSizes = if (generateWasmSizes) mutableMapOf<IrDeclaration, Int>() else null
+ val wasmInstructionOffsets = if (generateWasmSizes) hashMapOf<WasmInstr, Pair<Int, Int>>() else null
val os = ByteArrayOutputStream()
@@ -190,6 +188,7 @@
wasm = byteArray,
sourceMap = generateSourceMap(backendContext.configuration, sourceLocationMappings),
watSourceMap = generateSourceMap(backendContext.configuration, watSourceLocationMappings, relative = false),
+ symbolOffsets = irDeclarationWasmSizes,
functionsWatPositions = watWasmInstructionLocation?.let { transformIrWasmMapToLocationMap(compiledWasmModule.functions.defined, it) }
)
}