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.