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_SIMPLIFIED_OPERATOR_H_ | 5 #ifndef V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
6 #define V8_COMPILER_SIMPLIFIED_OPERATOR_H_ | 6 #define V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/compiler/operator.h" | 10 #include "src/compiler/operator.h" |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 kNeverReturnHole, // Never return the hole (deoptimize instead). | 112 kNeverReturnHole, // Never return the hole (deoptimize instead). |
113 kAllowReturnHole // Allow to return the hole (signaling NaN). | 113 kAllowReturnHole // Allow to return the hole (signaling NaN). |
114 }; | 114 }; |
115 | 115 |
116 size_t hash_value(CheckFloat64HoleMode); | 116 size_t hash_value(CheckFloat64HoleMode); |
117 | 117 |
118 std::ostream& operator<<(std::ostream&, CheckFloat64HoleMode); | 118 std::ostream& operator<<(std::ostream&, CheckFloat64HoleMode); |
119 | 119 |
120 CheckFloat64HoleMode CheckFloat64HoleModeOf(const Operator*) WARN_UNUSED_RESULT; | 120 CheckFloat64HoleMode CheckFloat64HoleModeOf(const Operator*) WARN_UNUSED_RESULT; |
121 | 121 |
122 enum class CheckTaggedHoleMode : uint8_t { | |
123 kNeverReturnHole, // Never return the hole (deoptimize instead). | |
124 kConvertHoleToUndefined // Convert the hole to undefined. | |
125 }; | |
126 | |
127 size_t hash_value(CheckTaggedHoleMode); | |
128 | |
129 std::ostream& operator<<(std::ostream&, CheckTaggedHoleMode); | |
130 | |
131 CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator*) WARN_UNUSED_RESULT; | |
132 | |
133 enum class CheckTaggedInputMode : uint8_t { | 122 enum class CheckTaggedInputMode : uint8_t { |
134 kNumber, | 123 kNumber, |
135 kNumberOrOddball, | 124 kNumberOrOddball, |
136 }; | 125 }; |
137 | 126 |
138 size_t hash_value(CheckTaggedInputMode); | 127 size_t hash_value(CheckTaggedInputMode); |
139 | 128 |
140 std::ostream& operator<<(std::ostream&, CheckTaggedInputMode); | 129 std::ostream& operator<<(std::ostream&, CheckTaggedInputMode); |
141 | 130 |
142 CheckTaggedInputMode CheckTaggedInputModeOf(const Operator*) WARN_UNUSED_RESULT; | 131 CheckTaggedInputMode CheckTaggedInputModeOf(const Operator*) WARN_UNUSED_RESULT; |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
332 const Operator* CheckedUint32Mod(); | 321 const Operator* CheckedUint32Mod(); |
333 const Operator* CheckedInt32Mul(CheckForMinusZeroMode); | 322 const Operator* CheckedInt32Mul(CheckForMinusZeroMode); |
334 const Operator* CheckedUint32ToInt32(); | 323 const Operator* CheckedUint32ToInt32(); |
335 const Operator* CheckedFloat64ToInt32(CheckForMinusZeroMode); | 324 const Operator* CheckedFloat64ToInt32(CheckForMinusZeroMode); |
336 const Operator* CheckedTaggedSignedToInt32(); | 325 const Operator* CheckedTaggedSignedToInt32(); |
337 const Operator* CheckedTaggedToInt32(CheckForMinusZeroMode); | 326 const Operator* CheckedTaggedToInt32(CheckForMinusZeroMode); |
338 const Operator* CheckedTaggedToFloat64(CheckTaggedInputMode); | 327 const Operator* CheckedTaggedToFloat64(CheckTaggedInputMode); |
339 const Operator* CheckedTruncateTaggedToWord32(); | 328 const Operator* CheckedTruncateTaggedToWord32(); |
340 | 329 |
341 const Operator* CheckFloat64Hole(CheckFloat64HoleMode); | 330 const Operator* CheckFloat64Hole(CheckFloat64HoleMode); |
342 const Operator* CheckTaggedHole(CheckTaggedHoleMode); | 331 const Operator* CheckTaggedHole(); |
| 332 const Operator* ConvertTaggedHoleToUndefined(); |
343 | 333 |
344 const Operator* ObjectIsCallable(); | 334 const Operator* ObjectIsCallable(); |
345 const Operator* ObjectIsNumber(); | 335 const Operator* ObjectIsNumber(); |
346 const Operator* ObjectIsReceiver(); | 336 const Operator* ObjectIsReceiver(); |
347 const Operator* ObjectIsSmi(); | 337 const Operator* ObjectIsSmi(); |
348 const Operator* ObjectIsString(); | 338 const Operator* ObjectIsString(); |
349 const Operator* ObjectIsUndetectable(); | 339 const Operator* ObjectIsUndetectable(); |
350 | 340 |
351 // ensure-writable-fast-elements object, elements | 341 // ensure-writable-fast-elements object, elements |
352 const Operator* EnsureWritableFastElements(); | 342 const Operator* EnsureWritableFastElements(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
387 Zone* const zone_; | 377 Zone* const zone_; |
388 | 378 |
389 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); | 379 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); |
390 }; | 380 }; |
391 | 381 |
392 } // namespace compiler | 382 } // namespace compiler |
393 } // namespace internal | 383 } // namespace internal |
394 } // namespace v8 | 384 } // namespace v8 |
395 | 385 |
396 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ | 386 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
OLD | NEW |