diff options
Diffstat (limited to 'gcc/testsuite/jit.dg/test-benchmark.c')
-rw-r--r-- | gcc/testsuite/jit.dg/test-benchmark.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gcc/testsuite/jit.dg/test-benchmark.c b/gcc/testsuite/jit.dg/test-benchmark.c index 324ba93..4952fff 100644 --- a/gcc/testsuite/jit.dg/test-benchmark.c +++ b/gcc/testsuite/jit.dg/test-benchmark.c @@ -141,11 +141,13 @@ verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) /* Run one iteration of the test. */ static void -test_jit (const char *argv0, int opt_level) +test_jit (const char *argv0, int opt_level, gcc_jit_timer *timer) { gcc_jit_context *ctxt; gcc_jit_result *result; + gcc_jit_timer_push (timer, "test_jit"); + ctxt = gcc_jit_context_acquire (); if (!ctxt) { @@ -153,6 +155,8 @@ test_jit (const char *argv0, int opt_level) return; } + gcc_jit_context_set_timer (ctxt, timer); + /* Set up options. */ gcc_jit_context_set_str_option ( ctxt, @@ -182,13 +186,22 @@ test_jit (const char *argv0, int opt_level) GCC_JIT_BOOL_OPTION_DUMP_SUMMARY, 1); + gcc_jit_timer_push (timer, "create_code"); create_code (ctxt, NULL); + gcc_jit_timer_pop (timer, "create_code"); + gcc_jit_timer_push (timer, "compile"); result = gcc_jit_context_compile (ctxt); + gcc_jit_timer_pop (timer, "compile"); + + gcc_jit_timer_push (timer, "verify_code"); verify_code (ctxt, result); + gcc_jit_timer_pop (timer, "verify_code"); gcc_jit_context_release (ctxt); gcc_jit_result_release (result); + + gcc_jit_timer_pop (timer, "test_jit"); } /* Taken from timevar.c. */ @@ -217,16 +230,19 @@ main (int argc, char **argv) int i; double start_time, end_time, elapsed_time; start_time = get_wallclock_time (); + gcc_jit_timer *timer = gcc_jit_timer_new (); for (i = 1; i <= num_iterations; i++) { snprintf (test, sizeof (test), "%s iteration %d of %d", extract_progname (argv[0]), i, num_iterations); - test_jit (argv[0], opt_level); + test_jit (argv[0], opt_level, timer); } end_time = get_wallclock_time (); elapsed_time = end_time - start_time; + gcc_jit_timer_print (timer, stderr); + gcc_jit_timer_release (timer); pass ("%s: survived %i iterations at optlevel %i", argv[0], num_iterations, opt_level); note (("%s: %i iterations at optlevel %i" |