OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_GRAPH_VISUALIZER_H_ | 5 #ifndef V8_COMPILER_GRAPH_VISUALIZER_H_ |
6 #define V8_COMPILER_GRAPH_VISUALIZER_H_ | 6 #define V8_COMPILER_GRAPH_VISUALIZER_H_ |
7 | 7 |
8 #include <stdio.h> | 8 #include <stdio.h> |
9 #include <iosfwd> | 9 #include <iosfwd> |
10 | 10 |
11 namespace v8 { | 11 namespace v8 { |
12 namespace internal { | 12 namespace internal { |
13 | 13 |
14 class CompilationInfo; | 14 class CompilationInfo; |
15 | 15 |
16 namespace compiler { | 16 namespace compiler { |
17 | 17 |
18 class Graph; | 18 class Graph; |
19 class InstructionSequence; | 19 class InstructionSequence; |
20 class RegisterAllocationData; | 20 class RegisterAllocationData; |
21 class Schedule; | 21 class Schedule; |
22 class SourcePositionTable; | 22 class SourcePositionTable; |
23 | 23 |
24 FILE* OpenVisualizerLogFile(CompilationInfo* info, const char* phase, | 24 FILE* OpenVisualizerLogFile(CompilationInfo* info, const char* phase, |
25 const char* suffix, const char* mode); | 25 const char* suffix, const char* mode); |
26 | 26 |
27 struct AsDOT { | |
28 explicit AsDOT(const Graph& g) : graph(g) {} | |
29 const Graph& graph; | |
30 }; | |
31 | |
32 std::ostream& operator<<(std::ostream& os, const AsDOT& ad); | |
33 | |
34 | |
35 struct AsJSON { | 27 struct AsJSON { |
36 AsJSON(const Graph& g, SourcePositionTable* p) : graph(g), positions(p) {} | 28 AsJSON(const Graph& g, SourcePositionTable* p) : graph(g), positions(p) {} |
37 const Graph& graph; | 29 const Graph& graph; |
38 const SourcePositionTable* positions; | 30 const SourcePositionTable* positions; |
39 }; | 31 }; |
40 | 32 |
41 std::ostream& operator<<(std::ostream& os, const AsJSON& ad); | 33 std::ostream& operator<<(std::ostream& os, const AsJSON& ad); |
42 | 34 |
43 struct AsRPO { | 35 struct AsRPO { |
44 explicit AsRPO(const Graph& g) : graph(g) {} | 36 explicit AsRPO(const Graph& g) : graph(g) {} |
(...skipping 24 matching lines...) Expand all Loading... |
69 }; | 61 }; |
70 | 62 |
71 struct AsC1VRegisterAllocationData { | 63 struct AsC1VRegisterAllocationData { |
72 explicit AsC1VRegisterAllocationData( | 64 explicit AsC1VRegisterAllocationData( |
73 const char* phase, const RegisterAllocationData* data = nullptr) | 65 const char* phase, const RegisterAllocationData* data = nullptr) |
74 : phase_(phase), data_(data) {} | 66 : phase_(phase), data_(data) {} |
75 const char* phase_; | 67 const char* phase_; |
76 const RegisterAllocationData* data_; | 68 const RegisterAllocationData* data_; |
77 }; | 69 }; |
78 | 70 |
79 std::ostream& operator<<(std::ostream& os, const AsDOT& ad); | |
80 std::ostream& operator<<(std::ostream& os, const AsC1VCompilation& ac); | 71 std::ostream& operator<<(std::ostream& os, const AsC1VCompilation& ac); |
81 std::ostream& operator<<(std::ostream& os, const AsC1V& ac); | 72 std::ostream& operator<<(std::ostream& os, const AsC1V& ac); |
82 std::ostream& operator<<(std::ostream& os, | 73 std::ostream& operator<<(std::ostream& os, |
83 const AsC1VRegisterAllocationData& ac); | 74 const AsC1VRegisterAllocationData& ac); |
84 | 75 |
85 } // namespace compiler | 76 } // namespace compiler |
86 } // namespace internal | 77 } // namespace internal |
87 } // namespace v8 | 78 } // namespace v8 |
88 | 79 |
89 #endif // V8_COMPILER_GRAPH_VISUALIZER_H_ | 80 #endif // V8_COMPILER_GRAPH_VISUALIZER_H_ |
OLD | NEW |