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); |
} |
} |