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_NODE_AUX_DATA_INL_H_
6#define V8_COMPILER_NODE_AUX_DATA_INL_H_
7
8#include "src/compiler/graph.h"
9#include "src/compiler/node.h"
10#include "src/compiler/node-aux-data.h"
11
12namespace v8 {
13namespace internal {
14namespace compiler {
15
16template <class T>
17NodeAuxData<T>::NodeAuxData(Zone* zone)
18    : aux_data_(zone) {}
19
20
21template <class T>
22void NodeAuxData<T>::Set(Node* node, const T& data) {
23  int id = node->id();
24  if (id >= static_cast<int>(aux_data_.size())) {
25    aux_data_.resize(id + 1);
26  }
27  aux_data_[id] = data;
28}
29
30
31template <class T>
32T NodeAuxData<T>::Get(Node* node) {
33  int id = node->id();
34  if (id >= static_cast<int>(aux_data_.size())) {
35    return T();
36  }
37  return aux_data_[id];
38}
39}
40}
41}  // namespace v8::internal::compiler
42
43#endif
44