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

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

Issue 2236443004: [turbofan] Introduce a dedicated ConvertTaggedHoleToUndefined operator. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Fix verify heap. Created 4 years, 4 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
« no previous file with comments | « src/compiler/simplified-lowering.cc ('k') | src/compiler/simplified-operator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/compiler/operator.h" 10 #include "src/compiler/operator.h"
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
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
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_
OLDNEW
« no previous file with comments | « src/compiler/simplified-lowering.cc ('k') | src/compiler/simplified-operator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698