// Copyright 2013 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef V8_COMPILER_GRAPH_H_ #define V8_COMPILER_GRAPH_H_ #include <array> #include "src/base/compiler-specific.h" #include "src/zone/zone-containers.h" #include "src/zone/zone.h" namespace v8 { namespace internal { namespace compiler { // Forward declarations. class GraphDecorator; class Node; class Operator; // Marks are used during traversal of the graph to distinguish states of nodes. // Each node has a mark which is a monotonically increasing integer, and a // {NodeMarker} has a range of values that indicate states of a node. Mark; // NodeIds are identifying numbers for nodes that can be used to index auxiliary // out-of-line data associated with each node. NodeId; class V8_EXPORT_PRIVATE Graph final : public NON_EXPORTED_BASE(ZoneObject) { … }; // A graph decorator can be used to add behavior to the creation of nodes // in a graph. class GraphDecorator : public ZoneObject { … }; } // namespace compiler } // namespace internal } // namespace v8 #endif // V8_COMPILER_GRAPH_H_