[phases] adoption of 3d2800f99b and 3e18350a1f

This commit is contained in:
Vasily Levchenko
2019-11-27 15:33:09 +01:00
parent 5e4747bc12
commit 861bd65e34
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.backend.konan
import org.jetbrains.kotlin.backend.common.*
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
import org.jetbrains.kotlin.backend.common.phaser.*
import org.jetbrains.kotlin.backend.common.serialization.DescriptorTable
import org.jetbrains.kotlin.backend.common.serialization.metadata.KlibMetadataMonolithicSerializer
@@ -193,6 +194,16 @@ internal val psiToIrPhase = konanUnitPhase(
irModules = deserializer.modules.filterValues { llvmModuleSpecification.containsModule(it) }
ir.symbols = symbols
val extensions = IrGenerationExtension.getInstances(config.project)
extensions.forEach { extension ->
extension.generate(irModule!!, IrPluginContext(irModule!!.descriptor,
bindingContext, config.languageVersionSettings,
symbolTable,
generatorContext.typeTranslator,
irBuiltIns
))
}
functionIrClassFactory.module =
(listOf(irModule!!) + deserializer.modules.values)
.single { it.descriptor.isKonanStdlib() }
@@ -212,19 +223,6 @@ internal val destroySymbolTablePhase = konanUnitPhase(
prerequisite = setOf(createSymbolTablePhase)
)
internal val irGeneratorPluginsPhase = konanUnitPhase(
op = {
val extensions = IrGenerationExtension.getInstances(config.project)
extensions.forEach { extension ->
irModule!!.files.forEach {
irFile -> extension.generate(irFile, this, bindingContext)
}
}
},
name = "IrGeneratorPlugins",
description = "Plugged-in ir generators"
)
// TODO: We copy default value expressions from expects to actuals before IR serialization,
// because the current infrastructure doesn't allow us to get them at deserialization stage.
// That requires some design and implementation work.
@@ -406,7 +404,6 @@ val toplevelPhase: CompilerPhase<*, Unit, Unit> = namedUnitPhase(
buildCExportsPhase then
psiToIrPhase then
destroySymbolTablePhase then
irGeneratorPluginsPhase then
copyDefaultValuesToActualPhase then
serializerPhase then
namedUnitPhase(