[K2] Move IRTranslation perf calculation inside convertToIr* methods

This commit is contained in:
Ivan Kylchik
2024-03-05 16:28:19 +01:00
committed by Space Team
parent 8275c92cd4
commit fd961452b3
4 changed files with 10 additions and 13 deletions
@@ -236,6 +236,10 @@ fun transformFirToIr(
}
val firResult = FirResult(firOutputs)
val performanceManager = moduleStructure.compilerConfiguration[CLIConfigurationKeys.PERF_MANAGER]
performanceManager?.notifyIRTranslationStarted()
return firResult.convertToIrAndActualize(
fir2IrExtensions,
Fir2IrConfiguration.forKlibCompilation(moduleStructure.compilerConfiguration, diagnosticsReporter),
@@ -247,6 +251,8 @@ fun transformFirToIr(
actualizerTypeContextProvider = ::IrTypeSystemContextImpl
) { _, irPart ->
(irPart.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
}.also {
performanceManager?.notifyIRTranslationFinished()
}
}
@@ -154,14 +154,10 @@ object FirKotlinToJvmBytecodeCompiler {
return null
}
performanceManager?.notifyIRTranslationStarted()
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
val fir2IrAndIrActualizerResult =
firResult.convertToIrAndActualizeForJvm(fir2IrExtensions, configuration, diagnosticsReporter, irGenerationExtensions)
performanceManager?.notifyIRTranslationFinished()
performanceManager?.notifyGenerationStarted()
val generationState = runBackend(
fir2IrExtensions,
@@ -133,13 +133,9 @@ fun compileModulesUsingFrontendIrAndLightTree(
return false
}
performanceManager?.notifyIRTranslationStarted()
val compilerEnvironment = ModuleCompilerEnvironment(projectEnvironment, diagnosticsReporter)
val irInput = convertAnalyzedFirToIr(compilerInput, analysisResults, compilerEnvironment)
performanceManager?.notifyIRTranslationFinished()
performanceManager?.notifyGenerationStarted()
val codegenOutput = generateCodeFromIr(irInput, compilerEnvironment, performanceManager)
@@ -192,6 +188,9 @@ fun FirResult.convertToIrAndActualizeForJvm(
diagnosticsReporter: DiagnosticReporter,
irGeneratorExtensions: Collection<IrGenerationExtension>,
): Fir2IrActualizedResult {
val performanceManager = configuration[CLIConfigurationKeys.PERF_MANAGER]
performanceManager?.notifyIRTranslationStarted()
val fir2IrConfiguration = Fir2IrConfiguration.forJvmCompilation(configuration, diagnosticsReporter)
return convertToIrAndActualize(
@@ -203,7 +202,7 @@ fun FirResult.convertToIrAndActualizeForJvm(
FirJvmVisibilityConverter,
DefaultBuiltIns.Instance,
::JvmIrTypeSystemContext,
)
).also { performanceManager?.notifyIRTranslationFinished() }
}
fun generateCodeFromIr(
@@ -263,16 +263,12 @@ open class IncrementalFirJvmCompilerRunner(
val cycleResult = firIncrementalCycle() ?: return ExitCode.COMPILATION_ERROR to allCompiledSources
performanceManager?.notifyIRTranslationStarted()
val extensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
val irGenerationExtensions = projectEnvironment.project.let { IrGenerationExtension.getInstances(it) }
val (irModuleFragment, components, pluginContext, irActualizedResult) = cycleResult.convertToIrAndActualizeForJvm(
extensions, configuration, compilerEnvironment.diagnosticsReporter, irGenerationExtensions,
)
performanceManager?.notifyIRTranslationFinished()
performanceManager?.notifyGenerationStarted()
val irInput = ModuleCompilerIrBackendInput(
targetId,