Remove dependency of backend.wasm on ir.tree.impl and ir.tree.persistent

This commit is contained in:
Alexander Udalov
2021-04-01 21:24:47 +02:00
parent 643c3f26c1
commit 988d1365a8
6 changed files with 8 additions and 9 deletions
+1
View File
@@ -11,6 +11,7 @@ dependencies {
compile(project(":compiler:backend-common"))
compile(project(":compiler:ir.backend.common"))
compile(project(":compiler:ir.serialization.js"))
compile(project(":compiler:ir.tree.impl"))
compile(project(":compiler:backend.js"))
compile(project(":compiler:backend.wasm"))
compile(project(":js:js.translator"))
@@ -232,6 +232,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
AnalyzerWithCompilerReport(config.configuration),
config.configuration,
PhaseConfig(wasmPhases),
IrFactoryImpl,
allDependencies = resolvedLibraries,
friendDependencies = friendDependencies,
exportedDeclarations = setOf(FqName("main"))
@@ -11,8 +11,6 @@ dependencies {
compile(project(":compiler:ir.backend.common"))
compile(project(":compiler:ir.serialization.common"))
compile(project(":compiler:ir.serialization.js"))
compile(project(":compiler:ir.tree.persistent"))
compile(project(":compiler:ir.tree.impl"))
compile(project(":js:js.ast"))
compile(project(":js:js.frontend"))
compile(project(":compiler:backend.js"))
@@ -20,7 +20,6 @@ import org.jetbrains.kotlin.ir.backend.js.lower.JsInnerClassesSupport
import org.jetbrains.kotlin.ir.builders.declarations.buildFun
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.declarations.impl.IrFileImpl
import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns
import org.jetbrains.kotlin.ir.symbols.impl.DescriptorlessExternalPackageFragmentSymbol
@@ -39,7 +38,7 @@ class WasmBackendContext(
override val builtIns = module.builtIns
override var inVerbosePhase: Boolean = false
override val scriptMode = false
override val irFactory: IrFactory = IrFactoryImpl
override val irFactory: IrFactory = symbolTable.irFactory
// Place to store declarations excluded from code generation
private val excludedDeclarations = mutableMapOf<FqName, IrPackageFragment>()
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.backend.wasm.ir2wasm.generateStringLiteralsSupport
import org.jetbrains.kotlin.config.CompilerConfiguration
import org.jetbrains.kotlin.ir.backend.js.MainModule
import org.jetbrains.kotlin.ir.backend.js.loadIr
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.ir.declarations.IrFactory
import org.jetbrains.kotlin.ir.util.ExternalDependenciesGenerator
import org.jetbrains.kotlin.ir.util.patchDeclarationParents
import org.jetbrains.kotlin.library.KotlinLibrary
@@ -34,15 +34,13 @@ fun compileWasm(
analyzer: AbstractAnalyzerWithCompilerReport,
configuration: CompilerConfiguration,
phaseConfig: PhaseConfig,
irFactory: IrFactory,
allDependencies: KotlinLibraryResolveResult,
friendDependencies: List<KotlinLibrary>,
exportedDeclarations: Set<FqName> = emptySet()
): WasmCompilerResult {
val (moduleFragment, dependencyModules, irBuiltIns, symbolTable, deserializer) =
loadIr(
project, mainModule, analyzer, configuration, allDependencies, friendDependencies,
IrFactoryImpl
)
loadIr(project, mainModule, analyzer, configuration, allDependencies, friendDependencies, irFactory)
val allModules = when (mainModule) {
is MainModule.SourceFiles -> dependencyModules + listOf(moduleFragment)
@@ -17,6 +17,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.config.*
import org.jetbrains.kotlin.ir.backend.js.MainModule
import org.jetbrains.kotlin.ir.backend.js.loadKlib
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
import org.jetbrains.kotlin.js.config.JsConfig
import org.jetbrains.kotlin.js.facade.TranslationUnit
import org.jetbrains.kotlin.js.test.engines.ExternalTool
@@ -137,6 +138,7 @@ abstract class BasicWasmBoxTest(
analyzer = AnalyzerWithCompilerReport(config.configuration),
configuration = config.configuration,
phaseConfig = phaseConfig,
irFactory = IrFactoryImpl,
// TODO: Bypass the resolver fow wasm.
allDependencies = KotlinLibraryResolverResultImpl(listOf(KotlinResolvedLibraryImpl(wasmRuntimeKlib))),
friendDependencies = emptyList(),