OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_COMPILER_MACHINE_OPERATOR_REDUCER_H_ | 5 #ifndef V8_COMPILER_MACHINE_OPERATOR_REDUCER_H_ |
6 #define V8_COMPILER_MACHINE_OPERATOR_REDUCER_H_ | 6 #define V8_COMPILER_MACHINE_OPERATOR_REDUCER_H_ |
7 | 7 |
8 #include "src/compiler/common-operator.h" | 8 #include "src/compiler/common-operator.h" |
9 #include "src/compiler/graph-reducer.h" | 9 #include "src/compiler/graph-reducer.h" |
10 #include "src/compiler/machine-operator.h" | 10 #include "src/compiler/machine-operator.h" |
(...skipping 14 matching lines...) Expand all Loading... |
25 MachineOperatorReducer(Graph* graph, CommonNodeCache* cache); | 25 MachineOperatorReducer(Graph* graph, CommonNodeCache* cache); |
26 | 26 |
27 virtual Reduction Reduce(Node* node); | 27 virtual Reduction Reduce(Node* node); |
28 | 28 |
29 private: | 29 private: |
30 Graph* graph_; | 30 Graph* graph_; |
31 CommonNodeCache* cache_; | 31 CommonNodeCache* cache_; |
32 CommonOperatorBuilder common_; | 32 CommonOperatorBuilder common_; |
33 MachineOperatorBuilder machine_; | 33 MachineOperatorBuilder machine_; |
34 | 34 |
| 35 Node* Float64Constant(volatile double value); |
35 Node* Int32Constant(int32_t value); | 36 Node* Int32Constant(int32_t value); |
36 Node* Float64Constant(volatile double value); | 37 Node* Int64Constant(int64_t value); |
37 | 38 |
38 Reduction ReplaceBool(bool value) { return ReplaceInt32(value ? 1 : 0); } | 39 Reduction ReplaceBool(bool value) { return ReplaceInt32(value ? 1 : 0); } |
39 | 40 Reduction ReplaceFloat64(volatile double value) { |
| 41 return Replace(Float64Constant(value)); |
| 42 } |
40 Reduction ReplaceInt32(int32_t value) { | 43 Reduction ReplaceInt32(int32_t value) { |
41 return Replace(Int32Constant(value)); | 44 return Replace(Int32Constant(value)); |
42 } | 45 } |
43 | 46 Reduction ReplaceInt64(int64_t value) { |
44 Reduction ReplaceFloat64(volatile double value) { | 47 return Replace(Int64Constant(value)); |
45 return Replace(Float64Constant(value)); | |
46 } | 48 } |
47 }; | 49 }; |
48 } | 50 } |
49 } | 51 } |
50 } // namespace v8::internal::compiler | 52 } // namespace v8::internal::compiler |
51 | 53 |
52 #endif // V8_COMPILER_MACHINE_OPERATOR_REDUCER_H_ | 54 #endif // V8_COMPILER_MACHINE_OPERATOR_REDUCER_H_ |
OLD | NEW |