[JS IC] Support per-file invalidation in CLI

- now disabled
This commit is contained in:
Roman Artemev
2021-08-20 16:49:10 +03:00
committed by TeamCityServer
parent 001d3d8bc2
commit 22cd20781e
@@ -38,6 +38,7 @@ import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
import org.jetbrains.kotlin.incremental.js.IncrementalNextRoundChecker
import org.jetbrains.kotlin.incremental.js.IncrementalResultsConsumer
import org.jetbrains.kotlin.ir.backend.js.*
import org.jetbrains.kotlin.ir.backend.js.ic.actualizeCacheForModule
import org.jetbrains.kotlin.ir.backend.js.ic.buildCache
import org.jetbrains.kotlin.ir.backend.js.ic.checkCaches
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
@@ -72,6 +73,9 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
return K2JSCompilerArguments()
}
@Suppress("UNUSED_PARAMETER")
private fun usePerFileInvalidator(configuration: CompilerConfiguration): Boolean = false
override fun doExecute(
arguments: K2JSCompilerArguments,
configuration: CompilerConfiguration,
@@ -201,8 +205,14 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
MainModule.Klib(includes)
}
val perFileCache = usePerFileInvalidator(configuration)
val start = System.currentTimeMillis()
if (buildCache(
val updated = if (perFileCache) {
actualizeCacheForModule(includes, outputFilePath, configuration, libraries, icCaches)
} else {
buildCache(
cachePath = outputFilePath,
project = projectJs,
mainModule = mainModule,
@@ -211,10 +221,13 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
friendDependencies = friendLibraries,
icCache = checkCaches(libraries, icCaches, skipLib = mainModule.libPath)
)
) {
messageCollector.report(INFO, "IC cache building duration: ${System.currentTimeMillis() - start}ms")
}
val invalidationType = if (perFileCache) "per-file" else "per-module"
if (updated) {
messageCollector.report(INFO, "IC $invalidationType cache building duration: ${System.currentTimeMillis() - start}ms")
} else {
messageCollector.report(INFO, "IC cache up-to-date check duration: ${System.currentTimeMillis() - start}ms")
messageCollector.report(INFO, "IC $invalidationType cache up-to-date check duration: ${System.currentTimeMillis() - start}ms")
}
return OK
}