17d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org// Copyright 2013 the V8 project authors. All rights reserved. 27d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org// Use of this source code is governed by a BSD-style license that can be 37d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org// found in the LICENSE file. 47d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 57d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/graph.h" 67d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 77d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/common-operator.h" 87d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/generic-node-inl.h" 97d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/graph-inl.h" 107d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/node.h" 117d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/node-aux-data-inl.h" 127d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/node-properties.h" 137d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/node-properties-inl.h" 147d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/operator-properties.h" 157d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org#include "src/compiler/operator-properties-inl.h" 167d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 177d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgnamespace v8 { 187d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgnamespace internal { 197d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.orgnamespace compiler { 207d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 21fa7f914e3bacba481b13da5cf2bc4c935567ebc4machenbach@chromium.orgGraph::Graph(Zone* zone) : GenericGraph<Node>(zone), decorators_(zone) {} 227d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 237d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 241af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.orgNode* Graph::NewNode(const Operator* op, int input_count, Node** inputs) { 259aaa825cf89e1bcfece269a453300ebf4a26d64dmachenbach@chromium.org DCHECK_LE(op->InputCount(), input_count); 267d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org Node* result = Node::New(this, input_count, inputs); 277d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org result->Initialize(op); 28fa7f914e3bacba481b13da5cf2bc4c935567ebc4machenbach@chromium.org for (ZoneVector<GraphDecorator*>::iterator i = decorators_.begin(); 297d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org i != decorators_.end(); ++i) { 307d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org (*i)->Decorate(result); 317d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org } 327d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org return result; 337d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org} 347d299ad4dc0ca26e0017b190b48362ad71328ce4machenbach@chromium.org 351af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org} // namespace compiler 361af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org} // namespace internal 371af4d9551ad496a28c342004b1a4e2a3840228f7machenbach@chromium.org} // namespace v8 38