[JS IR] Pass a js generation granularity param to IC infrastructure

This commit is contained in:
Alexander Korepanov
2022-10-18 17:03:23 +02:00
committed by Space Team
parent f2971504e1
commit 621e361366
4 changed files with 18 additions and 14 deletions
@@ -9,6 +9,7 @@ import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
import org.jetbrains.kotlin.backend.common.phaser.PhaserState
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.backend.js.codegen.JsGenerationGranularity
import org.jetbrains.kotlin.ir.backend.js.ic.JsIrCompilerICInterface
import org.jetbrains.kotlin.ir.backend.js.lower.collectNativeImplementations
import org.jetbrains.kotlin.ir.backend.js.lower.generateJsTests
@@ -23,6 +24,7 @@ import org.jetbrains.kotlin.psi2ir.descriptors.IrBuiltInsOverDescriptors
class JsIrCompilerWithIC(
private val mainModule: IrModuleFragment,
configuration: CompilerConfiguration,
granularity: JsGenerationGranularity,
exportedDeclarations: Set<FqName> = emptySet(),
es6mode: Boolean = false
) : JsIrCompilerICInterface {
@@ -41,6 +43,7 @@ class JsIrCompilerWithIC(
keep = emptySet(),
configuration = configuration,
es6mode = es6mode,
granularity = granularity,
icCompatibleIr2Js = IcCompatibleIr2Js.IC_MODE,
)
}
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.ir.backend.js.ic
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.ir.backend.js.*
import org.jetbrains.kotlin.ir.backend.js.codegen.JsGenerationGranularity
import org.jetbrains.kotlin.ir.backend.js.lower.serialization.ir.JsIrLinker
import org.jetbrains.kotlin.ir.backend.js.transformers.irToJs.JsIrFragmentAndBinaryAst
import org.jetbrains.kotlin.ir.declarations.*
@@ -755,7 +756,7 @@ fun rebuildCacheForDirtyFiles(
currentIrModule.files.filter { irFile -> irFile.fileEntry.name in files }
} ?: currentIrModule.files
val compilerWithIC = JsIrCompilerWithIC(currentIrModule, configuration, exportedDeclarations)
val compilerWithIC = JsIrCompilerWithIC(currentIrModule, configuration, JsGenerationGranularity.PER_MODULE, exportedDeclarations)
// Load declarations referenced during `context` initialization
jsIrLinker.loadUnboundSymbols(true)