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 3 // found in the LICENSE file. 4 5 #include "src/compiler/graph.h" 6 7 #include "src/compiler/common-operator.h" 8 #include "src/compiler/generic-node-inl.h" 9 #include "src/compiler/graph-inl.h" 10 #include "src/compiler/node.h" 11 #include "src/compiler/node-aux-data-inl.h" 12 #include "src/compiler/node-properties.h" 13 #include "src/compiler/node-properties-inl.h" 14 #include "src/compiler/operator-properties.h" 15 #include "src/compiler/operator-properties-inl.h" 16 17 namespace v8 { 18 namespace internal { 19 namespace compiler { 20 Graph(Zone * zone)21Graph::Graph(Zone* zone) : GenericGraph<Node>(zone), decorators_(zone) {} 22 23 NewNode(const Operator * op,int input_count,Node ** inputs)24Node* Graph::NewNode(const Operator* op, int input_count, Node** inputs) { 25 DCHECK_LE(op->InputCount(), input_count); 26 Node* result = Node::New(this, input_count, inputs); 27 result->Initialize(op); 28 for (ZoneVector<GraphDecorator*>::iterator i = decorators_.begin(); 29 i != decorators_.end(); ++i) { 30 (*i)->Decorate(result); 31 } 32 return result; 33 } 34 35 } // namespace compiler 36 } // namespace internal 37 } // namespace v8 38