| Index: src/compiler/pipeline.cc | 
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc | 
| index 438f10459524b33113a439c942e0434097f1fdc2..f050c9b4c0825b163eabf07b7a40adbdac399b4d 100644 | 
| --- a/src/compiler/pipeline.cc | 
| +++ b/src/compiler/pipeline.cc | 
| @@ -4,6 +4,7 @@ | 
|  | 
| #include "src/compiler/pipeline.h" | 
|  | 
| +#include <fstream>  // NOLINT(readability/streams) | 
| #include <sstream> | 
|  | 
| #include "src/base/platform/elapsed-timer.h" | 
| @@ -97,19 +98,10 @@ 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(), std::ios_base::app) {} | 
| +}; | 
|  | 
|  | 
| void Pipeline::VerifyAndPrintGraph( | 
| @@ -158,24 +150,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, | 
| @@ -234,7 +208,7 @@ Handle<Code> Pipeline::GenerateCode() { | 
| << "Begin compiling method " | 
| << info()->function()->debug_name()->ToCString().get() | 
| << " using Turbofan" << std::endl; | 
| -    PrintCompilationStart(); | 
| +    TurboCfgFile(isolate()) << AsC1VCompilation(info()); | 
| } | 
|  | 
| ZonePool zone_pool(isolate()); | 
| @@ -487,8 +461,8 @@ Handle<Code> Pipeline::GenerateCode(ZonePool* zone_pool, Linkage* linkage, | 
| OFStream os(stdout); | 
| os << "----- Instruction sequence before register allocation -----\n" | 
| << sequence; | 
| -    PrintScheduleAndInstructions("CodeGen", schedule, source_positions, | 
| -                                 &sequence); | 
| +    TurboCfgFile(isolate()) | 
| +        << AsC1V("CodeGen", schedule, source_positions, &sequence); | 
| } | 
|  | 
| // Allocate registers. | 
| @@ -507,7 +481,7 @@ Handle<Code> Pipeline::GenerateCode(ZonePool* zone_pool, Linkage* linkage, | 
| return Handle<Code>::null(); | 
| } | 
| if (FLAG_trace_turbo) { | 
| -      PrintAllocator("CodeGen", &allocator); | 
| +      TurboCfgFile(isolate()) << AsC1VAllocator("CodeGen", &allocator); | 
| } | 
| } | 
|  | 
|  |