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

Unified Diff: src/compiler/graph-visualizer.cc

Issue 882973002: [turbofan] Improve JSON output (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix ASAN Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: src/compiler/graph-visualizer.cc
diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc
index 04c8d3a63a7863481c2beeb3f26579419bd119d4..eecc790875c1c8ba728da843de0331205f454e46 100644
--- a/src/compiler/graph-visualizer.cc
+++ b/src/compiler/graph-visualizer.cc
@@ -60,18 +60,20 @@ class Escaped {
class JSONGraphNodeWriter {
public:
- JSONGraphNodeWriter(std::ostream& os, Zone* zone, const Graph* graph)
- : os_(os), all_(zone, graph), first_node_(true) {}
+ JSONGraphNodeWriter(std::ostream& os, Zone* zone, const Graph* graph,
+ const SourcePositionTable* positions)
+ : os_(os), all_(zone, graph), positions_(positions), first_node_(true) {}
void Print() {
for (Node* const node : all_.live) PrintNode(node);
+ os_ << "\n";
}
void PrintNode(Node* node) {
if (first_node_) {
first_node_ = false;
} else {
- os_ << ",";
+ os_ << ",\n";
}
std::ostringstream label;
label << *node->op();
@@ -91,6 +93,11 @@ class JSONGraphNodeWriter {
if (opcode == IrOpcode::kBranch) {
os_ << ",\"rankInputs\":[0]";
}
+ SourcePosition position = positions_->GetSourcePosition(node);
+ if (!position.IsUnknown()) {
+ DCHECK(!position.IsInvalid());
+ os_ << ",\"pos\":" << position.raw();
+ }
os_ << ",\"opcode\":\"" << IrOpcode::Mnemonic(node->opcode()) << "\"";
os_ << ",\"control\":" << (NodeProperties::IsControl(node) ? "true"
: "false");
@@ -100,6 +107,7 @@ class JSONGraphNodeWriter {
private:
std::ostream& os_;
AllNodes all_;
+ const SourcePositionTable* positions_;
bool first_node_;
DISALLOW_COPY_AND_ASSIGN(JSONGraphNodeWriter);
@@ -113,6 +121,7 @@ class JSONGraphEdgeWriter {
void Print() {
for (Node* const node : all_.live) PrintEdges(node);
+ os_ << "\n";
}
void PrintEdges(Node* node) {
@@ -127,7 +136,7 @@ class JSONGraphEdgeWriter {
if (first_edge_) {
first_edge_ = false;
} else {
- os_ << ",";
+ os_ << ",\n";
}
const char* edge_type = NULL;
if (index < NodeProperties::FirstValueIndex(from)) {
@@ -158,9 +167,9 @@ class JSONGraphEdgeWriter {
std::ostream& operator<<(std::ostream& os, const AsJSON& ad) {
Zone tmp_zone;
- os << "{\"nodes\":[";
- JSONGraphNodeWriter(os, &tmp_zone, &ad.graph).Print();
- os << "],\"edges\":[";
+ os << "{\n\"nodes\":[";
+ JSONGraphNodeWriter(os, &tmp_zone, &ad.graph, ad.positions).Print();
+ os << "],\n\"edges\":[";
JSONGraphEdgeWriter(os, &tmp_zone, &ad.graph).Print();
os << "]}";
return os;

Powered by Google App Engine
This is Rietveld 408576698