[llvm-dev] Significant performance difference with a split call to opt
David Greene via llvm-dev
llvm-dev at lists.llvm.org
Fri Jun 14 13:49:24 PDT 2019
Do you have more information? What were the exact command lines you
used? Do you have an example program that demonstrates the difference
than you can share?
Sébastien Michelland via llvm-dev <llvm-dev at lists.llvm.org> writes:
> Hello list,
> This is a follow-up from a question I asked last month. I'm evaluating
> the performance of two pass sequences that resemble (but are not) -O3.
> With -O3, -debug-pass=Structure prints several independent blocks that
> seem to represent several calls to opt. I focused on two of these
> blocks, say S1 and S2, and compared the following optimization
> 1. Executing them separately, ie. opt -S1 | opt -S2
> 2. Executing them in a single call, ie. opt -S1 -S2
> I built the test suite with each of these configurations, then
> measured the performance of the compiled programs with perf, over 10
> I'm attaching a plot of the speedup of method 1 over method 2. The
> intervals represent the standard deviation of the performance
> As you can see, programs compiled with method 1 are significantly
> slower than their counterparts compiled with method 2. However, if
> passes were applied in order using function composition, their
> performance should be the same.
> I'd like to know if there is a way to recover this property in the
> pass manager, or at least explain the difference. If needed, I can
> provide scripts to reproduce the measurements.
> Sébastien Michelland
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
More information about the llvm-dev