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

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

Issue 2950773002: [turbofan] Introduce new JSCallWithArrayLike operator. (Closed)
Patch Set: REBASE Created 3 years, 6 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/js-generic-lowering.cc ('k') | src/compiler/js-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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 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_JS_OPERATOR_H_ 5 #ifndef V8_COMPILER_JS_OPERATOR_H_
6 #define V8_COMPILER_JS_OPERATOR_H_ 6 #define V8_COMPILER_JS_OPERATOR_H_
7 7
8 #include "src/base/compiler-specific.h" 8 #include "src/base/compiler-specific.h"
9 #include "src/globals.h" 9 #include "src/globals.h"
10 #include "src/handles.h" 10 #include "src/handles.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 friend size_t hash_value(CallFrequency f) { 50 friend size_t hash_value(CallFrequency f) {
51 return bit_cast<uint32_t>(f.value_); 51 return bit_cast<uint32_t>(f.value_);
52 } 52 }
53 53
54 private: 54 private:
55 float value_; 55 float value_;
56 }; 56 };
57 57
58 std::ostream& operator<<(std::ostream&, CallFrequency); 58 std::ostream& operator<<(std::ostream&, CallFrequency);
59 59
60 CallFrequency CallFrequencyOf(Operator const* op) WARN_UNUSED_RESULT;
61
60 // Defines a pair of {FeedbackVector} and {FeedbackSlot}, which 62 // Defines a pair of {FeedbackVector} and {FeedbackSlot}, which
61 // is used to access the type feedback for a certain {Node}. 63 // is used to access the type feedback for a certain {Node}.
62 class V8_EXPORT_PRIVATE VectorSlotPair { 64 class V8_EXPORT_PRIVATE VectorSlotPair {
63 public: 65 public:
64 VectorSlotPair(); 66 VectorSlotPair();
65 VectorSlotPair(Handle<FeedbackVector> vector, FeedbackSlot slot) 67 VectorSlotPair(Handle<FeedbackVector> vector, FeedbackSlot slot)
66 : vector_(vector), slot_(slot) {} 68 : vector_(vector), slot_(slot) {}
67 69
68 bool IsValid() const { return !vector_.is_null() && !slot_.IsInvalid(); } 70 bool IsValid() const { return !vector_.is_null() && !slot_.IsInvalid(); }
69 71
(...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after
724 const Operator* CreateLiteralRegExp(Handle<String> constant_pattern, 726 const Operator* CreateLiteralRegExp(Handle<String> constant_pattern,
725 int literal_flags, int literal_index); 727 int literal_flags, int literal_index);
726 728
727 const Operator* CallForwardVarargs(size_t arity, uint32_t start_index, 729 const Operator* CallForwardVarargs(size_t arity, uint32_t start_index,
728 TailCallMode tail_call_mode); 730 TailCallMode tail_call_mode);
729 const Operator* Call( 731 const Operator* Call(
730 size_t arity, CallFrequency frequency = CallFrequency(), 732 size_t arity, CallFrequency frequency = CallFrequency(),
731 VectorSlotPair const& feedback = VectorSlotPair(), 733 VectorSlotPair const& feedback = VectorSlotPair(),
732 ConvertReceiverMode convert_mode = ConvertReceiverMode::kAny, 734 ConvertReceiverMode convert_mode = ConvertReceiverMode::kAny,
733 TailCallMode tail_call_mode = TailCallMode::kDisallow); 735 TailCallMode tail_call_mode = TailCallMode::kDisallow);
736 const Operator* CallWithArrayLike(CallFrequency frequency);
734 const Operator* CallWithSpread(uint32_t arity); 737 const Operator* CallWithSpread(uint32_t arity);
735 const Operator* CallRuntime(Runtime::FunctionId id); 738 const Operator* CallRuntime(Runtime::FunctionId id);
736 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity); 739 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity);
737 const Operator* CallRuntime(const Runtime::Function* function, size_t arity); 740 const Operator* CallRuntime(const Runtime::Function* function, size_t arity);
738 741
739 const Operator* ConstructForwardVarargs(size_t arity, uint32_t start_index); 742 const Operator* ConstructForwardVarargs(size_t arity, uint32_t start_index);
740 const Operator* Construct(uint32_t arity, 743 const Operator* Construct(uint32_t arity,
741 CallFrequency frequency = CallFrequency(), 744 CallFrequency frequency = CallFrequency(),
742 VectorSlotPair const& feedback = VectorSlotPair()); 745 VectorSlotPair const& feedback = VectorSlotPair());
743 const Operator* ConstructWithSpread(uint32_t arity); 746 const Operator* ConstructWithSpread(uint32_t arity);
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
818 Zone* const zone_; 821 Zone* const zone_;
819 822
820 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); 823 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder);
821 }; 824 };
822 825
823 } // namespace compiler 826 } // namespace compiler
824 } // namespace internal 827 } // namespace internal
825 } // namespace v8 828 } // namespace v8
826 829
827 #endif // V8_COMPILER_JS_OPERATOR_H_ 830 #endif // V8_COMPILER_JS_OPERATOR_H_
OLDNEW
« no previous file with comments | « src/compiler/js-generic-lowering.cc ('k') | src/compiler/js-operator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698