Allow to pass external performance manager to compiler
This commit is contained in:
@@ -45,7 +45,7 @@ abstract class CLICompiler<A : CommonCompilerArguments> : CLITool<A>() {
|
|||||||
|
|
||||||
protected abstract val performanceManager: CommonCompilerPerformanceManager
|
protected abstract val performanceManager: CommonCompilerPerformanceManager
|
||||||
|
|
||||||
protected open fun createPerformanceManager(arguments: A): CommonCompilerPerformanceManager = performanceManager
|
protected open fun createPerformanceManager(arguments: A, services: Services): CommonCompilerPerformanceManager = performanceManager
|
||||||
|
|
||||||
// Used in CompilerRunnerUtil#invokeExecMethod, in Eclipse plugin (KotlinCLICompiler) and in kotlin-gradle-plugin (GradleCompilerRunner)
|
// Used in CompilerRunnerUtil#invokeExecMethod, in Eclipse plugin (KotlinCLICompiler) and in kotlin-gradle-plugin (GradleCompilerRunner)
|
||||||
fun execAndOutputXml(errStream: PrintStream, services: Services, vararg args: String): ExitCode {
|
fun execAndOutputXml(errStream: PrintStream, services: Services, vararg args: String): ExitCode {
|
||||||
@@ -58,7 +58,7 @@ abstract class CLICompiler<A : CommonCompilerArguments> : CLITool<A>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public override fun execImpl(messageCollector: MessageCollector, services: Services, arguments: A): ExitCode {
|
public override fun execImpl(messageCollector: MessageCollector, services: Services, arguments: A): ExitCode {
|
||||||
val performanceManager = createPerformanceManager(arguments)
|
val performanceManager = createPerformanceManager(arguments, services)
|
||||||
if (arguments.reportPerf || arguments.dumpPerf != null) {
|
if (arguments.reportPerf || arguments.dumpPerf != null) {
|
||||||
performanceManager.enableCollectingPerformanceStatistics()
|
performanceManager.enableCollectingPerformanceStatistics()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -267,7 +267,9 @@ class K2JVMCompiler : CLICompiler<K2JVMCompilerArguments>() {
|
|||||||
override val performanceManager: CommonCompilerPerformanceManager
|
override val performanceManager: CommonCompilerPerformanceManager
|
||||||
get() = error("Unsupported")
|
get() = error("Unsupported")
|
||||||
|
|
||||||
override fun createPerformanceManager(arguments: K2JVMCompilerArguments): CommonCompilerPerformanceManager {
|
override fun createPerformanceManager(arguments: K2JVMCompilerArguments, services: Services): CommonCompilerPerformanceManager {
|
||||||
|
val externalManager = services[CommonCompilerPerformanceManager::class.java]
|
||||||
|
if (externalManager != null) return externalManager
|
||||||
val argument = arguments.profileCompilerCommand ?: return K2JVMCompilerPerformanceManager()
|
val argument = arguments.profileCompilerCommand ?: return K2JVMCompilerPerformanceManager()
|
||||||
return ProfilingCompilerPerformanceManager.create(argument)
|
return ProfilingCompilerPerformanceManager.create(argument)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user