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

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

Issue 2154073002: [Turbofan]: Eliminate the check for -0 if it's not possible/observable. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Code comments. Created 4 years, 5 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/compiler/operator.h" 10 #include "src/compiler/operator.h"
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 kNeverReturnHole, // Never return the hole (deoptimize instead). 122 kNeverReturnHole, // Never return the hole (deoptimize instead).
123 kConvertHoleToUndefined // Convert the hole to undefined. 123 kConvertHoleToUndefined // Convert the hole to undefined.
124 }; 124 };
125 125
126 size_t hash_value(CheckTaggedHoleMode); 126 size_t hash_value(CheckTaggedHoleMode);
127 127
128 std::ostream& operator<<(std::ostream&, CheckTaggedHoleMode); 128 std::ostream& operator<<(std::ostream&, CheckTaggedHoleMode);
129 129
130 CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator*) WARN_UNUSED_RESULT; 130 CheckTaggedHoleMode CheckTaggedHoleModeOf(const Operator*) WARN_UNUSED_RESULT;
131 131
132 enum class CheckForMinusZeroMode : uint8_t {
133 kCheckForMinusZero,
134 kDontCheckForMinusZero,
135 };
136
137 size_t hash_value(CheckForMinusZeroMode);
138
139 std::ostream& operator<<(std::ostream&, CheckForMinusZeroMode);
140
141 CheckForMinusZeroMode CheckMinusZeroModeOf(const Operator*) WARN_UNUSED_RESULT;
142
132 Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT; 143 Type* TypeOf(const Operator* op) WARN_UNUSED_RESULT;
133 144
134 BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op); 145 BinaryOperationHints::Hint BinaryOperationHintOf(const Operator* op);
135 146
136 CompareOperationHints::Hint CompareOperationHintOf(const Operator* op); 147 CompareOperationHints::Hint CompareOperationHintOf(const Operator* op);
137 148
138 // Interface for building simplified operators, which represent the 149 // Interface for building simplified operators, which represent the
139 // medium-level operations of V8, including adding numbers, allocating objects, 150 // medium-level operations of V8, including adding numbers, allocating objects,
140 // indexing into objects and arrays, etc. 151 // indexing into objects and arrays, etc.
141 // All operators are typed but many are representation independent. 152 // All operators are typed but many are representation independent.
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 const Operator* CheckNumber(); 265 const Operator* CheckNumber();
255 const Operator* CheckTaggedPointer(); 266 const Operator* CheckTaggedPointer();
256 const Operator* CheckTaggedSigned(); 267 const Operator* CheckTaggedSigned();
257 268
258 const Operator* CheckedInt32Add(); 269 const Operator* CheckedInt32Add();
259 const Operator* CheckedInt32Sub(); 270 const Operator* CheckedInt32Sub();
260 const Operator* CheckedInt32Div(); 271 const Operator* CheckedInt32Div();
261 const Operator* CheckedInt32Mod(); 272 const Operator* CheckedInt32Mod();
262 const Operator* CheckedUint32Div(); 273 const Operator* CheckedUint32Div();
263 const Operator* CheckedUint32Mod(); 274 const Operator* CheckedUint32Mod();
264 const Operator* CheckedInt32Mul(); 275 const Operator* CheckedInt32Mul(CheckForMinusZeroMode);
265 const Operator* CheckedUint32ToInt32(); 276 const Operator* CheckedUint32ToInt32();
266 const Operator* CheckedFloat64ToInt32(); 277 const Operator* CheckedFloat64ToInt32();
267 const Operator* CheckedTaggedToInt32(); 278 const Operator* CheckedTaggedToInt32();
268 const Operator* CheckedTaggedToFloat64(); 279 const Operator* CheckedTaggedToFloat64();
269 280
270 const Operator* CheckFloat64Hole(CheckFloat64HoleMode); 281 const Operator* CheckFloat64Hole(CheckFloat64HoleMode);
271 const Operator* CheckTaggedHole(CheckTaggedHoleMode); 282 const Operator* CheckTaggedHole(CheckTaggedHoleMode);
272 283
273 const Operator* ObjectIsCallable(); 284 const Operator* ObjectIsCallable();
274 const Operator* ObjectIsNumber(); 285 const Operator* ObjectIsNumber();
(...skipping 26 matching lines...) Expand all
301 Zone* const zone_; 312 Zone* const zone_;
302 313
303 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); 314 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder);
304 }; 315 };
305 316
306 } // namespace compiler 317 } // namespace compiler
307 } // namespace internal 318 } // namespace internal
308 } // namespace v8 319 } // namespace v8
309 320
310 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ 321 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698