GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING is slow

Philip Herron redbrain@gcc.gnu.org
Wed Jan 1 00:00:00 GMT 2014


What happens at different optimization levels like -O1/2/3 and is
there a way to turn on specific options like that i know i read that
the global state makes that fail.

On 14 February 2014 01:27, David Malcolm <dmalcolm@redhat.com> wrote:
> I've been experimentally porting GNU Octave's JIT to libgccjit, and I've
> got to the point where it's generating convincing-looking code for
> non-trivial loops.
>
> I got alarmed with how slow the compilation appeared to be: using
> GCC_JIT_BOOL_OPTION_DUMP_SUMMARY to emit timing information showed that
> the library was taking ~5 seconds to compile a simple loop (along with
> about 30 trivial helper functions).
>
> However, some tweaking revealed the cause of the slowdown: I had
> GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING enabled for debugging purposes.  On
> un-setting that flag, it got *much* faster.
>
> Here are some crude timings (in seconds), where "DE" =
> GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING and
> "OPT_LEVEL" = GCC_JIT_INT_OPTION_OPTIMIZATION_LEVEL.
>
> Build    DE OPT_LEVEL  usr     sys     wall   ggc
> -------  -- ---------  ----    ----    ----   ------
> Checked  1  3          3.73    1.09    4.96   5409 kB
> Release  1  3          2.65    0.96    3.74   5383 kB
> Checked  0  3          1.05    0.11    1.30   5224 kB
> Release  0  3          0.29    0.08    0.40   5198 kB
> Checked  0  0          0.38    0.05    0.47   3958 kB
> Release  0  0          0.14    0.03    0.22   3945 kB
>
> As you can see, for this test, GCC_JIT_BOOL_OPTION_DUMP_EVERYTHING slows
> things down, *much* more so than the checked vs release distinction, or
> turning on optimizations.  The effect is probably more pronounced at
> higher optimization levels, in that more optimizations means more passes
> to dump.
>
> I don't intend to try to speed up the DUMP_EVERYTHING option - I just
> wanted to warn people that it has a major impact on how long the JIT
> compile takes.
>
> Dave
>



More information about the Jit mailing list