Reviewers: Michael Starzinger,

Description:
[turbofan]: Small visualizer cleanup and fix for string handling

[email protected]

Please review this at https://codereview.chromium.org/886313006/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+35, -34 lines):
  M src/compiler/graph-visualizer.h
  M src/compiler/graph-visualizer.cc
  M src/compiler/pipeline.cc
  M src/flag-definitions.h
  M src/ostreams.cc


Index: src/compiler/graph-visualizer.cc
diff --git a/src/compiler/graph-visualizer.cc b/src/compiler/graph-visualizer.cc index 20ebabe2c081a1ef6f82c35841e33f52bc02115d..abdd1c9210af029455a1c9936794f5470f9524c5 100644
--- a/src/compiler/graph-visualizer.cc
+++ b/src/compiler/graph-visualizer.cc
@@ -24,6 +24,34 @@ namespace v8 {
 namespace internal {
 namespace compiler {

+
+FILE* OpenVisualizerLogFile(CompilationInfo* info, const char* phase,
+                            const char* suffix, const char* mode) {
+  EmbeddedVector<char, 256> filename;
+  SmartArrayPointer<char> function_name;
+  if (!info->shared_info().is_null()) {
+    function_name = info->shared_info()->DebugName()->ToCString();
+    if (strlen(function_name.get()) > 0) {
+      SNPrintF(filename, "turbo-%s", function_name.get());
+    } else {
+      SNPrintF(filename, "turbo-%p", static_cast<void*>(info));
+    }
+  } else {
+    SNPrintF(filename, "turbo-none-%s", phase);
+  }
+  std::replace(filename.start(), filename.start() + filename.length(), ' ',
+               '_');
+
+  EmbeddedVector<char, 256> full_filename;
+  if (phase == NULL) {
+    SNPrintF(full_filename, "%s.%s", filename.start(), suffix);
+  } else {
+    SNPrintF(full_filename, "%s-%s.%s", filename.start(), phase, suffix);
+  }
+  return base::OS::FOpen(full_filename.start(), mode);
+}
+
+
 static int SafeId(Node* node) { return node == NULL ? -1 : node->id(); }
 static const char* SafeMnemonic(Node* node) {
   return node == NULL ? "null" : node->op()->mnemonic();
Index: src/compiler/graph-visualizer.h
diff --git a/src/compiler/graph-visualizer.h b/src/compiler/graph-visualizer.h index 611351244beaa5925e0a46a9d7e093e0fe79395e..17094c23c57c37a93433565bbfba91aa193f1c97 100644
--- a/src/compiler/graph-visualizer.h
+++ b/src/compiler/graph-visualizer.h
@@ -20,6 +20,8 @@ class RegisterAllocator;
 class Schedule;
 class SourcePositionTable;

+FILE* OpenVisualizerLogFile(CompilationInfo* info, const char* phase,
+                            const char* suffix, const char* mode);

 struct AsDOT {
   explicit AsDOT(const Graph& g) : graph(g) {}
Index: src/compiler/pipeline.cc
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
index cf1007873b9902e121668d79193b35123687fbdc..c914d8d655230f990e38e4eb74fbb74a2d49f18c 100644
--- a/src/compiler/pipeline.cc
+++ b/src/compiler/pipeline.cc
@@ -691,35 +691,6 @@ struct GenerateCodePhase {
 };


-namespace {
-
-FILE* OpenLogFile(CompilationInfo* info, const char* phase, const char* suffix,
-                  const char* mode) {
-  EmbeddedVector<char, 256> filename;
-  SmartArrayPointer<char> function_name;
-  if (!info->shared_info().is_null()) {
-    function_name = info->shared_info()->DebugName()->ToCString();
-    if (strlen(function_name.get()) > 0) {
-      SNPrintF(filename, "turbo-%s", function_name.get());
-    } else {
-      SNPrintF(filename, "turbo-%p", static_cast<void*>(info));
-    }
-  } else {
-    SNPrintF(filename, "turbo-none-%s", phase);
-  }
-  std::replace(filename.start(), filename.start() + filename.length(), ' ',
-               '_');
-
-  EmbeddedVector<char, 256> full_filename;
-  if (phase == NULL) {
-    SNPrintF(full_filename, "%s.%s", filename.start(), suffix);
-  } else {
-    SNPrintF(full_filename, "%s-%s.%s", filename.start(), phase, suffix);
-  }
-  return base::OS::FOpen(full_filename.start(), mode);
-}
-}
-
 struct PrintGraphPhase {
   static const char* phase_name() { return nullptr; }

@@ -728,7 +699,7 @@ struct PrintGraphPhase {
     Graph* graph = data->graph();

     {  // Print dot.
-      FILE* dot_file = OpenLogFile(info, phase, "dot", "w+");
+      FILE* dot_file = OpenVisualizerLogFile(info, phase, "dot", "w+");
       if (dot_file == nullptr) return;
       OFStream dot_of(dot_file);
       dot_of << AsDOT(*graph);
@@ -736,7 +707,7 @@ struct PrintGraphPhase {
     }

     {  // Print JSON.
-      FILE* json_file = OpenLogFile(info, NULL, "json", "a+");
+      FILE* json_file = OpenVisualizerLogFile(info, NULL, "json", "a+");
       if (json_file == nullptr) return;
       OFStream json_of(json_file);
json_of << "{\"name\":\"" << phase << "\",\"type\":\"graph\",\"data\":"
@@ -808,7 +779,7 @@ Handle<Code> Pipeline::GenerateCode() {
   }

   if (FLAG_trace_turbo) {
-    FILE* json_file = OpenLogFile(info(), NULL, "json", "w+");
+    FILE* json_file = OpenVisualizerLogFile(info(), NULL, "json", "w+");
     if (json_file != nullptr) {
       OFStream json_of(json_file);
       Handle<Script> script = info()->script();
@@ -947,7 +918,7 @@ Handle<Code> Pipeline::GenerateCode() {
   v8::internal::CodeGenerator::PrintCode(code, info());

   if (FLAG_trace_turbo) {
-    FILE* json_file = OpenLogFile(info(), NULL, "json", "a+");
+    FILE* json_file = OpenVisualizerLogFile(info(), NULL, "json", "a+");
     if (json_file != nullptr) {
       OFStream json_of(json_file);
       json_of
Index: src/flag-definitions.h
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index 581e332684167da50c915136202a4286120a24b3..49d3aed1831d73dac1cc7c03fe1b7a77b44b43d3 100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -399,6 +399,7 @@ DEFINE_BOOL(turbo_stats, false, "print TurboFan statistics")
 DEFINE_BOOL(turbo_types, true, "use typed lowering in TurboFan")
 DEFINE_BOOL(turbo_source_positions, false,
             "track source code positions when building TurboFan IR")
+DEFINE_IMPLICATION(trace_turbo, turbo_source_positions)
 DEFINE_BOOL(context_specialization, false,
             "enable context specialization in TurboFan")
DEFINE_BOOL(turbo_deoptimization, false, "enable deoptimization in TurboFan")
Index: src/ostreams.cc
diff --git a/src/ostreams.cc b/src/ostreams.cc
index 4f28141d71aa4667bafd7f4742d97d26b5587636..b11332dafc521f62d423890224e0d23e64e832af 100644
--- a/src/ostreams.cc
+++ b/src/ostreams.cc
@@ -70,7 +70,6 @@ std::ostream& operator<<(std::ostream& os, const AsEscapedUC16ForJSON& c) {
   if (c.value == '\n') return os << "\\n";
   if (c.value == '\r') return os << "\\r";
   if (c.value == '\"') return os << "\\\"";
-  if (c.value == '\'') return os << "\\\'";
   return PrintUC16(os, c.value, IsOK);
 }



--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to