Record the number of ops that are removed during optimization.
To be copied into TBStatistics when desired.

Signed-off-by: Richard Henderson <richard.hender...@linaro.org>
---
 include/tcg/tcg.h | 1 +
 tcg/tcg.c         | 2 ++
 2 files changed, 3 insertions(+)

diff --git a/include/tcg/tcg.h b/include/tcg/tcg.h
index e49574b7c7..d60349878f 100644
--- a/include/tcg/tcg.h
+++ b/include/tcg/tcg.h
@@ -566,6 +566,7 @@ struct TCGContext {
 
     /* Used by TBStatistics */
     int orig_nb_ops;
+    int nb_deleted_ops;
 
     /* Exit to translator on overflow. */
     sigjmp_buf jmp_trans;
diff --git a/tcg/tcg.c b/tcg/tcg.c
index e90b0a0c69..60be2f429c 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1494,6 +1494,7 @@ void tcg_func_start(TCGContext *s)
 
     s->nb_ops = 0;
     s->nb_labels = 0;
+    s->nb_deleted_ops = 0;
     s->current_frame_offset = s->frame_start;
 
 #ifdef CONFIG_DEBUG_TCG
@@ -3049,6 +3050,7 @@ void tcg_op_remove(TCGContext *s, TCGOp *op)
     QTAILQ_REMOVE(&s->ops, op, link);
     QTAILQ_INSERT_TAIL(&s->free_ops, op, link);
     s->nb_ops--;
+    s->nb_deleted_ops++;
 }
 
 void tcg_remove_ops_after(TCGOp *op)
-- 
2.34.1


Reply via email to