[PATCH 0/2] Refactoring of timevar API

David Malcolm dmalcolm@redhat.com
Fri Jul 31 21:54:00 GMT 2015


The attached two patches correspond to the first patch:
 "[PATCH 01/16] gcc: Generalization of timevar API; add gcc_jit_timer interface"
   https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00122.html
of the 16-patch kit I posted in June:
  https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00116.html

For ease of review, I've broken it up into two patches:

  * the first patch contains the changes to the core gcc directory
    (requires review)

  * the second patch contains the changes to the gcc/jit
    subdirectory (which I can self-approve).

That said, both patches require each other and would be
committed as one.

These patches are useful without needing the 15 followup patches,
in that they allow jit client code to control timing, leading to
more meaningful benchmark results).

For further motivation, see:
  https://gcc.gnu.org/ml/gcc-patches/2015-06/msg00122.html

(as well as the split into a pair of patches, there are some
small changes to the jit side relative to that earlier patch).

Successfully bootstrapped & regrtested the combination of the two
patches on x86_64-pc-linux-gnu (Fedora 20) with all languages
other than ada [1].

jit.sum goes from 8494 to 8514 passes.

Are the non-jit parts OK for trunk?

[1] I ran into:
 a-chlat1.ads:16:08: warning: unrecognized pragma "Compiler_Unit_Warning"
on ada, which is apparently unrelated.

David Malcolm (2):
  gcc parts of timer refactoring
  jit: add timing API

 gcc/jit/docs/topics/compatibility.rst              |  21 ++
 gcc/jit/docs/topics/contexts.rst                   |   3 +-
 gcc/jit/docs/topics/index.rst                      |   1 +
 gcc/jit/docs/topics/performance.rst                | 240 ++++++++++++++++++++
 gcc/jit/jit-playback.c                             |  11 +-
 gcc/jit/jit-playback.h                             |   2 +
 gcc/jit/jit-recording.c                            |   2 +
 gcc/jit/jit-recording.h                            |   7 +
 gcc/jit/libgccjit++.h                              | 117 ++++++++++
 gcc/jit/libgccjit.c                                | 109 +++++++++
 gcc/jit/libgccjit.h                                |  84 +++++++
 gcc/jit/libgccjit.map                              |  12 +
 gcc/main.c                                         |   2 +-
 gcc/testsuite/jit.dg/test-benchmark.c              |  20 +-
 .../jit.dg/test-error-gcc_jit_timer_pop-mismatch.c |  22 ++
 .../jit.dg/test-error-gcc_jit_timer_pop-too-many.c |  21 ++
 gcc/timevar.c                                      | 247 ++++++++++++++++++---
 gcc/timevar.def                                    |   2 +
 gcc/timevar.h                                      |  35 ++-
 gcc/toplev.c                                       |  18 +-
 gcc/toplev.h                                       |   4 +-
 21 files changed, 926 insertions(+), 54 deletions(-)
 create mode 100644 gcc/jit/docs/topics/performance.rst
 create mode 100644 gcc/testsuite/jit.dg/test-error-gcc_jit_timer_pop-mismatch.c
 create mode 100644 gcc/testsuite/jit.dg/test-error-gcc_jit_timer_pop-too-many.c

-- 
1.8.5.3



More information about the Gcc-patches mailing list