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

Unified Diff: src/compiler/pipeline.cc

Issue 676673002: Reland 'Simplify TurboFan's c1visualizer file handling.' (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased Created 6 years, 2 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
« no previous file with comments | « src/compiler/pipeline.h ('k') | src/isolate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/pipeline.cc
diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
index 609de0670b16d6795c323efae90afa8f3ff7b7db..3b337444b6ca7b8c98663f5a167d0b64787ab430 100644
--- a/src/compiler/pipeline.cc
+++ b/src/compiler/pipeline.cc
@@ -2,6 +2,9 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "src/compiler/pipeline.h"
+
+#include <fstream> // NOLINT(readability/streams)
#include <sstream>
#include "src/base/platform/elapsed-timer.h"
@@ -20,7 +23,6 @@
#include "src/compiler/js-typed-lowering.h"
#include "src/compiler/machine-operator-reducer.h"
#include "src/compiler/phi-reducer.h"
-#include "src/compiler/pipeline.h"
#include "src/compiler/pipeline-statistics.h"
#include "src/compiler/register-allocator.h"
#include "src/compiler/schedule.h"
@@ -47,19 +49,11 @@ static inline bool VerifyGraphs() {
}
-void Pipeline::PrintCompilationStart() {
- std::ofstream turbo_cfg_stream;
- OpenTurboCfgFile(&turbo_cfg_stream);
- turbo_cfg_stream << AsC1VCompilation(info());
-}
-
-
-void Pipeline::OpenTurboCfgFile(std::ofstream* stream) {
- char buffer[512];
- Vector<char> filename(buffer, sizeof(buffer));
- isolate()->GetTurboCfgFileName(filename);
- stream->open(filename.start(), std::fstream::out | std::fstream::app);
-}
+struct TurboCfgFile : public std::ofstream {
+ explicit TurboCfgFile(Isolate* isolate)
+ : std::ofstream(isolate->GetTurboCfgFileName().c_str(),
+ std::ios_base::app) {}
+};
void Pipeline::VerifyAndPrintGraph(
@@ -108,24 +102,6 @@ void Pipeline::VerifyAndPrintGraph(
}
-void Pipeline::PrintScheduleAndInstructions(
- const char* phase, const Schedule* schedule,
- const SourcePositionTable* positions,
- const InstructionSequence* instructions) {
- std::ofstream turbo_cfg_stream;
- OpenTurboCfgFile(&turbo_cfg_stream);
- turbo_cfg_stream << AsC1V(phase, schedule, positions, instructions);
-}
-
-
-void Pipeline::PrintAllocator(const char* phase,
- const RegisterAllocator* allocator) {
- std::ofstream turbo_cfg_stream;
- OpenTurboCfgFile(&turbo_cfg_stream);
- turbo_cfg_stream << AsC1VAllocator(phase, allocator);
-}
-
-
class AstGraphBuilderWithPositions : public AstGraphBuilder {
public:
explicit AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info,
@@ -190,7 +166,8 @@ Handle<Code> Pipeline::GenerateCode() {
<< "Begin compiling method "
<< info()->function()->debug_name()->ToCString().get()
<< " using Turbofan" << std::endl;
- PrintCompilationStart();
+ TurboCfgFile tcf(isolate());
+ tcf << AsC1VCompilation(info());
}
// Build the graph.
@@ -448,8 +425,8 @@ Handle<Code> Pipeline::GenerateCode(PipelineStatistics* pipeline_statistics,
OFStream os(stdout);
os << "----- Instruction sequence before register allocation -----\n"
<< sequence;
- PrintScheduleAndInstructions("CodeGen", schedule, source_positions,
- &sequence);
+ TurboCfgFile tcf(isolate());
+ tcf << AsC1V("CodeGen", schedule, source_positions, &sequence);
}
// Allocate registers.
@@ -468,7 +445,8 @@ Handle<Code> Pipeline::GenerateCode(PipelineStatistics* pipeline_statistics,
return Handle<Code>::null();
}
if (FLAG_trace_turbo) {
- PrintAllocator("CodeGen", &allocator);
+ TurboCfgFile tcf(isolate());
+ tcf << AsC1VAllocator("CodeGen", &allocator);
}
}
« no previous file with comments | « src/compiler/pipeline.h ('k') | src/isolate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698