Index: runtime/vm/compiler_stats.h |
=================================================================== |
--- runtime/vm/compiler_stats.h (revision 45740) |
+++ runtime/vm/compiler_stats.h (working copy) |
@@ -7,6 +7,7 @@ |
#include "vm/allocation.h" |
#include "vm/flags.h" |
+#include "vm/isolate.h" |
#include "vm/timer.h" |
@@ -15,50 +16,63 @@ |
DECLARE_FLAG(bool, compiler_stats); |
-class CompilerStats : AllStatic { |
+// TODO(hausner): Might want to expose some of these values in the |
+// observatory. Use the metrics mechanism (metrics.h) for this. |
+ |
+class CompilerStats { |
public: |
- static int64_t num_tokens_total; |
- static int64_t num_literal_tokens_total; |
- static int64_t num_ident_tokens_total; |
- static int64_t num_tokens_consumed; |
- static int64_t num_token_checks; |
- static int64_t num_tokens_rewind; |
- static int64_t num_tokens_lookahead; |
+ explicit CompilerStats(Isolate* isolate); |
+ ~CompilerStats() { } |
- static int64_t num_lib_cache_hit; |
- static int64_t num_names_cached; |
- static int64_t make_accessor_name; |
- static int64_t make_field_name; |
+ Isolate* isolate_; |
- static int64_t num_classes_compiled; |
- static int64_t num_functions_compiled; |
- static int64_t num_implicit_final_getters; |
- static int64_t num_static_initializer_funcs; |
+ // DODO(hausner): add these timers to the timer list maintained |
siva
2015/05/12 22:12:32
TODO
hausner
2015/05/12 22:49:53
:)
|
+ // in the isolate? |
+ Timer parser_timer; // Cumulative runtime of parser. |
+ Timer scanner_timer; // Cumulative runtime of scanner. |
+ Timer codegen_timer; // Cumulative runtime of code generator. |
+ Timer graphbuilder_timer; // Included in codegen_timer. |
+ Timer ssa_timer; // Included in codegen_timer. |
+ Timer graphinliner_timer; // Included in codegen_timer. |
+ Timer graphinliner_parse_timer; // Included in codegen_timer. |
+ Timer graphinliner_build_timer; // Included in codegen_timer. |
+ Timer graphinliner_ssa_timer; // Included in codegen_timer. |
+ Timer graphinliner_opt_timer; // Included in codegen_timer. |
+ Timer graphinliner_subst_timer; // Included in codegen_timer. |
- static int64_t src_length; // Total number of characters in source. |
- static int64_t code_allocated; // Bytes allocated for generated code. |
- static Timer parser_timer; // Cumulative runtime of parser. |
- static Timer scanner_timer; // Cumulative runtime of scanner. |
- static Timer codegen_timer; // Cumulative runtime of code generator. |
- static Timer graphbuilder_timer; // Included in codegen_timer. |
- static Timer ssa_timer; // Included in codegen_timer. |
- static Timer graphinliner_timer; // Included in codegen_timer. |
- static Timer graphinliner_parse_timer; // Included in codegen_timer. |
- static Timer graphinliner_build_timer; // Included in codegen_timer. |
- static Timer graphinliner_ssa_timer; // Included in codegen_timer. |
- static Timer graphinliner_opt_timer; // Included in codegen_timer. |
- static Timer graphinliner_find_timer; // Included in codegen_timer. |
- static Timer graphinliner_plug_timer; // Included in codegen_timer. |
- static Timer graphinliner_subst_timer; // Included in codegen_timer. |
+ Timer graphoptimizer_timer; // Included in codegen_timer. |
+ Timer graphcompiler_timer; // Included in codegen_timer. |
+ Timer codefinalizer_timer; // Included in codegen_timer. |
- static Timer graphoptimizer_timer; // Included in codegen_timer. |
- static Timer graphcompiler_timer; // Included in codegen_timer. |
- static Timer codefinalizer_timer; // Included in codegen_timer. |
+ int64_t num_tokens_total; |
+ int64_t num_literal_tokens_total; |
+ int64_t num_ident_tokens_total; |
+ int64_t num_tokens_consumed; |
+ int64_t num_token_checks; |
+ int64_t num_tokens_rewind; |
+ int64_t num_tokens_lookahead; |
- static void Print(); |
+ int64_t num_classes_compiled; |
+ int64_t num_functions_compiled; |
+ int64_t num_implicit_final_getters; |
+ |
+ int64_t src_length; // Total number of characters in source. |
+ int64_t total_code_size; // Bytes allocated for code and meta info. |
+ int64_t total_instr_size; // Total size of generated code in bytes. |
+ int64_t pc_desc_size; |
+ int64_t vardesc_size; |
+ |
+ void Print(); |
}; |
+#define INC_STAT(isolate, counter, incr) \ |
+ if (FLAG_compiler_stats) { (isolate)->compiler_stats()->counter += (incr); } |
+#define CSTAT_TIMER_SCOPE(iso, t) \ |
+ TimerScope timer(FLAG_compiler_stats, \ |
+ FLAG_compiler_stats ? &((iso)->compiler_stats()->t) : NULL, \ |
+ iso); |
siva
2015/05/12 22:12:31
indent of backslash seems off.
hausner
2015/05/12 22:49:53
Done.
|
+ |
} // namespace dart |
#endif // VM_COMPILER_STATS_H_ |