Skip to content

Commit 4e5eaa0

Browse files
committed
Add compiler IRMeasurement to build reports
#KT-65091: Fixed
1 parent 4c93351 commit 4e5eaa0

File tree

4 files changed

+29
-2
lines changed

4 files changed

+29
-2
lines changed

compiler/build-tools/kotlin-build-statistics/src/org/jetbrains/kotlin/build/report/metrics/BuildPerformanceMetric.kt

+5-1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,10 @@ enum class GradleBuildPerformanceMetric(
8080
CODE_GENERATED_LINES_NUMBER(parent = COMPILE_ITERATION, "Number of lines for code generation", type = ValueType.NUMBER),
8181
ANALYSIS_LPS(parent = COMPILE_ITERATION, "Analysis lines per second", type = ValueType.NUMBER),
8282
CODE_GENERATION_LPS(parent = COMPILE_ITERATION, "Code generation lines per second", type = ValueType.NUMBER),
83+
IR_TRANSLATION_LINES_NUMBER(COMPILE_ITERATION, "Compiler IR translation line number", ValueType.NUMBER),
84+
IR_LOWERING_LINES_NUMBER(COMPILE_ITERATION, "Compiler IR lowering line number", ValueType.NUMBER),
85+
IR_GENERATION_LINES_NUMBER(COMPILE_ITERATION, "Compiler IR generation line number", ValueType.NUMBER),
86+
8387

8488
// Metrics for the `kotlin.incremental.useClasspathSnapshot` feature
8589
CLASSPATH_ENTRY_SNAPSHOT_TRANSFORM_EXECUTION_COUNT(
@@ -161,7 +165,7 @@ enum class GradleBuildPerformanceMetric(
161165
}
162166

163167
companion object {
164-
const val serialVersionUID = 1L
168+
const val serialVersionUID = 2L
165169

166170
val children by lazy {
167171
entries.filter { it.parent != null }.groupBy { it.parent }

compiler/build-tools/kotlin-build-statistics/src/org/jetbrains/kotlin/build/report/metrics/BuildTime.kt

+4-1
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,9 @@ enum class GradleBuildTime(private val parent: GradleBuildTime? = null, private
106106
COMPILER_INITIALIZATION(COMPILER_PERFORMANCE, "Compiler initialization time"),
107107
CODE_ANALYSIS(COMPILER_PERFORMANCE, "Compiler code analysis"),
108108
CODE_GENERATION(COMPILER_PERFORMANCE, "Compiler code generation"),
109+
IR_TRANSLATION(COMPILER_PERFORMANCE, "Compiler IR translation"),
110+
IR_LOWERING(COMPILER_PERFORMANCE, "Compiler IR lowering"),
111+
IR_GENERATION(COMPILER_PERFORMANCE, "Compiler IR generation"),
109112
IC_WRITE_HISTORY_FILE(INCREMENTAL_COMPILATION_DAEMON, "Write history file"),
110113
SHRINK_AND_SAVE_CURRENT_CLASSPATH_SNAPSHOT_AFTER_COMPILATION(INCREMENTAL_COMPILATION_DAEMON, "Shrink and save current classpath snapshot after compilation"),
111114
INCREMENTAL_SHRINK_CURRENT_CLASSPATH_SNAPSHOT(SHRINK_AND_SAVE_CURRENT_CLASSPATH_SNAPSHOT_AFTER_COMPILATION, "Shrink current classpath snapshot incrementally"),
@@ -139,7 +142,7 @@ enum class GradleBuildTime(private val parent: GradleBuildTime? = null, private
139142
override fun getName(): String = this.name
140143

141144
companion object {
142-
const val serialVersionUID = 1L
145+
const val serialVersionUID = 2L
143146

144147
val children by lazy {
145148
entries.filter { it.parent != null }.groupBy { it.parent }

compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalCompilerRunner.kt

+14
Original file line numberDiff line numberDiff line change
@@ -659,7 +659,21 @@ abstract class IncrementalCompilerRunner<
659659
}
660660
}
661661
}
662+
is IRMeasurement -> {
663+
when (it.kind) {
664+
IRMeasurement.Kind.TRANSLATION -> reportIrMeasurements(it, GradleBuildTime.IR_TRANSLATION, GradleBuildPerformanceMetric.IR_TRANSLATION_LINES_NUMBER)
665+
IRMeasurement.Kind.LOWERING -> reportIrMeasurements(it, GradleBuildTime.IR_LOWERING, GradleBuildPerformanceMetric.IR_LOWERING_LINES_NUMBER)
666+
IRMeasurement.Kind.GENERATION -> reportIrMeasurements(it, GradleBuildTime.IR_GENERATION, GradleBuildPerformanceMetric.IR_GENERATION_LINES_NUMBER)
667+
}
668+
}
662669
}
663670
}
664671
}
672+
673+
private fun reportIrMeasurements(it: IRMeasurement, timeMetric: GradleBuildTime, lineMetric: GradleBuildPerformanceMetric) {
674+
reporter.addTimeMetricMs(timeMetric, it.milliseconds)
675+
it.lines?.also {
676+
reporter.addMetric(lineMetric, it.toLong())
677+
}
678+
}
665679
}

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/BuildReportsIT.kt

+6
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,12 @@ class BuildReportsIT : KGPBaseTest() {
152152
"Compiler code analysis:",
153153
"Compiler code generation:",
154154
"Compiler initialization time:",
155+
"Compiler IR translation line number:",
156+
"Compiler IR lowering line number:",
157+
"Compiler IR generation line number:",
158+
"Compiler IR translation:",
159+
"Compiler IR lowering:",
160+
"Compiler IR generation:",
155161
)
156162
}
157163
}

0 commit comments

Comments
 (0)