From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 34916 invoked by alias); 31 Jul 2015 21:31:29 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 34897 invoked by uid 89); 31 Jul 2015 21:31:28 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.98.7 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 X-Spam-Status: No, score=-2.1 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com From: David Malcolm To: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org Cc: David Malcolm Subject: [PATCH 0/2] Refactoring of timevar API Date: Thu, 01 Jan 2015 00:00:00 -0000 Message-Id: <1438379154-9333-1-git-send-email-dmalcolm@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-SW-Source: 2015-q3/txt/msg00128.txt.bz2 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