blob: be89ebd045b531af864567e6d8ee5ebfb495fe95 [file] [log] [blame]
Ben Murdochb8a8cc12014-11-26 15:28:44 +00001// 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
10namespace v8 {
11namespace internal {
12namespace compiler {
13
14// Forward declarations.
15class 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.
Ben Murdoch4a90d5f2016-03-22 12:00:34 +000020class GraphReplayPrinter {
Ben Murdochb8a8cc12014-11-26 15:28:44 +000021 public:
22#ifdef DEBUG
23 static void PrintReplay(Graph* graph);
24#else
25 static void PrintReplay(Graph* graph) {}
26#endif
27
Ben Murdochb8a8cc12014-11-26 15:28:44 +000028 private:
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_