IR: thread pool in PerformByIrFilePhase

This commit is contained in:
Georgy Bronnikov
2020-11-05 09:59:38 +03:00
parent eae416d739
commit 52b3cb362b
5 changed files with 32 additions and 21 deletions
@@ -115,10 +115,11 @@ class K2JVMCompilerArguments : CommonCompilerArguments() {
var doNotClearBindingContext: Boolean by FreezableVar(false)
@Argument(
value = "-Xir-run-lowerings-in-parallel",
description = "When using the IR backend, run lowerings for each file in parallel"
value = "-Xir-threads-for-file-lowerings",
description = "When using the IR backend, run lowerings by file in N parallel threads.\n" +
"Default value is 1"
)
var runLoweringsInParallel: Boolean by FreezableVar(false)
var threadsForFileLowerings: String by FreezableVar("1")
@Argument(value = "-Xmodule-path", valueDescription = "<path>", description = "Paths where to find Java 9+ modules")
var javaModulePath: String? by NullableStringFreezableVar(null)
@@ -292,7 +292,7 @@ fun CompilerConfiguration.configureAdvancedJvmOptions(arguments: K2JVMCompilerAr
arguments.declarationsOutputPath?.let { put(JVMConfigurationKeys.DECLARATIONS_JSON_PATH, it) }
put(CommonConfigurationKeys.RUN_LOWERINGS_IN_PARALLEL, arguments.runLoweringsInParallel)
put(CommonConfigurationKeys.THREADS_FOR_FILE_LOWERINGS, arguments.threadsForFileLowerings.toIntOrNull() ?: 1)
}
fun CompilerConfiguration.configureKlibPaths(arguments: K2JVMCompilerArguments) {