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

Side by Side Diff: src/compiler/graph-visualizer.cc

Issue 1847543002: Expose a lower bound of malloc'd memory via heap statistics (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: updates Created 4 years, 8 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
« no previous file with comments | « src/compiler/graph-replay.cc ('k') | src/compiler/js-inlining.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/compiler/graph-visualizer.h" 5 #include "src/compiler/graph-visualizer.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 #include <string> 8 #include <string>
9 9
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 private: 190 private:
191 std::ostream& os_; 191 std::ostream& os_;
192 AllNodes all_; 192 AllNodes all_;
193 bool first_edge_; 193 bool first_edge_;
194 194
195 DISALLOW_COPY_AND_ASSIGN(JSONGraphEdgeWriter); 195 DISALLOW_COPY_AND_ASSIGN(JSONGraphEdgeWriter);
196 }; 196 };
197 197
198 198
199 std::ostream& operator<<(std::ostream& os, const AsJSON& ad) { 199 std::ostream& operator<<(std::ostream& os, const AsJSON& ad) {
200 Zone tmp_zone; 200 base::AccountingAllocator allocator;
201 Zone tmp_zone(&allocator);
201 os << "{\n\"nodes\":["; 202 os << "{\n\"nodes\":[";
202 JSONGraphNodeWriter(os, &tmp_zone, &ad.graph, ad.positions).Print(); 203 JSONGraphNodeWriter(os, &tmp_zone, &ad.graph, ad.positions).Print();
203 os << "],\n\"edges\":["; 204 os << "],\n\"edges\":[";
204 JSONGraphEdgeWriter(os, &tmp_zone, &ad.graph).Print(); 205 JSONGraphEdgeWriter(os, &tmp_zone, &ad.graph).Print();
205 os << "]}"; 206 os << "]}";
206 return os; 207 return os;
207 } 208 }
208 209
209 210
210 class GraphC1Visualizer { 211 class GraphC1Visualizer {
(...skipping 365 matching lines...) Expand 10 before | Expand all | Expand 10 after
576 } 577 }
577 current_pos = current_pos->next(); 578 current_pos = current_pos->next();
578 } 579 }
579 580
580 os_ << " \"\"\n"; 581 os_ << " \"\"\n";
581 } 582 }
582 } 583 }
583 584
584 585
585 std::ostream& operator<<(std::ostream& os, const AsC1VCompilation& ac) { 586 std::ostream& operator<<(std::ostream& os, const AsC1VCompilation& ac) {
586 Zone tmp_zone; 587 base::AccountingAllocator allocator;
588 Zone tmp_zone(&allocator);
587 GraphC1Visualizer(os, &tmp_zone).PrintCompilation(ac.info_); 589 GraphC1Visualizer(os, &tmp_zone).PrintCompilation(ac.info_);
588 return os; 590 return os;
589 } 591 }
590 592
591 593
592 std::ostream& operator<<(std::ostream& os, const AsC1V& ac) { 594 std::ostream& operator<<(std::ostream& os, const AsC1V& ac) {
593 Zone tmp_zone; 595 base::AccountingAllocator allocator;
596 Zone tmp_zone(&allocator);
594 GraphC1Visualizer(os, &tmp_zone) 597 GraphC1Visualizer(os, &tmp_zone)
595 .PrintSchedule(ac.phase_, ac.schedule_, ac.positions_, ac.instructions_); 598 .PrintSchedule(ac.phase_, ac.schedule_, ac.positions_, ac.instructions_);
596 return os; 599 return os;
597 } 600 }
598 601
599 602
600 std::ostream& operator<<(std::ostream& os, 603 std::ostream& operator<<(std::ostream& os,
601 const AsC1VRegisterAllocationData& ac) { 604 const AsC1VRegisterAllocationData& ac) {
602 Zone tmp_zone; 605 base::AccountingAllocator allocator;
606 Zone tmp_zone(&allocator);
603 GraphC1Visualizer(os, &tmp_zone).PrintLiveRanges(ac.phase_, ac.data_); 607 GraphC1Visualizer(os, &tmp_zone).PrintLiveRanges(ac.phase_, ac.data_);
604 return os; 608 return os;
605 } 609 }
606 610
607 const int kUnvisited = 0; 611 const int kUnvisited = 0;
608 const int kOnStack = 1; 612 const int kOnStack = 1;
609 const int kVisited = 2; 613 const int kVisited = 2;
610 614
611 std::ostream& operator<<(std::ostream& os, const AsRPO& ar) { 615 std::ostream& operator<<(std::ostream& os, const AsRPO& ar) {
612 Zone local_zone; 616 base::AccountingAllocator allocator;
617 Zone local_zone(&allocator);
613 ZoneVector<byte> state(ar.graph.NodeCount(), kUnvisited, &local_zone); 618 ZoneVector<byte> state(ar.graph.NodeCount(), kUnvisited, &local_zone);
614 ZoneStack<Node*> stack(&local_zone); 619 ZoneStack<Node*> stack(&local_zone);
615 620
616 stack.push(ar.graph.end()); 621 stack.push(ar.graph.end());
617 state[ar.graph.end()->id()] = kOnStack; 622 state[ar.graph.end()->id()] = kOnStack;
618 while (!stack.empty()) { 623 while (!stack.empty()) {
619 Node* n = stack.top(); 624 Node* n = stack.top();
620 bool pop = true; 625 bool pop = true;
621 for (Node* const i : n->inputs()) { 626 for (Node* const i : n->inputs()) {
622 if (state[i->id()] == kUnvisited) { 627 if (state[i->id()] == kUnvisited) {
(...skipping 13 matching lines...) Expand all
636 os << "#" << SafeId(i) << ":" << SafeMnemonic(i); 641 os << "#" << SafeId(i) << ":" << SafeMnemonic(i);
637 } 642 }
638 os << ")" << std::endl; 643 os << ")" << std::endl;
639 } 644 }
640 } 645 }
641 return os; 646 return os;
642 } 647 }
643 } // namespace compiler 648 } // namespace compiler
644 } // namespace internal 649 } // namespace internal
645 } // namespace v8 650 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/graph-replay.cc ('k') | src/compiler/js-inlining.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698