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 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 kNumberOrOddball, // Inputs were Number or Oddball, output was Number. | 235 kNumberOrOddball, // Inputs were Number or Oddball, output was Number. |
236 }; | 236 }; |
237 | 237 |
238 size_t hash_value(NumberOperationHint); | 238 size_t hash_value(NumberOperationHint); |
239 | 239 |
240 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream&, NumberOperationHint); | 240 V8_EXPORT_PRIVATE std::ostream& operator<<(std::ostream&, NumberOperationHint); |
241 | 241 |
242 NumberOperationHint NumberOperationHintOf(const Operator* op) | 242 NumberOperationHint NumberOperationHintOf(const Operator* op) |
243 WARN_UNUSED_RESULT; | 243 WARN_UNUSED_RESULT; |
244 | 244 |
245 int ParameterCountOf(const Operator* op) WARN_UNUSED_RESULT; | 245 int FormalParameterCountOf(const Operator* op) WARN_UNUSED_RESULT; |
| 246 bool IsRestLengthOf(const Operator* op) WARN_UNUSED_RESULT; |
246 | 247 |
247 PretenureFlag PretenureFlagOf(const Operator* op) WARN_UNUSED_RESULT; | 248 PretenureFlag PretenureFlagOf(const Operator* op) WARN_UNUSED_RESULT; |
248 | 249 |
249 UnicodeEncoding UnicodeEncodingOf(const Operator*) WARN_UNUSED_RESULT; | 250 UnicodeEncoding UnicodeEncodingOf(const Operator*) WARN_UNUSED_RESULT; |
250 | 251 |
251 // Interface for building simplified operators, which represent the | 252 // Interface for building simplified operators, which represent the |
252 // medium-level operations of V8, including adding numbers, allocating objects, | 253 // medium-level operations of V8, including adding numbers, allocating objects, |
253 // indexing into objects and arrays, etc. | 254 // indexing into objects and arrays, etc. |
254 // All operators are typed but many are representation independent. | 255 // All operators are typed but many are representation independent. |
255 | 256 |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
412 const Operator* ConvertTaggedHoleToUndefined(); | 413 const Operator* ConvertTaggedHoleToUndefined(); |
413 | 414 |
414 const Operator* ObjectIsDetectableCallable(); | 415 const Operator* ObjectIsDetectableCallable(); |
415 const Operator* ObjectIsNonCallable(); | 416 const Operator* ObjectIsNonCallable(); |
416 const Operator* ObjectIsNumber(); | 417 const Operator* ObjectIsNumber(); |
417 const Operator* ObjectIsReceiver(); | 418 const Operator* ObjectIsReceiver(); |
418 const Operator* ObjectIsSmi(); | 419 const Operator* ObjectIsSmi(); |
419 const Operator* ObjectIsString(); | 420 const Operator* ObjectIsString(); |
420 const Operator* ObjectIsUndetectable(); | 421 const Operator* ObjectIsUndetectable(); |
421 | 422 |
422 // new-rest-parameter-elements | 423 const Operator* ArgumentsFrame(); |
423 const Operator* NewRestParameterElements(int parameter_count); | 424 const Operator* ArgumentsLength(int formal_parameter_count, |
| 425 bool is_rest_length); |
424 | 426 |
425 // new-unmapped-arguments-elements | 427 // new-unmapped-arguments-elements |
426 const Operator* NewUnmappedArgumentsElements(int parameter_count); | 428 const Operator* NewUnmappedArgumentsElements(); |
427 | 429 |
428 // array-buffer-was-neutered buffer | 430 // array-buffer-was-neutered buffer |
429 const Operator* ArrayBufferWasNeutered(); | 431 const Operator* ArrayBufferWasNeutered(); |
430 | 432 |
431 // ensure-writable-fast-elements object, elements | 433 // ensure-writable-fast-elements object, elements |
432 const Operator* EnsureWritableFastElements(); | 434 const Operator* EnsureWritableFastElements(); |
433 | 435 |
434 // maybe-grow-fast-elements object, elements, index, length | 436 // maybe-grow-fast-elements object, elements, index, length |
435 const Operator* MaybeGrowFastElements(GrowFastElementsFlags flags); | 437 const Operator* MaybeGrowFastElements(GrowFastElementsFlags flags); |
436 | 438 |
(...skipping 30 matching lines...) Expand all Loading... |
467 Zone* const zone_; | 469 Zone* const zone_; |
468 | 470 |
469 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); | 471 DISALLOW_COPY_AND_ASSIGN(SimplifiedOperatorBuilder); |
470 }; | 472 }; |
471 | 473 |
472 } // namespace compiler | 474 } // namespace compiler |
473 } // namespace internal | 475 } // namespace internal |
474 } // namespace v8 | 476 } // namespace v8 |
475 | 477 |
476 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ | 478 #endif // V8_COMPILER_SIMPLIFIED_OPERATOR_H_ |
OLD | NEW |