Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(81)

Unified Diff: runtime/vm/compiler_stats.h

Issue 1127383008: Fix CompilerStats info (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « runtime/vm/compiler.cc ('k') | runtime/vm/compiler_stats.cc » ('j') | runtime/vm/isolate.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698