| 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_GENERIC_GRAPH_H_ |   5 #ifndef V8_COMPILER_GENERIC_GRAPH_H_ | 
|   6 #define V8_COMPILER_GENERIC_GRAPH_H_ |   6 #define V8_COMPILER_GENERIC_GRAPH_H_ | 
|   7  |   7  | 
|   8 #include "src/compiler/generic-node.h" |   8 #include "src/compiler/generic-node.h" | 
|   9  |   9  | 
|  10 namespace v8 { |  10 namespace v8 { | 
|  11 namespace internal { |  11 namespace internal { | 
|  12  |  12  | 
|  13 class Zone; |  13 class Zone; | 
|  14  |  14  | 
|  15 namespace compiler { |  15 namespace compiler { | 
|  16  |  16  | 
|  17 class GenericGraphBase : public ZoneObject { |  17 class GenericGraphBase : public ZoneObject { | 
|  18  public: |  18  public: | 
|  19   explicit GenericGraphBase(Zone* zone) : zone_(zone), next_node_id_(0) {} |  19   explicit GenericGraphBase(Zone* zone) : zone_(zone), next_node_id_(0) {} | 
|  20  |  20  | 
|  21   Zone* zone() const { return zone_; } |  21   Zone* zone() const { return zone_; } | 
|  22  |  22  | 
|  23   NodeId NextNodeID() { return next_node_id_++; } |  23   NodeId NextNodeID() { return next_node_id_++; } | 
|  24   NodeId NodeCount() const { return next_node_id_; } |  24   NodeId NodeCount() const { return next_node_id_; } | 
 |  25   void SetNextNodeId(NodeId next) { next_node_id_ = next; } | 
|  25  |  26  | 
|  26  private: |  27  private: | 
|  27   Zone* zone_; |  28   Zone* zone_; | 
|  28   NodeId next_node_id_; |  29   NodeId next_node_id_; | 
|  29 }; |  30 }; | 
|  30  |  31  | 
|  31 template <class V> |  32 template <class V> | 
|  32 class GenericGraph : public GenericGraphBase { |  33 class GenericGraph : public GenericGraphBase { | 
|  33  public: |  34  public: | 
|  34   explicit GenericGraph(Zone* zone) |  35   explicit GenericGraph(Zone* zone) | 
|  35       : GenericGraphBase(zone), start_(NULL), end_(NULL) {} |  36       : GenericGraphBase(zone), start_(NULL), end_(NULL) {} | 
|  36  |  37  | 
|  37   V* start() { return start_; } |  38   V* start() { return start_; } | 
|  38   V* end() { return end_; } |  39   V* end() { return end_; } | 
|  39  |  40  | 
|  40   void SetStart(V* start) { start_ = start; } |  41   void SetStart(V* start) { start_ = start; } | 
|  41   void SetEnd(V* end) { end_ = end; } |  42   void SetEnd(V* end) { end_ = end; } | 
|  42  |  43  | 
|  43  private: |  44  private: | 
|  44   V* start_; |  45   V* start_; | 
|  45   V* end_; |  46   V* end_; | 
|  46  |  47  | 
|  47   DISALLOW_COPY_AND_ASSIGN(GenericGraph); |  48   DISALLOW_COPY_AND_ASSIGN(GenericGraph); | 
|  48 }; |  49 }; | 
|  49 } |  50 } | 
|  50 } |  51 } | 
|  51 }  // namespace v8::internal::compiler |  52 }  // namespace v8::internal::compiler | 
|  52  |  53  | 
|  53 #endif  // V8_COMPILER_GENERIC_GRAPH_H_ |  54 #endif  // V8_COMPILER_GENERIC_GRAPH_H_ | 
| OLD | NEW |