diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt index 237ec687ed5..e71f882f154 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt @@ -71,14 +71,6 @@ abstract class CommonCompilerArguments : CommonToolArguments() { @Argument(value = "-Xno-inline", description = "Disable method inlining") var noInline: Boolean by FreezableVar(false) - // TODO Remove in 1.0 - @Argument( - value = "-Xrepeat", - valueDescription = "", - description = "Repeat compilation (for performance analysis)" - ) - var repeat: String? by FreezableVar(null) - @Argument( value = "-Xskip-metadata-version-check", description = "Load classes with bad metadata version anyway (incl. pre-release classes)" diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java index cf93fae92ab..a00180d4026 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLICompiler.java @@ -82,50 +82,32 @@ public abstract class CLICompiler extends CLI return ExitCode.COMPILATION_ERROR; } - ExitCode exitCode = OK; - - int repeatCount = 1; - String repeat = arguments.getRepeat(); - if (repeat != null) { - try { - repeatCount = Integer.parseInt(repeat); - } - catch (NumberFormatException ignored) { - } - } - CompilationCanceledStatus canceledStatus = services.get(CompilationCanceledStatus.class); ProgressIndicatorAndCompilationCanceledStatus.setCompilationCanceledStatus(canceledStatus); - for (int i = 0; i < repeatCount; i++) { - if (i > 0) { - K2JVMCompiler.Companion.resetInitStartTime(); - } - Disposable rootDisposable = Disposer.newDisposable(); - try { - setIdeaIoUseFallback(); - ExitCode code = doExecute(arguments, configuration, rootDisposable, paths); - exitCode = groupingCollector.hasErrors() ? COMPILATION_ERROR : code; - } - catch (CompilationCanceledException e) { + Disposable rootDisposable = Disposer.newDisposable(); + try { + setIdeaIoUseFallback(); + ExitCode code = doExecute(arguments, configuration, rootDisposable, paths); + return groupingCollector.hasErrors() ? COMPILATION_ERROR : code; + } + catch (CompilationCanceledException e) { + messageCollector.report(INFO, "Compilation was canceled", null); + return ExitCode.OK; + } + catch (RuntimeException e) { + Throwable cause = e.getCause(); + if (cause instanceof CompilationCanceledException) { messageCollector.report(INFO, "Compilation was canceled", null); return ExitCode.OK; } - catch (RuntimeException e) { - Throwable cause = e.getCause(); - if (cause instanceof CompilationCanceledException) { - messageCollector.report(INFO, "Compilation was canceled", null); - return ExitCode.OK; - } - else { - throw e; - } - } - finally { - Disposer.dispose(rootDisposable); + else { + throw e; } } - return exitCode; + finally { + Disposer.dispose(rootDisposable); + } } catch (AnalysisResult.CompilationErrorException e) { return COMPILATION_ERROR; diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLITool.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLITool.kt index f9112299173..8662cb5901e 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLITool.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/CLITool.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.cli.common.arguments.validateArguments import org.jetbrains.kotlin.cli.common.messages.* import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.INFO import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.STRONG_WARNING -import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler import org.jetbrains.kotlin.cli.jvm.compiler.CompileEnvironmentException import org.jetbrains.kotlin.config.KotlinCompilerVersion import org.jetbrains.kotlin.config.Services @@ -44,8 +43,6 @@ abstract class CLITool { messageRenderer: MessageRenderer, args: Array ): ExitCode { - K2JVMCompiler.resetInitStartTime() - val arguments = createArguments() parseCommandLineArguments(args.asList(), arguments) val collector = PrintingMessageCollector(errStream, messageRenderer, arguments.verbose) diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt index 825e56d48a0..fee9cbcf7ca 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt @@ -345,15 +345,6 @@ class K2JVMCompiler : CLICompiler() { companion object { private var initStartNanos = System.nanoTime() - // allows to track GC time for each run when repeated compilation is used - private val elapsedGCTime = hashMapOf() - private var elapsedJITTime = 0L - - fun resetInitStartTime() { - if (initStartNanos == 0L) { - initStartNanos = System.nanoTime() - } - } @JvmStatic fun main(args: Array) { @@ -368,19 +359,13 @@ class K2JVMCompiler : CLICompiler() { fun reportGCTime(configuration: CompilerConfiguration) { ManagementFactory.getGarbageCollectorMXBeans().forEach { - val currentTime = it.collectionTime - val elapsedTime = elapsedGCTime.getOrElse(it.name) { 0 } - val time = currentTime - elapsedTime - reportPerf(configuration, "GC time for ${it.name} is $time ms") - elapsedGCTime[it.name] = currentTime + reportPerf(configuration, "GC time for ${it.name} is ${it.collectionTime} ms") } } fun reportCompilationTime(configuration: CompilerConfiguration) { val bean = ManagementFactory.getCompilationMXBean() ?: return - val currentTime = bean.totalCompilationTime - reportPerf(configuration, "JIT time is ${currentTime - elapsedJITTime} ms") - elapsedJITTime = currentTime + reportPerf(configuration, "JIT time is ${bean.totalCompilationTime} ms") } private fun putAdvancedOptions(configuration: CompilerConfiguration, arguments: K2JVMCompilerArguments) { diff --git a/compiler/testData/cli/js/jsExtraHelp.out b/compiler/testData/cli/js/jsExtraHelp.out index e504657eb9d..b143d6441f3 100644 --- a/compiler/testData/cli/js/jsExtraHelp.out +++ b/compiler/testData/cli/js/jsExtraHelp.out @@ -17,7 +17,6 @@ where advanced options include: -Xplugin= Load plugins from the given classpath -Xproper-ieee754-comparisons Generate proper IEEE 754 comparisons in all cases if values are statically known to be of primitive numeric types -Xread-deserialized-contracts Enable reading of contracts from metadata - -Xrepeat= Repeat compilation (for performance analysis) -Xreport-output-files Report source to output files mapping -Xskip-metadata-version-check Load classes with bad metadata version anyway (incl. pre-release classes) -Xuse-experimental= Enable usages of COMPILATION-affecting experimental API for marker annotation with the given fully qualified name diff --git a/compiler/testData/cli/jvm/extraHelp.out b/compiler/testData/cli/jvm/extraHelp.out index 261a80546ec..411ed78c232 100644 --- a/compiler/testData/cli/jvm/extraHelp.out +++ b/compiler/testData/cli/jvm/extraHelp.out @@ -59,7 +59,6 @@ where advanced options include: -Xplugin= Load plugins from the given classpath -Xproper-ieee754-comparisons Generate proper IEEE 754 comparisons in all cases if values are statically known to be of primitive numeric types -Xread-deserialized-contracts Enable reading of contracts from metadata - -Xrepeat= Repeat compilation (for performance analysis) -Xreport-output-files Report source to output files mapping -Xskip-metadata-version-check Load classes with bad metadata version anyway (incl. pre-release classes) -Xuse-experimental= Enable usages of COMPILATION-affecting experimental API for marker annotation with the given fully qualified name