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) } ) }