OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "src/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/allocation-site-scopes.h" | 9 #include "src/allocation-site-scopes.h" |
10 #include "src/ast/ast-numbering.h" | 10 #include "src/ast/ast-numbering.h" |
(...skipping 1360 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1371 | 1371 |
1372 int inline_id = static_cast<int>(info_->inlined_function_infos().size()); | 1372 int inline_id = static_cast<int>(info_->inlined_function_infos().size()); |
1373 InlinedFunctionInfo info(parent_id, position, UnboundScript::kNoScriptId, | 1373 InlinedFunctionInfo info(parent_id, position, UnboundScript::kNoScriptId, |
1374 shared->start_position()); | 1374 shared->start_position()); |
1375 if (!shared->script()->IsUndefined()) { | 1375 if (!shared->script()->IsUndefined()) { |
1376 Handle<Script> script(Script::cast(shared->script())); | 1376 Handle<Script> script(Script::cast(shared->script())); |
1377 info.script_id = script->id(); | 1377 info.script_id = script->id(); |
1378 | 1378 |
1379 if (FLAG_hydrogen_track_positions && !script->source()->IsUndefined()) { | 1379 if (FLAG_hydrogen_track_positions && !script->source()->IsUndefined()) { |
1380 CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer()); | 1380 CodeTracer::Scope tracing_scope(isolate()->GetCodeTracer()); |
| 1381 Object* source_name = script->name(); |
1381 OFStream os(tracing_scope.file()); | 1382 OFStream os(tracing_scope.file()); |
1382 os << "--- FUNCTION SOURCE (" << shared->DebugName()->ToCString().get() | 1383 os << "--- FUNCTION SOURCE ("; |
1383 << ") id{" << info_->optimization_id() << "," << inline_id | 1384 if (source_name->IsString()) { |
1384 << "} ---\n"; | 1385 os << String::cast(source_name)->ToCString().get() << ":"; |
| 1386 } |
| 1387 os << shared->DebugName()->ToCString().get() << ") id{"; |
| 1388 os << info_->optimization_id() << "," << inline_id << "} ---\n"; |
1385 { | 1389 { |
1386 DisallowHeapAllocation no_allocation; | 1390 DisallowHeapAllocation no_allocation; |
1387 int start = shared->start_position(); | 1391 int start = shared->start_position(); |
1388 int len = shared->end_position() - start; | 1392 int len = shared->end_position() - start; |
1389 String::SubStringRange source(String::cast(script->source()), start, | 1393 String::SubStringRange source(String::cast(script->source()), start, |
1390 len); | 1394 len); |
1391 for (const auto& c : source) { | 1395 for (const auto& c : source) { |
1392 os << AsReversiblyEscapedUC16(c); | 1396 os << AsReversiblyEscapedUC16(c); |
1393 } | 1397 } |
1394 } | 1398 } |
(...skipping 12043 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13438 os << "NULL"; | 13442 os << "NULL"; |
13439 } | 13443 } |
13440 os << "\n"; | 13444 os << "\n"; |
13441 } | 13445 } |
13442 return os << "\n"; | 13446 return os << "\n"; |
13443 } | 13447 } |
13444 | 13448 |
13445 | 13449 |
13446 void HTracer::TraceCompilation(CompilationInfo* info) { | 13450 void HTracer::TraceCompilation(CompilationInfo* info) { |
13447 Tag tag(this, "compilation"); | 13451 Tag tag(this, "compilation"); |
13448 base::SmartArrayPointer<char> name = info->GetDebugName(); | 13452 std::string name; |
| 13453 Object* source_name = info->script()->name(); |
| 13454 if (source_name->IsString()) { |
| 13455 String* str = String::cast(source_name); |
| 13456 if (str->length() > 0) { |
| 13457 name.append(str->ToCString().get()); |
| 13458 name.append(":"); |
| 13459 } |
| 13460 } |
| 13461 base::SmartArrayPointer<char> method_name = info->GetDebugName(); |
| 13462 name.append(method_name.get()); |
13449 if (info->IsOptimizing()) { | 13463 if (info->IsOptimizing()) { |
13450 PrintStringProperty("name", name.get()); | 13464 PrintStringProperty("name", name.c_str()); |
13451 PrintIndent(); | 13465 PrintIndent(); |
13452 trace_.Add("method \"%s:%d\"\n", name.get(), info->optimization_id()); | 13466 trace_.Add("method \"%s:%d\"\n", method_name.get(), |
| 13467 info->optimization_id()); |
13453 } else { | 13468 } else { |
13454 PrintStringProperty("name", name.get()); | 13469 PrintStringProperty("name", name.c_str()); |
13455 PrintStringProperty("method", "stub"); | 13470 PrintStringProperty("method", "stub"); |
13456 } | 13471 } |
13457 PrintLongProperty("date", | 13472 PrintLongProperty("date", |
13458 static_cast<int64_t>(base::OS::TimeCurrentMillis())); | 13473 static_cast<int64_t>(base::OS::TimeCurrentMillis())); |
13459 } | 13474 } |
13460 | 13475 |
13461 | 13476 |
13462 void HTracer::TraceLithium(const char* name, LChunk* chunk) { | 13477 void HTracer::TraceLithium(const char* name, LChunk* chunk) { |
13463 DCHECK(!chunk->isolate()->concurrent_recompilation_enabled()); | 13478 DCHECK(!chunk->isolate()->concurrent_recompilation_enabled()); |
13464 AllowHandleDereference allow_deref; | 13479 AllowHandleDereference allow_deref; |
(...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13769 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13784 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
13770 } | 13785 } |
13771 | 13786 |
13772 #ifdef DEBUG | 13787 #ifdef DEBUG |
13773 graph_->Verify(false); // No full verify. | 13788 graph_->Verify(false); // No full verify. |
13774 #endif | 13789 #endif |
13775 } | 13790 } |
13776 | 13791 |
13777 } // namespace internal | 13792 } // namespace internal |
13778 } // namespace v8 | 13793 } // namespace v8 |
OLD | NEW |