[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 firResult = FirResult(firOutputs)
val performanceManager = moduleStructure.compilerConfiguration[CLIConfigurationKeys.PERF_MANAGER]
performanceManager?.notifyIRTranslationStarted()
return firResult.convertToIrAndActualize( return firResult.convertToIrAndActualize(
fir2IrExtensions, fir2IrExtensions,
Fir2IrConfiguration.forKlibCompilation(moduleStructure.compilerConfiguration, diagnosticsReporter), Fir2IrConfiguration.forKlibCompilation(moduleStructure.compilerConfiguration, diagnosticsReporter),
@@ -247,6 +251,8 @@ fun transformFirToIr(
actualizerTypeContextProvider = ::IrTypeSystemContextImpl actualizerTypeContextProvider = ::IrTypeSystemContextImpl
) { _, irPart -> ) { _, irPart ->
(irPart.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors } (irPart.irModuleFragment.descriptor as? FirModuleDescriptor)?.let { it.allDependencyModules = librariesDescriptors }
}.also {
performanceManager?.notifyIRTranslationFinished()
} }
} }
@@ -154,14 +154,10 @@ object FirKotlinToJvmBytecodeCompiler {
return null return null
} }
performanceManager?.notifyIRTranslationStarted()
val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler) val fir2IrExtensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
val fir2IrAndIrActualizerResult = val fir2IrAndIrActualizerResult =
firResult.convertToIrAndActualizeForJvm(fir2IrExtensions, configuration, diagnosticsReporter, irGenerationExtensions) firResult.convertToIrAndActualizeForJvm(fir2IrExtensions, configuration, diagnosticsReporter, irGenerationExtensions)
performanceManager?.notifyIRTranslationFinished()
performanceManager?.notifyGenerationStarted() performanceManager?.notifyGenerationStarted()
val generationState = runBackend( val generationState = runBackend(
fir2IrExtensions, fir2IrExtensions,
@@ -133,13 +133,9 @@ fun compileModulesUsingFrontendIrAndLightTree(
return false return false
} }
performanceManager?.notifyIRTranslationStarted()
val compilerEnvironment = ModuleCompilerEnvironment(projectEnvironment, diagnosticsReporter) val compilerEnvironment = ModuleCompilerEnvironment(projectEnvironment, diagnosticsReporter)
val irInput = convertAnalyzedFirToIr(compilerInput, analysisResults, compilerEnvironment) val irInput = convertAnalyzedFirToIr(compilerInput, analysisResults, compilerEnvironment)
performanceManager?.notifyIRTranslationFinished()
performanceManager?.notifyGenerationStarted() performanceManager?.notifyGenerationStarted()
val codegenOutput = generateCodeFromIr(irInput, compilerEnvironment, performanceManager) val codegenOutput = generateCodeFromIr(irInput, compilerEnvironment, performanceManager)
@@ -192,6 +188,9 @@ fun FirResult.convertToIrAndActualizeForJvm(
diagnosticsReporter: DiagnosticReporter, diagnosticsReporter: DiagnosticReporter,
irGeneratorExtensions: Collection<IrGenerationExtension>, irGeneratorExtensions: Collection<IrGenerationExtension>,
): Fir2IrActualizedResult { ): Fir2IrActualizedResult {
val performanceManager = configuration[CLIConfigurationKeys.PERF_MANAGER]
performanceManager?.notifyIRTranslationStarted()
val fir2IrConfiguration = Fir2IrConfiguration.forJvmCompilation(configuration, diagnosticsReporter) val fir2IrConfiguration = Fir2IrConfiguration.forJvmCompilation(configuration, diagnosticsReporter)
return convertToIrAndActualize( return convertToIrAndActualize(
@@ -203,7 +202,7 @@ fun FirResult.convertToIrAndActualizeForJvm(
FirJvmVisibilityConverter, FirJvmVisibilityConverter,
DefaultBuiltIns.Instance, DefaultBuiltIns.Instance,
::JvmIrTypeSystemContext, ::JvmIrTypeSystemContext,
) ).also { performanceManager?.notifyIRTranslationFinished() }
} }
fun generateCodeFromIr( fun generateCodeFromIr(
@@ -263,16 +263,12 @@ open class IncrementalFirJvmCompilerRunner(
val cycleResult = firIncrementalCycle() ?: return ExitCode.COMPILATION_ERROR to allCompiledSources val cycleResult = firIncrementalCycle() ?: return ExitCode.COMPILATION_ERROR to allCompiledSources
performanceManager?.notifyIRTranslationStarted()
val extensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler) val extensions = JvmFir2IrExtensions(configuration, JvmIrDeserializerImpl(), JvmIrMangler)
val irGenerationExtensions = projectEnvironment.project.let { IrGenerationExtension.getInstances(it) } val irGenerationExtensions = projectEnvironment.project.let { IrGenerationExtension.getInstances(it) }
val (irModuleFragment, components, pluginContext, irActualizedResult) = cycleResult.convertToIrAndActualizeForJvm( val (irModuleFragment, components, pluginContext, irActualizedResult) = cycleResult.convertToIrAndActualizeForJvm(
extensions, configuration, compilerEnvironment.diagnosticsReporter, irGenerationExtensions, extensions, configuration, compilerEnvironment.diagnosticsReporter, irGenerationExtensions,
) )
performanceManager?.notifyIRTranslationFinished()
performanceManager?.notifyGenerationStarted() performanceManager?.notifyGenerationStarted()
val irInput = ModuleCompilerIrBackendInput( val irInput = ModuleCompilerIrBackendInput(
targetId, targetId,