Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: src/compiler/simplified-operator.h

Issue 2621423006: [turbofan] Add support for (deferred) instance migration. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698