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_COMMON_OPERATOR_H_ | 5 #ifndef V8_COMPILER_COMMON_OPERATOR_H_ |
6 #define V8_COMPILER_COMMON_OPERATOR_H_ | 6 #define V8_COMPILER_COMMON_OPERATOR_H_ |
7 | 7 |
8 #include "src/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/compiler/frame-states.h" | 9 #include "src/compiler/frame-states.h" |
10 #include "src/deoptimize-reason.h" | 10 #include "src/deoptimize-reason.h" |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
69 | 69 |
70 bool operator==(DeoptimizeParameters, DeoptimizeParameters); | 70 bool operator==(DeoptimizeParameters, DeoptimizeParameters); |
71 bool operator!=(DeoptimizeParameters, DeoptimizeParameters); | 71 bool operator!=(DeoptimizeParameters, DeoptimizeParameters); |
72 | 72 |
73 size_t hast_value(DeoptimizeParameters p); | 73 size_t hast_value(DeoptimizeParameters p); |
74 | 74 |
75 std::ostream& operator<<(std::ostream&, DeoptimizeParameters p); | 75 std::ostream& operator<<(std::ostream&, DeoptimizeParameters p); |
76 | 76 |
77 DeoptimizeParameters const& DeoptimizeParametersOf(Operator const* const); | 77 DeoptimizeParameters const& DeoptimizeParametersOf(Operator const* const); |
78 | 78 |
79 // Prediction whether throw-site is surrounded by any local catch-scope. | |
80 enum class IfExceptionHint { | |
81 kLocallyUncaught, | |
82 kLocallyCaught, | |
83 kLocallyCaughtForPromiseReject | |
84 }; | |
85 | |
86 IfExceptionHint ExceptionHintFromCatchPrediction( | |
87 HandlerTable::CatchPrediction prediction); | |
88 | |
89 size_t hash_value(IfExceptionHint hint); | |
90 | |
91 std::ostream& operator<<(std::ostream&, IfExceptionHint); | |
92 | |
93 | 79 |
94 class SelectParameters final { | 80 class SelectParameters final { |
95 public: | 81 public: |
96 explicit SelectParameters(MachineRepresentation representation, | 82 explicit SelectParameters(MachineRepresentation representation, |
97 BranchHint hint = BranchHint::kNone) | 83 BranchHint hint = BranchHint::kNone) |
98 : representation_(representation), hint_(hint) {} | 84 : representation_(representation), hint_(hint) {} |
99 | 85 |
100 MachineRepresentation representation() const { return representation_; } | 86 MachineRepresentation representation() const { return representation_; } |
101 BranchHint hint() const { return hint_; } | 87 BranchHint hint() const { return hint_; } |
102 | 88 |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 class CommonOperatorBuilder final : public ZoneObject { | 174 class CommonOperatorBuilder final : public ZoneObject { |
189 public: | 175 public: |
190 explicit CommonOperatorBuilder(Zone* zone); | 176 explicit CommonOperatorBuilder(Zone* zone); |
191 | 177 |
192 const Operator* Dead(); | 178 const Operator* Dead(); |
193 const Operator* End(size_t control_input_count); | 179 const Operator* End(size_t control_input_count); |
194 const Operator* Branch(BranchHint = BranchHint::kNone); | 180 const Operator* Branch(BranchHint = BranchHint::kNone); |
195 const Operator* IfTrue(); | 181 const Operator* IfTrue(); |
196 const Operator* IfFalse(); | 182 const Operator* IfFalse(); |
197 const Operator* IfSuccess(); | 183 const Operator* IfSuccess(); |
198 const Operator* IfException(IfExceptionHint hint); | 184 const Operator* IfException(); |
199 const Operator* Switch(size_t control_output_count); | 185 const Operator* Switch(size_t control_output_count); |
200 const Operator* IfValue(int32_t value); | 186 const Operator* IfValue(int32_t value); |
201 const Operator* IfDefault(); | 187 const Operator* IfDefault(); |
202 const Operator* Throw(); | 188 const Operator* Throw(); |
203 const Operator* Deoptimize(DeoptimizeKind kind, DeoptimizeReason reason); | 189 const Operator* Deoptimize(DeoptimizeKind kind, DeoptimizeReason reason); |
204 const Operator* DeoptimizeIf(DeoptimizeReason reason); | 190 const Operator* DeoptimizeIf(DeoptimizeReason reason); |
205 const Operator* DeoptimizeUnless(DeoptimizeReason reason); | 191 const Operator* DeoptimizeUnless(DeoptimizeReason reason); |
206 const Operator* Return(int value_input_count = 1); | 192 const Operator* Return(int value_input_count = 1); |
207 const Operator* Terminate(); | 193 const Operator* Terminate(); |
208 | 194 |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
266 Zone* const zone_; | 252 Zone* const zone_; |
267 | 253 |
268 DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder); | 254 DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder); |
269 }; | 255 }; |
270 | 256 |
271 } // namespace compiler | 257 } // namespace compiler |
272 } // namespace internal | 258 } // namespace internal |
273 } // namespace v8 | 259 } // namespace v8 |
274 | 260 |
275 #endif // V8_COMPILER_COMMON_OPERATOR_H_ | 261 #endif // V8_COMPILER_COMMON_OPERATOR_H_ |
OLD | NEW |