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_INT64_LOWERING_H_ | 5 #ifndef V8_COMPILER_INT64_LOWERING_H_ |
6 #define V8_COMPILER_INT64_LOWERING_H_ | 6 #define V8_COMPILER_INT64_LOWERING_H_ |
7 | 7 |
8 #include "src/compiler/common-operator.h" | 8 #include "src/compiler/common-operator.h" |
9 #include "src/compiler/graph.h" | 9 #include "src/compiler/graph.h" |
10 #include "src/compiler/machine-operator.h" | 10 #include "src/compiler/machine-operator.h" |
(...skipping 19 matching lines...) Expand all Loading... |
30 Node* low; | 30 Node* low; |
31 Node* high; | 31 Node* high; |
32 }; | 32 }; |
33 | 33 |
34 Zone* zone() const { return zone_; } | 34 Zone* zone() const { return zone_; } |
35 Graph* graph() const { return graph_; } | 35 Graph* graph() const { return graph_; } |
36 MachineOperatorBuilder* machine() const { return machine_; } | 36 MachineOperatorBuilder* machine() const { return machine_; } |
37 CommonOperatorBuilder* common() const { return common_; } | 37 CommonOperatorBuilder* common() const { return common_; } |
38 Signature<MachineRepresentation>* signature() const { return signature_; } | 38 Signature<MachineRepresentation>* signature() const { return signature_; } |
39 | 39 |
| 40 void PrepareReplacements(Node* node); |
| 41 void PushNode(Node* node); |
40 void LowerNode(Node* node); | 42 void LowerNode(Node* node); |
41 bool DefaultLowering(Node* node); | 43 bool DefaultLowering(Node* node); |
42 void LowerComparison(Node* node, const Operator* signed_op, | 44 void LowerComparison(Node* node, const Operator* signed_op, |
43 const Operator* unsigned_op); | 45 const Operator* unsigned_op); |
| 46 void PrepareProjectionReplacements(Node* node); |
44 | 47 |
45 void ReplaceNode(Node* old, Node* new_low, Node* new_high); | 48 void ReplaceNode(Node* old, Node* new_low, Node* new_high); |
46 bool HasReplacementLow(Node* node); | 49 bool HasReplacementLow(Node* node); |
47 Node* GetReplacementLow(Node* node); | 50 Node* GetReplacementLow(Node* node); |
48 bool HasReplacementHigh(Node* node); | 51 bool HasReplacementHigh(Node* node); |
49 Node* GetReplacementHigh(Node* node); | 52 Node* GetReplacementHigh(Node* node); |
50 void PreparePhiReplacement(Node* phi); | 53 void PreparePhiReplacement(Node* phi); |
51 | 54 |
52 struct NodeState { | 55 struct NodeState { |
53 Node* node; | 56 Node* node; |
54 int input_index; | 57 int input_index; |
55 }; | 58 }; |
56 | 59 |
57 Zone* zone_; | 60 Zone* zone_; |
58 Graph* const graph_; | 61 Graph* const graph_; |
59 MachineOperatorBuilder* machine_; | 62 MachineOperatorBuilder* machine_; |
60 CommonOperatorBuilder* common_; | 63 CommonOperatorBuilder* common_; |
61 NodeMarker<State> state_; | 64 NodeMarker<State> state_; |
62 ZoneDeque<NodeState> stack_; | 65 ZoneDeque<NodeState> stack_; |
63 Replacement* replacements_; | 66 Replacement* replacements_; |
64 Signature<MachineRepresentation>* signature_; | 67 Signature<MachineRepresentation>* signature_; |
65 Node* placeholder_; | 68 Node* placeholder_; |
66 }; | 69 }; |
67 | 70 |
68 } // namespace compiler | 71 } // namespace compiler |
69 } // namespace internal | 72 } // namespace internal |
70 } // namespace v8 | 73 } // namespace v8 |
71 | 74 |
72 #endif // V8_COMPILER_INT64_LOWERING_H_ | 75 #endif // V8_COMPILER_INT64_LOWERING_H_ |
OLD | NEW |