blob: 67b7ba6e710a77b5ecab0183b46a4274752e473a [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_VERIFIER_H_
6#define V8_COMPILER_VERIFIER_H_
7
8#include "src/v8.h"
9
10namespace v8 {
11namespace internal {
12namespace compiler {
13
14class Graph;
15class Schedule;
16
17// Verifies properties of a graph, such as the well-formedness of inputs to
18// each node, etc.
19class Verifier {
20 public:
Emily Bernierd0a1eb72015-03-24 16:35:39 -040021 enum Typing { TYPED, UNTYPED };
22
23 static void Run(Graph* graph, Typing typing = TYPED);
Ben Murdochb8a8cc12014-11-26 15:28:44 +000024
25 private:
26 class Visitor;
27 DISALLOW_COPY_AND_ASSIGN(Verifier);
28};
29
30// Verifies properties of a schedule, such as dominance, phi placement, etc.
31class ScheduleVerifier {
32 public:
33 static void Run(Schedule* schedule);
34};
35}
36}
37} // namespace v8::internal::compiler
38
39#endif // V8_COMPILER_VERIFIER_H_