[JS IR] fix IC (KT-49878 fixed)
This commit is contained in:
@@ -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.ic.*
|
||||||
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.IrModuleToJsTransformer
|
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.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.ir.declarations.persistent.PersistentIrFactory
|
||||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||||
import org.jetbrains.kotlin.js.config.*
|
import org.jetbrains.kotlin.js.config.*
|
||||||
@@ -213,31 +214,24 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
|||||||
MainModule.Klib(includes)
|
MainModule.Klib(includes)
|
||||||
}
|
}
|
||||||
|
|
||||||
val perFileCache = usePerFileInvalidator(configurationJs)
|
|
||||||
|
|
||||||
val start = System.currentTimeMillis()
|
val start = System.currentTimeMillis()
|
||||||
|
|
||||||
val updated = if (perFileCache) {
|
val updated = actualizeCacheForModule(
|
||||||
actualizeCacheForModule(includes, outputFilePath, configurationJs, libraries, icCaches, IrFactoryImpl, ::buildCacheForModuleFiles)
|
includes,
|
||||||
} else {
|
outputFilePath,
|
||||||
buildCache(
|
configurationJs,
|
||||||
cachePath = outputFilePath,
|
libraries,
|
||||||
project = projectJs,
|
icCaches,
|
||||||
mainModule = mainModule,
|
IrFactoryImplForJsIC(WholeWorldStageController()),
|
||||||
configuration = config.configuration,
|
::buildCacheForModuleFiles
|
||||||
dependencies = libraries,
|
)
|
||||||
friendDependencies = friendLibraries,
|
|
||||||
icCache = checkCaches(libraries, icCaches, skipLib = mainModule.libPath)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
val invalidationType = if (perFileCache) "per-file" else "per-module"
|
|
||||||
if (updated) {
|
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 {
|
} else {
|
||||||
messageCollector.report(
|
messageCollector.report(
|
||||||
INFO,
|
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
|
return OK
|
||||||
@@ -337,7 +331,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
|||||||
PhaseConfig(wasmPhases),
|
PhaseConfig(wasmPhases),
|
||||||
IrFactoryImpl,
|
IrFactoryImpl,
|
||||||
exportedDeclarations = setOf(FqName("main")),
|
exportedDeclarations = setOf(FqName("main")),
|
||||||
emitNameSection = arguments.wasmDebug,
|
emitNameSection = arguments.wasmDebug,
|
||||||
)
|
)
|
||||||
val outputWasmFile = outputFile.withReplacedExtensionOrNull(outputFile.extension, "wasm")!!
|
val outputWasmFile = outputFile.withReplacedExtensionOrNull(outputFile.extension, "wasm")!!
|
||||||
outputWasmFile.writeBytes(res.wasm)
|
outputWasmFile.writeBytes(res.wasm)
|
||||||
|
|||||||
Reference in New Issue
Block a user