• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1  // Copyright 2014 the V8 project authors. All rights reserved.
2  // Use of this source code is governed by a BSD-style license that can be
3  // found in the LICENSE file.
4  
5  #ifndef V8_COMPILER_GRAPH_REPLAY_H_
6  #define V8_COMPILER_GRAPH_REPLAY_H_
7  
8  #include "src/compiler/node.h"
9  
10  namespace v8 {
11  namespace internal {
12  namespace compiler {
13  
14  // Forward declarations.
15  class Graph;
16  
17  // Helper class to print a full replay of a graph. This replay can be used to
18  // materialize the same graph within a C++ unit test and hence test subsequent
19  // optimization passes on a graph without going through the construction steps.
20  class GraphReplayPrinter {
21   public:
22  #ifdef DEBUG
23    static void PrintReplay(Graph* graph);
24  #else
25    static void PrintReplay(Graph* graph) {}
26  #endif
27  
28   private:
GraphReplayPrinter()29    GraphReplayPrinter() {}
30  
31    static void PrintReplayOpCreator(const Operator* op);
32  
33    DISALLOW_COPY_AND_ASSIGN(GraphReplayPrinter);
34  };
35  
36  }  // namespace compiler
37  }  // namespace internal
38  }  // namespace v8
39  
40  #endif  // V8_COMPILER_GRAPH_REPLAY_H_
41