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

Side by Side Diff: src/hydrogen.cc

Issue 426233002: Land the Fan (disabled) (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 4 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 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/hydrogen.h" 5 #include "src/hydrogen.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "src/v8.h" 9 #include "src/v8.h"
10 10
(...skipping 12388 matching lines...) Expand 10 before | Expand all | Expand 10 after
12399 trace_.Reset(); 12399 trace_.Reset();
12400 } 12400 }
12401 12401
12402 12402
12403 void HStatistics::Initialize(CompilationInfo* info) { 12403 void HStatistics::Initialize(CompilationInfo* info) {
12404 if (info->shared_info().is_null()) return; 12404 if (info->shared_info().is_null()) return;
12405 source_size_ += info->shared_info()->SourceSize(); 12405 source_size_ += info->shared_info()->SourceSize();
12406 } 12406 }
12407 12407
12408 12408
12409 void HStatistics::Print() { 12409 void HStatistics::Print(const char* stats_name) {
12410 PrintF("Timing results:\n"); 12410 PrintF("\n"
12411 "----------------------------------------"
12412 "----------------------------------------\n"
12413 "--- %s timing results:\n"
12414 "----------------------------------------"
12415 "----------------------------------------\n", stats_name);
12411 base::TimeDelta sum; 12416 base::TimeDelta sum;
12412 for (int i = 0; i < times_.length(); ++i) { 12417 for (int i = 0; i < times_.length(); ++i) {
12413 sum += times_[i]; 12418 sum += times_[i];
12414 } 12419 }
12415 12420
12416 for (int i = 0; i < names_.length(); ++i) { 12421 for (int i = 0; i < names_.length(); ++i) {
12417 PrintF("%32s", names_[i]); 12422 PrintF("%33s", names_[i]);
12418 double ms = times_[i].InMillisecondsF(); 12423 double ms = times_[i].InMillisecondsF();
12419 double percent = times_[i].PercentOf(sum); 12424 double percent = times_[i].PercentOf(sum);
12420 PrintF(" %8.3f ms / %4.1f %% ", ms, percent); 12425 PrintF(" %8.3f ms / %4.1f %% ", ms, percent);
12421 12426
12422 unsigned size = sizes_[i]; 12427 unsigned size = sizes_[i];
12423 double size_percent = static_cast<double>(size) * 100 / total_size_; 12428 double size_percent = static_cast<double>(size) * 100 / total_size_;
12424 PrintF(" %9u bytes / %4.1f %%\n", size, size_percent); 12429 PrintF(" %9u bytes / %4.1f %%\n", size, size_percent);
12425 } 12430 }
12426 12431
12427 PrintF("----------------------------------------" 12432 PrintF("----------------------------------------"
12428 "---------------------------------------\n"); 12433 "----------------------------------------\n");
12429 base::TimeDelta total = create_graph_ + optimize_graph_ + generate_code_; 12434 base::TimeDelta total = create_graph_ + optimize_graph_ + generate_code_;
12430 PrintF("%32s %8.3f ms / %4.1f %% \n", 12435 PrintF("%33s %8.3f ms / %4.1f %% \n",
12431 "Create graph", 12436 "Create graph",
12432 create_graph_.InMillisecondsF(), 12437 create_graph_.InMillisecondsF(),
12433 create_graph_.PercentOf(total)); 12438 create_graph_.PercentOf(total));
12434 PrintF("%32s %8.3f ms / %4.1f %% \n", 12439 PrintF("%33s %8.3f ms / %4.1f %% \n",
12435 "Optimize graph", 12440 "Optimize graph",
12436 optimize_graph_.InMillisecondsF(), 12441 optimize_graph_.InMillisecondsF(),
12437 optimize_graph_.PercentOf(total)); 12442 optimize_graph_.PercentOf(total));
12438 PrintF("%32s %8.3f ms / %4.1f %% \n", 12443 PrintF("%33s %8.3f ms / %4.1f %% \n",
12439 "Generate and install code", 12444 "Generate and install code",
12440 generate_code_.InMillisecondsF(), 12445 generate_code_.InMillisecondsF(),
12441 generate_code_.PercentOf(total)); 12446 generate_code_.PercentOf(total));
12442 PrintF("----------------------------------------" 12447 PrintF("----------------------------------------"
12443 "---------------------------------------\n"); 12448 "----------------------------------------\n");
12444 PrintF("%32s %8.3f ms (%.1f times slower than full code gen)\n", 12449 PrintF("%33s %8.3f ms %9u bytes\n",
12445 "Total", 12450 "Total",
12446 total.InMillisecondsF(), 12451 total.InMillisecondsF(),
12452 total_size_);
12453 PrintF("%33s (%.1f times slower than full code gen)\n",
12454 "",
12447 total.TimesOf(full_code_gen_)); 12455 total.TimesOf(full_code_gen_));
12448 12456
12449 double source_size_in_kb = static_cast<double>(source_size_) / 1024; 12457 double source_size_in_kb = static_cast<double>(source_size_) / 1024;
12450 double normalized_time = source_size_in_kb > 0 12458 double normalized_time = source_size_in_kb > 0
12451 ? total.InMillisecondsF() / source_size_in_kb 12459 ? total.InMillisecondsF() / source_size_in_kb
12452 : 0; 12460 : 0;
12453 double normalized_size_in_kb = source_size_in_kb > 0 12461 double normalized_size_in_kb = source_size_in_kb > 0
12454 ? total_size_ / 1024 / source_size_in_kb 12462 ? total_size_ / 1024 / source_size_in_kb
12455 : 0; 12463 : 0;
12456 PrintF("%32s %8.3f ms %7.3f kB allocated\n", 12464 PrintF("%33s %8.3f ms %7.3f kB allocated\n",
12457 "Average per kB source", 12465 "Average per kB source",
12458 normalized_time, normalized_size_in_kb); 12466 normalized_time, normalized_size_in_kb);
12459 } 12467 }
12460 12468
12461 12469
12462 void HStatistics::SaveTiming(const char* name, base::TimeDelta time, 12470 void HStatistics::SaveTiming(const char* name, base::TimeDelta time,
12463 unsigned size) { 12471 unsigned size) {
12464 total_size_ += size; 12472 total_size_ += size;
12465 for (int i = 0; i < names_.length(); ++i) { 12473 for (int i = 0; i < names_.length(); ++i) {
12466 if (strcmp(names_[i], name) == 0) { 12474 if (strcmp(names_[i], name) == 0) {
(...skipping 12 matching lines...) Expand all
12479 if (ShouldProduceTraceOutput()) { 12487 if (ShouldProduceTraceOutput()) {
12480 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 12488 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
12481 } 12489 }
12482 12490
12483 #ifdef DEBUG 12491 #ifdef DEBUG
12484 graph_->Verify(false); // No full verify. 12492 graph_->Verify(false); // No full verify.
12485 #endif 12493 #endif
12486 } 12494 }
12487 12495
12488 } } // namespace v8::internal 12496 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/hydrogen.h ('k') | src/hydrogen-gvn.h » ('j') | src/lithium-inl.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698