Index: runtime/vm/object.cc |
=================================================================== |
--- runtime/vm/object.cc (revision 45719) |
+++ runtime/vm/object.cc (working copy) |
@@ -6685,6 +6685,7 @@ |
set_ic_data_array(Object::empty_array()); |
} else { |
const Array& a = Array::Handle(Array::New(count, Heap::kOld)); |
+ INC_STAT(Isolate::Current(), total_code_size, count * sizeof(uword)); |
count = 0; |
for (intptr_t i = 0; i < deopt_id_to_ic_data.length(); i++) { |
if (deopt_id_to_ic_data[i] != NULL) { |
@@ -6975,7 +6976,6 @@ |
RawString* Field::GetterName(const String& field_name) { |
- CompilerStats::make_accessor_name++; |
return String::Concat(Symbols::GetterPrefix(), field_name); |
} |
@@ -6986,7 +6986,6 @@ |
RawString* Field::SetterName(const String& field_name) { |
- CompilerStats::make_accessor_name++; |
return String::Concat(Symbols::SetterPrefix(), field_name); |
} |
@@ -6997,13 +6996,11 @@ |
RawString* Field::NameFromGetter(const String& getter_name) { |
- CompilerStats::make_field_name++; |
return String::SubString(getter_name, strlen(kGetterPrefix)); |
} |
RawString* Field::NameFromSetter(const String& setter_name) { |
- CompilerStats::make_field_name++; |
return String::SubString(setter_name, strlen(kSetterPrefix)); |
} |
@@ -7955,12 +7952,12 @@ |
Scanner::TokenDescriptor token = tokens[i]; |
if (token.kind == Token::kIDENT) { // Identifier token. |
if (FLAG_compiler_stats) { |
- CompilerStats::num_ident_tokens_total += 1; |
+ INC_STAT(Isolate::Current(), num_ident_tokens_total, 1); |
} |
data.AddIdentToken(token.literal); |
} else if (Token::NeedsLiteralToken(token.kind)) { // Literal token. |
if (FLAG_compiler_stats) { |
- CompilerStats::num_literal_tokens_total += 1; |
+ INC_STAT(Isolate::Current(), num_literal_tokens_total, 1); |
} |
data.AddLiteralToken(token); |
} else { // Keyword, pseudo keyword etc. |
@@ -7968,9 +7965,7 @@ |
data.AddSimpleToken(token.kind); |
} |
} |
- if (FLAG_compiler_stats) { |
- CompilerStats::num_tokens_total += len; |
- } |
+ INC_STAT(Isolate::Current(), num_tokens_total, len); |
siva
2015/05/12 17:39:52
Might make sense to cache Isolate::Current() in a
hausner
2015/05/12 21:52:16
Done.
|
data.AddSimpleToken(Token::kEOS); // End of stream. |
// Create and setup the token stream object. |
@@ -8301,15 +8296,13 @@ |
} |
// Get the source, scan and allocate the token stream. |
VMTagScope tagScope(isolate, VMTag::kCompileScannerTagId); |
- TimerScope timer(FLAG_compiler_stats, &CompilerStats::scanner_timer); |
+ TimerScope timer(FLAG_compiler_stats, &CSTAT_TIMER(scanner_timer)); |
const String& src = String::Handle(isolate, Source()); |
Scanner scanner(src, private_key); |
set_tokens(TokenStream::Handle(isolate, |
TokenStream::New(scanner.GetStream(), |
private_key))); |
- if (FLAG_compiler_stats) { |
- CompilerStats::src_length += src.Length(); |
- } |
+ INC_STAT(isolate, src_length, src.Length()); |
} |
@@ -10620,6 +10613,8 @@ |
RawObject* raw = Object::Allocate(PcDescriptors::kClassId, |
size, |
Heap::kOld); |
+ INC_STAT(Isolate::Current(), total_code_size, size); |
+ INC_STAT(Isolate::Current(), pc_desc_size, size); |
siva
2015/05/12 17:39:52
Ditto comment about caching Isolate::Current() ins
hausner
2015/05/12 21:52:16
Done.
|
NoSafepointScope no_safepoint; |
result ^= raw; |
result.SetLength(data->length()); |
@@ -11039,6 +11034,8 @@ |
RawObject* raw = Object::Allocate(LocalVarDescriptors::kClassId, |
size, |
Heap::kOld); |
+ INC_STAT(Isolate::Current(), total_code_size, size); |
+ INC_STAT(Isolate::Current(), vardesc_size, size); |
NoSafepointScope no_safepoint; |
result ^= raw; |
result.StoreNonPointer(&result.raw_ptr()->num_entries_, num_variables); |
@@ -12111,6 +12108,9 @@ |
void Code::set_stackmaps(const Array& maps) const { |
ASSERT(maps.IsOld()); |
StorePointer(&raw_ptr()->stackmaps_, maps.raw()); |
+ INC_STAT(Isolate::Current(), |
+ total_code_size, |
+ maps.IsNull() ? 0 : maps.Length() * sizeof(uword)); |
} |
@@ -12329,6 +12329,8 @@ |
Code& code = Code::ZoneHandle(Code::New(pointer_offset_count)); |
Instructions& instrs = |
Instructions::ZoneHandle(Instructions::New(assembler->CodeSize())); |
+ INC_STAT(Isolate::Current(), total_instr_size, assembler->CodeSize()); |
+ INC_STAT(Isolate::Current(), total_code_size, assembler->CodeSize()); |
// Copy the instructions into the instruction area and apply all fixups. |
// Embedded pointers are still in handles at this point. |
@@ -12373,6 +12375,8 @@ |
if (object_pool.IsNull()) { |
instrs.set_object_pool(Object::empty_array().raw()); |
} else { |
+ INC_STAT(Isolate::Current(), |
+ total_code_size, object_pool.Length() * sizeof(uintptr_t)); |
// TODO(regis): Once MakeArray takes a Heap::Space argument, call it here |
// with Heap::kOld and change the ARM and MIPS assemblers to work with a |
// GrowableObjectArray in new space. |
@@ -12388,6 +12392,8 @@ |
} |
} |
code.set_comments(assembler->GetCodeComments()); |
+ INC_STAT(Isolate::Current(), |
+ total_code_size, code.comments().comments_.Length()); |
return code.raw(); |
} |