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/base/compiler-specific.h" | 10 #include "src/base/compiler-specific.h" |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
138 kCheckForMinusZero, | 138 kCheckForMinusZero, |
139 kDontCheckForMinusZero, | 139 kDontCheckForMinusZero, |
140 }; | 140 }; |
141 | 141 |
142 size_t hash_value(CheckForMinusZeroMode); | 142 size_t hash_value(CheckForMinusZeroMode); |
143 | 143 |
144 std::ostream& operator<<(std::ostream&, CheckForMinusZeroMode); | 144 std::ostream& operator<<(std::ostream&, CheckForMinusZeroMode); |
145 | 145 |
146 CheckForMinusZeroMode CheckMinusZeroModeOf(const Operator*) WARN_UNUSED_RESULT; | 146 CheckForMinusZeroMode CheckMinusZeroModeOf(const Operator*) WARN_UNUSED_RESULT; |
147 | 147 |
| 148 // Flags for map checks. |
| 149 enum class CheckMapsFlag : uint8_t { |
| 150 kNone = 0u, |
| 151 kTryMigrateInstance = 1u << 0, // Try instance migration. |
| 152 }; |
| 153 typedef base::Flags<CheckMapsFlag> CheckMapsFlags; |
| 154 |
| 155 DEFINE_OPERATORS_FOR_FLAGS(CheckMapsFlags) |
| 156 |
| 157 std::ostream& operator<<(std::ostream&, CheckMapsFlags); |
| 158 |
148 // A descriptor for map checks. | 159 // A descriptor for map checks. |
149 class CheckMapsParameters final { | 160 class CheckMapsParameters final { |
150 public: | 161 public: |
151 explicit CheckMapsParameters(ZoneHandleSet<Map> const& maps) : maps_(maps) {} | 162 CheckMapsParameters(CheckMapsFlags flags, ZoneHandleSet<Map> const& maps) |
| 163 : flags_(flags), maps_(maps) {} |
152 | 164 |
| 165 CheckMapsFlags flags() const { return flags_; } |
153 ZoneHandleSet<Map> const& maps() const { return maps_; } | 166 ZoneHandleSet<Map> const& maps() const { return maps_; } |
154 | 167 |
155 private: | 168 private: |
| 169 CheckMapsFlags const flags_; |
156 ZoneHandleSet<Map> const maps_; | 170 ZoneHandleSet<Map> const maps_; |
157 }; | 171 }; |
158 | 172 |
159 bool operator==(CheckMapsParameters const&, CheckMapsParameters const&); | 173 bool operator==(CheckMapsParameters const&, CheckMapsParameters const&); |
160 bool operator!=(CheckMapsParameters const&, CheckMapsParameters const&); | 174 bool operator!=(CheckMapsParameters const&, CheckMapsParameters const&); |
161 | 175 |
162 size_t hash_value(CheckMapsParameters const&); | 176 size_t hash_value(CheckMapsParameters const&); |
163 | 177 |
164 std::ostream& operator<<(std::ostream&, CheckMapsParameters const&); | 178 std::ostream& operator<<(std::ostream&, CheckMapsParameters const&); |
165 | 179 |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 const Operator* ChangeFloat64ToTagged(); | 371 const Operator* ChangeFloat64ToTagged(); |
358 const Operator* ChangeFloat64ToTaggedPointer(); | 372 const Operator* ChangeFloat64ToTaggedPointer(); |
359 const Operator* ChangeTaggedToBit(); | 373 const Operator* ChangeTaggedToBit(); |
360 const Operator* ChangeBitToTagged(); | 374 const Operator* ChangeBitToTagged(); |
361 const Operator* TruncateTaggedToWord32(); | 375 const Operator* TruncateTaggedToWord32(); |
362 const Operator* TruncateTaggedToFloat64(); | 376 const Operator* TruncateTaggedToFloat64(); |
363 const Operator* TruncateTaggedToBit(); | 377 const Operator* TruncateTaggedToBit(); |
364 | 378 |
365 const Operator* CheckIf(); | 379 const Operator* CheckIf(); |
366 const Operator* CheckBounds(); | 380 const Operator* CheckBounds(); |
367 const Operator* CheckMaps(ZoneHandleSet<Map>); | 381 const Operator* CheckMaps(CheckMapsFlags, ZoneHandleSet<Map>); |
368 | 382 |
369 const Operator* CheckHeapObject(); | 383 const Operator* CheckHeapObject(); |
370 const Operator* CheckInternalizedString(); | 384 const Operator* CheckInternalizedString(); |
371 const Operator* CheckNumber(); | 385 const Operator* CheckNumber(); |
372 const Operator* CheckSmi(); | 386 const Operator* CheckSmi(); |
373 const Operator* CheckString(); | 387 const Operator* CheckString(); |
374 | 388 |
375 const Operator* CheckedInt32Add(); | 389 const Operator* CheckedInt32Add(); |
376 const Operator* CheckedInt32Sub(); | 390 const Operator* CheckedInt32Sub(); |
377 const Operator* CheckedInt32Div(); | 391 const Operator* CheckedInt32Div(); |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 Zone* const zone_; | 463 Zone* const zone_; |
450 | 464 |
451 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); | 465 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); |
452 }; | 466 }; |
453 | 467 |
454 } // namespace compiler | 468 } // namespace compiler |
455 } // namespace internal | 469 } // namespace internal |
456 } // namespace v8 | 470 } // namespace v8 |
457 | 471 |
458 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ | 472 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
OLD | NEW |