Report use-ir flag from Gradle
#KT-39924 Fixed
This commit is contained in:
+11
-4
@@ -11,10 +11,7 @@ import org.gradle.api.invocation.Gradle
|
|||||||
import org.gradle.api.plugins.JavaPluginConvention
|
import org.gradle.api.plugins.JavaPluginConvention
|
||||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||||
import org.gradle.jvm.tasks.Jar
|
import org.gradle.jvm.tasks.Jar
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.*
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
import org.jetbrains.kotlin.daemon.client.CompileServiceSession
|
import org.jetbrains.kotlin.daemon.client.CompileServiceSession
|
||||||
import org.jetbrains.kotlin.daemon.common.CompilerId
|
import org.jetbrains.kotlin.daemon.common.CompilerId
|
||||||
@@ -26,6 +23,7 @@ import org.jetbrains.kotlin.gradle.plugin.internal.state.TaskLoggers
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinWithJavaTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
|
import org.jetbrains.kotlin.gradle.plugin.mpp.isMain
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.ownModuleName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.ownModuleName
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTaskData
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileTaskData
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
||||||
import org.jetbrains.kotlin.gradle.utils.archivePathCompatible
|
import org.jetbrains.kotlin.gradle.utils.archivePathCompatible
|
||||||
@@ -33,6 +31,7 @@ import org.jetbrains.kotlin.gradle.utils.newTmpFile
|
|||||||
import org.jetbrains.kotlin.gradle.utils.relativeToRoot
|
import org.jetbrains.kotlin.gradle.utils.relativeToRoot
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalModuleEntry
|
import org.jetbrains.kotlin.incremental.IncrementalModuleEntry
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
||||||
|
import org.jetbrains.kotlin.statistics.metrics.BooleanMetrics
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.ref.WeakReference
|
import java.lang.ref.WeakReference
|
||||||
|
|
||||||
@@ -114,6 +113,14 @@ internal open class GradleCompilerRunner(protected val task: Task) {
|
|||||||
compilerArgs.version = false
|
compilerArgs.version = false
|
||||||
}
|
}
|
||||||
val argsArray = ArgumentUtils.convertArgumentsToStringList(compilerArgs).toTypedArray()
|
val argsArray = ArgumentUtils.convertArgumentsToStringList(compilerArgs).toTypedArray()
|
||||||
|
KotlinBuildStatsService.applyIfInitialised {
|
||||||
|
if (compilerArgs is K2JVMCompilerArguments) {
|
||||||
|
val args = K2JVMCompilerArguments()
|
||||||
|
parseCommandLineArguments(argsArray.toList(), args)
|
||||||
|
KotlinBuildStatsService.getInstance()?.report(BooleanMetrics.JVM_COMPILER_IR_MODE, args.useIR)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val incrementalCompilationEnvironment = environment.incrementalCompilationEnvironment
|
val incrementalCompilationEnvironment = environment.incrementalCompilationEnvironment
|
||||||
val modulesInfo = incrementalCompilationEnvironment?.let { buildModulesInfo(project.gradle) }
|
val modulesInfo = incrementalCompilationEnvironment?.let { buildModulesInfo(project.gradle) }
|
||||||
val workArgs = GradleKotlinCompilerWorkArguments(
|
val workArgs = GradleKotlinCompilerWorkArguments(
|
||||||
|
|||||||
+17
@@ -118,6 +118,23 @@ internal abstract class KotlinBuildStatsService internal constructor() : BuildAd
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Invokes provided collector if the reporting service is initialised.
|
||||||
|
* The duration of collector's wall time is reported into overall overhead metric.
|
||||||
|
*/
|
||||||
|
fun applyIfInitialised(collector: (IStatisticsValuesConsumer) -> Unit) {
|
||||||
|
getInstance()?.apply {
|
||||||
|
try {
|
||||||
|
val duration = measureTimeMillis {
|
||||||
|
collector.invoke(this)
|
||||||
|
}
|
||||||
|
this.report(NumericalMetrics.STATISTICS_COLLECT_METRICS_OVERHEAD, duration)
|
||||||
|
} catch (e: Throwable) {
|
||||||
|
logException("Could collect statistics metrics", e)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
internal fun getLogger() = Logging.getLogger(KotlinBuildStatsService::class.java)
|
internal fun getLogger() = Logging.getLogger(KotlinBuildStatsService::class.java)
|
||||||
|
|
||||||
|
|||||||
+1
@@ -36,6 +36,7 @@ enum class BooleanMetrics(val type: BooleanOverridePolicy, val anonymization: Bo
|
|||||||
KOTLIN_OFFICIAL_CODESTYLE(OVERRIDE, SAFE),
|
KOTLIN_OFFICIAL_CODESTYLE(OVERRIDE, SAFE),
|
||||||
KOTLIN_PROGRESSIVE_MODE(OVERRIDE, SAFE),
|
KOTLIN_PROGRESSIVE_MODE(OVERRIDE, SAFE),
|
||||||
KOTLIN_KTS_USED(OR, SAFE),
|
KOTLIN_KTS_USED(OR, SAFE),
|
||||||
|
JVM_COMPILER_IR_MODE(OR, SAFE),
|
||||||
|
|
||||||
// User scenarios
|
// User scenarios
|
||||||
DEBUGGER_ENABLED(OVERRIDE, SAFE),
|
DEBUGGER_ENABLED(OVERRIDE, SAFE),
|
||||||
|
|||||||
+1
@@ -48,6 +48,7 @@ enum class NumericalMetrics(val type: NumberOverridePolicy, val anonymization: N
|
|||||||
NUMBER_OF_SUBPROJECTS(SUM, RANDOM_10_PERCENT),
|
NUMBER_OF_SUBPROJECTS(SUM, RANDOM_10_PERCENT),
|
||||||
|
|
||||||
STATISTICS_VISIT_ALL_PROJECTS_OVERHEAD(SUM, RANDOM_10_PERCENT),
|
STATISTICS_VISIT_ALL_PROJECTS_OVERHEAD(SUM, RANDOM_10_PERCENT),
|
||||||
|
STATISTICS_COLLECT_METRICS_OVERHEAD(SUM, RANDOM_10_PERCENT),
|
||||||
|
|
||||||
// User scenarios
|
// User scenarios
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user