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

Side by Side 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_COMPILER_STATS_H_ 5 #ifndef VM_COMPILER_STATS_H_
6 #define VM_COMPILER_STATS_H_ 6 #define VM_COMPILER_STATS_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/flags.h" 9 #include "vm/flags.h"
10 #include "vm/isolate.h"
10 #include "vm/timer.h" 11 #include "vm/timer.h"
11 12
12 13
13 14
14 namespace dart { 15 namespace dart {
15 16
16 DECLARE_FLAG(bool, compiler_stats); 17 DECLARE_FLAG(bool, compiler_stats);
17 18
18 class CompilerStats : AllStatic { 19 // TODO(hausner): Might want to expose some of these values in the
20 // observatory. Use the metrics mechanism (metrics.h) for this.
21
22 class CompilerStats {
19 public: 23 public:
20 static int64_t num_tokens_total; 24 explicit CompilerStats(Isolate* isolate);
21 static int64_t num_literal_tokens_total; 25 ~CompilerStats() { }
22 static int64_t num_ident_tokens_total;
23 static int64_t num_tokens_consumed;
24 static int64_t num_token_checks;
25 static int64_t num_tokens_rewind;
26 static int64_t num_tokens_lookahead;
27 26
28 static int64_t num_lib_cache_hit; 27 Isolate* isolate_;
29 static int64_t num_names_cached;
30 static int64_t make_accessor_name;
31 static int64_t make_field_name;
32 28
33 static int64_t num_classes_compiled; 29 // 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 :)
34 static int64_t num_functions_compiled; 30 // in the isolate?
35 static int64_t num_implicit_final_getters; 31 Timer parser_timer; // Cumulative runtime of parser.
36 static int64_t num_static_initializer_funcs; 32 Timer scanner_timer; // Cumulative runtime of scanner.
33 Timer codegen_timer; // Cumulative runtime of code generator.
34 Timer graphbuilder_timer; // Included in codegen_timer.
35 Timer ssa_timer; // Included in codegen_timer.
36 Timer graphinliner_timer; // Included in codegen_timer.
37 Timer graphinliner_parse_timer; // Included in codegen_timer.
38 Timer graphinliner_build_timer; // Included in codegen_timer.
39 Timer graphinliner_ssa_timer; // Included in codegen_timer.
40 Timer graphinliner_opt_timer; // Included in codegen_timer.
41 Timer graphinliner_subst_timer; // Included in codegen_timer.
37 42
38 static int64_t src_length; // Total number of characters in source. 43 Timer graphoptimizer_timer; // Included in codegen_timer.
39 static int64_t code_allocated; // Bytes allocated for generated code. 44 Timer graphcompiler_timer; // Included in codegen_timer.
40 static Timer parser_timer; // Cumulative runtime of parser. 45 Timer codefinalizer_timer; // Included in codegen_timer.
41 static Timer scanner_timer; // Cumulative runtime of scanner.
42 static Timer codegen_timer; // Cumulative runtime of code generator.
43 static Timer graphbuilder_timer; // Included in codegen_timer.
44 static Timer ssa_timer; // Included in codegen_timer.
45 static Timer graphinliner_timer; // Included in codegen_timer.
46 static Timer graphinliner_parse_timer; // Included in codegen_timer.
47 static Timer graphinliner_build_timer; // Included in codegen_timer.
48 static Timer graphinliner_ssa_timer; // Included in codegen_timer.
49 static Timer graphinliner_opt_timer; // Included in codegen_timer.
50 static Timer graphinliner_find_timer; // Included in codegen_timer.
51 static Timer graphinliner_plug_timer; // Included in codegen_timer.
52 static Timer graphinliner_subst_timer; // Included in codegen_timer.
53 46
54 static Timer graphoptimizer_timer; // Included in codegen_timer. 47 int64_t num_tokens_total;
55 static Timer graphcompiler_timer; // Included in codegen_timer. 48 int64_t num_literal_tokens_total;
56 static Timer codefinalizer_timer; // Included in codegen_timer. 49 int64_t num_ident_tokens_total;
50 int64_t num_tokens_consumed;
51 int64_t num_token_checks;
52 int64_t num_tokens_rewind;
53 int64_t num_tokens_lookahead;
57 54
58 static void Print(); 55 int64_t num_classes_compiled;
56 int64_t num_functions_compiled;
57 int64_t num_implicit_final_getters;
58
59 int64_t src_length; // Total number of characters in source.
60 int64_t total_code_size; // Bytes allocated for code and meta info.
61 int64_t total_instr_size; // Total size of generated code in bytes.
62 int64_t pc_desc_size;
63 int64_t vardesc_size;
64
65 void Print();
59 }; 66 };
60 67
68 #define INC_STAT(isolate, counter, incr) \
69 if (FLAG_compiler_stats) { (isolate)->compiler_stats()->counter += (incr); }
70
71 #define CSTAT_TIMER_SCOPE(iso, t) \
72 TimerScope timer(FLAG_compiler_stats, \
73 FLAG_compiler_stats ? &((iso)->compiler_stats()->t) : NULL, \
74 iso);
siva 2015/05/12 22:12:31 indent of backslash seems off.
hausner 2015/05/12 22:49:53 Done.
61 75
62 } // namespace dart 76 } // namespace dart
63 77
64 #endif // VM_COMPILER_STATS_H_ 78 #endif // VM_COMPILER_STATS_H_
OLDNEW
« 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