[JS IR] fix IC (KT-49878 fixed)

This commit is contained in:
Anton Bannykh
2021-12-01 16:16:55 +03:00
parent bca9f19c86
commit 038514ed65
@@ -44,6 +44,7 @@ import org.jetbrains.kotlin.ir.backend.js.codegen.JsGenerationGranularity
import org.jetbrains.kotlin.ir.backend.js.ic.*
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformerTmp
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImplForJsIC
import org.jetbrains.kotlin.ir.declarations.persistent.PersistentIrFactory
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
import org.jetbrains.kotlin.js.config.*
@@ -213,31 +214,24 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
MainModule.Klib(includes)
}
val perFileCache = usePerFileInvalidator(configurationJs)
val start = System.currentTimeMillis()
val updated = if (perFileCache) {
actualizeCacheForModule(includes, outputFilePath, configurationJs, libraries, icCaches, IrFactoryImpl, ::buildCacheForModuleFiles)
} else {
buildCache(
cachePath = outputFilePath,
project = projectJs,
mainModule = mainModule,
configuration = config.configuration,
dependencies = libraries,
friendDependencies = friendLibraries,
icCache = checkCaches(libraries, icCaches, skipLib = mainModule.libPath)
)
}
val updated = actualizeCacheForModule(
includes,
outputFilePath,
configurationJs,
libraries,
icCaches,
IrFactoryImplForJsIC(WholeWorldStageController()),
::buildCacheForModuleFiles
)
val invalidationType = if (perFileCache) "per-file" else "per-module"
if (updated) {
messageCollector.report(INFO, "IC $invalidationType cache building duration: ${System.currentTimeMillis() - start}ms")
messageCollector.report(INFO, "IC per-file cache building duration: ${System.currentTimeMillis() - start}ms")
} else {
messageCollector.report(
INFO,
"IC $invalidationType cache up-to-date check duration: ${System.currentTimeMillis() - start}ms"
"IC per-file cache up-to-date check duration: ${System.currentTimeMillis() - start}ms"
)
}
return OK
@@ -337,7 +331,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
PhaseConfig(wasmPhases),
IrFactoryImpl,
exportedDeclarations = setOf(FqName("main")),
emitNameSection = arguments.wasmDebug,
emitNameSection = arguments.wasmDebug,
)
val outputWasmFile = outputFile.withReplacedExtensionOrNull(outputFile.extension, "wasm")!!
outputWasmFile.writeBytes(res.wasm)