[1/8] tcg: improve profiler

Submitted by Aurelien Jarno on Sept. 6, 2012, 3 p.m.

Details

Message ID 1346943657-17256-2-git-send-email-aurelien@aurel32.net
State New
Headers show

Commit Message

Aurelien Jarno Sept. 6, 2012, 3 p.m.
Now that there are two passes of optimization (optimize.c, liveness)
there is no point of outputing the statistics of the liveness part
only. Update the code to take into account both optimizations.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
---
 tcg/tcg.c |   18 ++++++++++--------
 tcg/tcg.h |    2 +-
 2 files changed, 11 insertions(+), 9 deletions(-)

Patch hide | download patch | download mbox

diff --git a/tcg/tcg.c b/tcg/tcg.c
index 8386b70..8907b9f 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -2059,22 +2059,23 @@  static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf,
     }
 #endif
 
+#ifdef CONFIG_PROFILER
+    s->opt_time -= profile_getclock();
+#endif
+
 #ifdef USE_TCG_OPTIMIZATIONS
     gen_opparam_ptr =
         tcg_optimize(s, gen_opc_ptr, gen_opparam_buf, tcg_op_defs);
 #endif
-
-#ifdef CONFIG_PROFILER
-    s->la_time -= profile_getclock();
-#endif
     tcg_liveness_analysis(s);
+
 #ifdef CONFIG_PROFILER
-    s->la_time += profile_getclock();
+    s->opt_time += profile_getclock();
 #endif
 
 #ifdef DEBUG_DISAS
     if (unlikely(qemu_loglevel_mask(CPU_LOG_TB_OP_OPT))) {
-        qemu_log("OP after liveness analysis:\n");
+        qemu_log("OP after optimization:\n");
         tcg_dump_ops(s);
         qemu_log("\n");
     }
@@ -2241,8 +2242,9 @@  void tcg_dump_info(FILE *f, fprintf_function cpu_fprintf)
                 (double)s->interm_time / tot * 100.0);
     cpu_fprintf(f, "  gen_code time     %0.1f%%\n", 
                 (double)s->code_time / tot * 100.0);
-    cpu_fprintf(f, "liveness/code time  %0.1f%%\n", 
-                (double)s->la_time / (s->code_time ? s->code_time : 1) * 100.0);
+    cpu_fprintf(f, "optim./code time    %0.1f%%\n",
+                (double)s->opt_time / (s->code_time ? s->code_time : 1)
+                * 100.0);
     cpu_fprintf(f, "cpu_restore count   %" PRId64 "\n",
                 s->restore_count);
     cpu_fprintf(f, "  avg cycles        %0.1f\n",
diff --git a/tcg/tcg.h b/tcg/tcg.h
index d710694..7d63db5 100644
--- a/tcg/tcg.h
+++ b/tcg/tcg.h
@@ -381,7 +381,7 @@  struct TCGContext {
     int64_t code_out_len;
     int64_t interm_time;
     int64_t code_time;
-    int64_t la_time;
+    int64_t opt_time;
     int64_t restore_count;
     int64_t restore_time;
 #endif