deps: update v8 to 4.3.61.21
[platform/upstream/nodejs.git] / deps / v8 / src / compiler / js-builtin-reducer.h
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_JS_BUILTIN_REDUCER_H_
6 #define V8_COMPILER_JS_BUILTIN_REDUCER_H_
7
8 #include "src/compiler/graph-reducer.h"
9 #include "src/compiler/simplified-operator.h"
10
11 namespace v8 {
12 namespace internal {
13 namespace compiler {
14
15 // Forward declarations.
16 class CommonOperatorBuilder;
17 class JSGraph;
18 class MachineOperatorBuilder;
19
20
21 class JSBuiltinReducer FINAL : public Reducer {
22  public:
23   explicit JSBuiltinReducer(JSGraph* jsgraph);
24   ~JSBuiltinReducer() FINAL {}
25
26   Reduction Reduce(Node* node) FINAL;
27
28  private:
29   Reduction ReduceMathMax(Node* node);
30   Reduction ReduceMathImul(Node* node);
31   Reduction ReduceMathFround(Node* node);
32
33   JSGraph* jsgraph() const { return jsgraph_; }
34   Graph* graph() const;
35   CommonOperatorBuilder* common() const;
36   MachineOperatorBuilder* machine() const;
37   SimplifiedOperatorBuilder* simplified() { return &simplified_; }
38
39   JSGraph* jsgraph_;
40   SimplifiedOperatorBuilder simplified_;
41 };
42
43 }  // namespace compiler
44 }  // namespace internal
45 }  // namespace v8
46
47 #endif  // V8_COMPILER_JS_BUILTIN_REDUCER_H_