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.
5 #ifndef V8_COMPILER_JS_INTRINSIC_BUILDER_H_
6 #define V8_COMPILER_JS_INTRINSIC_BUILDER_H_
8 #include "src/compiler/js-graph.h"
15 typedef std::pair<Node*, Node*> ResultAndEffect;
17 class JSIntrinsicBuilder {
19 explicit JSIntrinsicBuilder(JSGraph* jsgraph) : jsgraph_(jsgraph) {}
21 ResultAndEffect BuildGraphFor(Runtime::FunctionId id,
22 const NodeVector& arguments);
25 ResultAndEffect BuildMapCheck(Node* object, Node* effect,
26 InstanceType map_type);
27 ResultAndEffect BuildGraphFor_IsSmi(const NodeVector& arguments);
28 ResultAndEffect BuildGraphFor_IsNonNegativeSmi(const NodeVector& arguments);
29 ResultAndEffect BuildGraphFor_ValueOf(const NodeVector& arguments);
32 Graph* graph() const { return jsgraph_->graph(); }
33 CommonOperatorBuilder* common() const { return jsgraph_->common(); }
38 } // namespace v8::internal::compiler
40 #endif // V8_COMPILER_JS_INTRINSIC_BUILDER_H_