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

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

Issue 2666783007: [turbo] Rename CallFunction* JSOperators to Call*. (Closed)
Patch Set: Created 3 years, 10 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-native-context-specialization.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/runtime/runtime.h" 10 #include "src/runtime/runtime.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 140
141 uint32_t const bit_field_; 141 uint32_t const bit_field_;
142 }; 142 };
143 143
144 std::ostream& operator<<(std::ostream&, CallForwardVarargsParameters const&); 144 std::ostream& operator<<(std::ostream&, CallForwardVarargsParameters const&);
145 145
146 CallForwardVarargsParameters const& CallForwardVarargsParametersOf( 146 CallForwardVarargsParameters const& CallForwardVarargsParametersOf(
147 Operator const*) WARN_UNUSED_RESULT; 147 Operator const*) WARN_UNUSED_RESULT;
148 148
149 // Defines the arity and the call flags for a JavaScript function call. This is 149 // Defines the arity and the call flags for a JavaScript function call. This is
150 // used as a parameter by JSCallFunction operators. 150 // used as a parameter by JSCall operators.
151 class CallFunctionParameters final { 151 class CallParameters final {
152 public: 152 public:
153 CallFunctionParameters(size_t arity, float frequency, 153 CallParameters(size_t arity, float frequency, VectorSlotPair const& feedback,
154 VectorSlotPair const& feedback, 154 TailCallMode tail_call_mode, ConvertReceiverMode convert_mode)
155 TailCallMode tail_call_mode,
156 ConvertReceiverMode convert_mode)
157 : bit_field_(ArityField::encode(arity) | 155 : bit_field_(ArityField::encode(arity) |
158 ConvertReceiverModeField::encode(convert_mode) | 156 ConvertReceiverModeField::encode(convert_mode) |
159 TailCallModeField::encode(tail_call_mode)), 157 TailCallModeField::encode(tail_call_mode)),
160 frequency_(frequency), 158 frequency_(frequency),
161 feedback_(feedback) {} 159 feedback_(feedback) {}
162 160
163 size_t arity() const { return ArityField::decode(bit_field_); } 161 size_t arity() const { return ArityField::decode(bit_field_); }
164 float frequency() const { return frequency_; } 162 float frequency() const { return frequency_; }
165 ConvertReceiverMode convert_mode() const { 163 ConvertReceiverMode convert_mode() const {
166 return ConvertReceiverModeField::decode(bit_field_); 164 return ConvertReceiverModeField::decode(bit_field_);
167 } 165 }
168 TailCallMode tail_call_mode() const { 166 TailCallMode tail_call_mode() const {
169 return TailCallModeField::decode(bit_field_); 167 return TailCallModeField::decode(bit_field_);
170 } 168 }
171 VectorSlotPair const& feedback() const { return feedback_; } 169 VectorSlotPair const& feedback() const { return feedback_; }
172 170
173 bool operator==(CallFunctionParameters const& that) const { 171 bool operator==(CallParameters const& that) const {
174 return this->bit_field_ == that.bit_field_ && 172 return this->bit_field_ == that.bit_field_ &&
175 this->frequency_ == that.frequency_ && 173 this->frequency_ == that.frequency_ &&
176 this->feedback_ == that.feedback_; 174 this->feedback_ == that.feedback_;
177 } 175 }
178 bool operator!=(CallFunctionParameters const& that) const { 176 bool operator!=(CallParameters const& that) const { return !(*this == that); }
179 return !(*this == that);
180 }
181 177
182 private: 178 private:
183 friend size_t hash_value(CallFunctionParameters const& p) { 179 friend size_t hash_value(CallParameters const& p) {
184 return base::hash_combine(p.bit_field_, p.frequency_, p.feedback_); 180 return base::hash_combine(p.bit_field_, p.frequency_, p.feedback_);
185 } 181 }
186 182
187 typedef BitField<size_t, 0, 29> ArityField; 183 typedef BitField<size_t, 0, 29> ArityField;
188 typedef BitField<ConvertReceiverMode, 29, 2> ConvertReceiverModeField; 184 typedef BitField<ConvertReceiverMode, 29, 2> ConvertReceiverModeField;
189 typedef BitField<TailCallMode, 31, 1> TailCallModeField; 185 typedef BitField<TailCallMode, 31, 1> TailCallModeField;
190 186
191 uint32_t const bit_field_; 187 uint32_t const bit_field_;
192 float const frequency_; 188 float const frequency_;
193 VectorSlotPair const feedback_; 189 VectorSlotPair const feedback_;
194 }; 190 };
195 191
196 size_t hash_value(CallFunctionParameters const&); 192 size_t hash_value(CallParameters const&);
197 193
198 std::ostream& operator<<(std::ostream&, CallFunctionParameters const&); 194 std::ostream& operator<<(std::ostream&, CallParameters const&);
199 195
200 const CallFunctionParameters& CallFunctionParametersOf(const Operator* op); 196 const CallParameters& CallParametersOf(const Operator* op);
201 197
202 // Defines the arity for a JavaScript constructor call with a spread as the last 198 // Defines the arity for a JavaScript constructor call with a spread as the last
203 // parameters. This is used as a parameter by JSConstructWithSpread 199 // parameters. This is used as a parameter by JSConstructWithSpread
204 // operators. 200 // operators.
205 class CallFunctionWithSpreadParameters final { 201 class CallWithSpreadParameters final {
206 public: 202 public:
207 explicit CallFunctionWithSpreadParameters(uint32_t arity) : arity_(arity) {} 203 explicit CallWithSpreadParameters(uint32_t arity) : arity_(arity) {}
208 204
209 uint32_t arity() const { return arity_; } 205 uint32_t arity() const { return arity_; }
210 206
211 private: 207 private:
212 uint32_t const arity_; 208 uint32_t const arity_;
213 }; 209 };
214 210
215 bool operator==(CallFunctionWithSpreadParameters const&, 211 bool operator==(CallWithSpreadParameters const&,
216 CallFunctionWithSpreadParameters const&); 212 CallWithSpreadParameters const&);
217 bool operator!=(CallFunctionWithSpreadParameters const&, 213 bool operator!=(CallWithSpreadParameters const&,
218 CallFunctionWithSpreadParameters const&); 214 CallWithSpreadParameters const&);
219 215
220 size_t hash_value(CallFunctionWithSpreadParameters const&); 216 size_t hash_value(CallWithSpreadParameters const&);
221 217
222 std::ostream& operator<<(std::ostream&, 218 std::ostream& operator<<(std::ostream&, CallWithSpreadParameters const&);
223 CallFunctionWithSpreadParameters const&);
224 219
225 CallFunctionWithSpreadParameters const& CallFunctionWithSpreadParametersOf( 220 CallWithSpreadParameters const& CallWithSpreadParametersOf(Operator const*);
226 Operator const*);
227 221
228 // Defines the arity and the ID for a runtime function call. This is used as a 222 // Defines the arity and the ID for a runtime function call. This is used as a
229 // parameter by JSCallRuntime operators. 223 // parameter by JSCallRuntime operators.
230 class CallRuntimeParameters final { 224 class CallRuntimeParameters final {
231 public: 225 public:
232 CallRuntimeParameters(Runtime::FunctionId id, size_t arity) 226 CallRuntimeParameters(Runtime::FunctionId id, size_t arity)
233 : id_(id), arity_(arity) {} 227 : id_(id), arity_(arity) {}
234 228
235 Runtime::FunctionId id() const { return id_; } 229 Runtime::FunctionId id() const { return id_; }
236 size_t arity() const { return arity_; } 230 size_t arity() const { return arity_; }
(...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 int literal_flags, int literal_index, 601 int literal_flags, int literal_index,
608 int number_of_elements); 602 int number_of_elements);
609 const Operator* CreateLiteralObject(Handle<BoilerplateDescription> constant, 603 const Operator* CreateLiteralObject(Handle<BoilerplateDescription> constant,
610 int literal_flags, int literal_index, 604 int literal_flags, int literal_index,
611 int number_of_properties); 605 int number_of_properties);
612 const Operator* CreateLiteralRegExp(Handle<String> constant_pattern, 606 const Operator* CreateLiteralRegExp(Handle<String> constant_pattern,
613 int literal_flags, int literal_index); 607 int literal_flags, int literal_index);
614 608
615 const Operator* CallForwardVarargs(uint32_t start_index, 609 const Operator* CallForwardVarargs(uint32_t start_index,
616 TailCallMode tail_call_mode); 610 TailCallMode tail_call_mode);
617 const Operator* CallFunction( 611 const Operator* Call(
618 size_t arity, float frequency = 0.0f, 612 size_t arity, float frequency = 0.0f,
619 VectorSlotPair const& feedback = VectorSlotPair(), 613 VectorSlotPair const& feedback = VectorSlotPair(),
620 ConvertReceiverMode convert_mode = ConvertReceiverMode::kAny, 614 ConvertReceiverMode convert_mode = ConvertReceiverMode::kAny,
621 TailCallMode tail_call_mode = TailCallMode::kDisallow); 615 TailCallMode tail_call_mode = TailCallMode::kDisallow);
622 const Operator* CallFunctionWithSpread(uint32_t arity); 616 const Operator* CallWithSpread(uint32_t arity);
623 const Operator* CallRuntime(Runtime::FunctionId id); 617 const Operator* CallRuntime(Runtime::FunctionId id);
624 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity); 618 const Operator* CallRuntime(Runtime::FunctionId id, size_t arity);
625 const Operator* CallRuntime(const Runtime::Function* function, size_t arity); 619 const Operator* CallRuntime(const Runtime::Function* function, size_t arity);
626 const Operator* Construct(uint32_t arity, float frequency, 620 const Operator* Construct(uint32_t arity, float frequency,
627 VectorSlotPair const& feedback); 621 VectorSlotPair const& feedback);
628 const Operator* ConstructWithSpread(uint32_t arity); 622 const Operator* ConstructWithSpread(uint32_t arity);
629 623
630 const Operator* ConvertReceiver(ConvertReceiverMode convert_mode); 624 const Operator* ConvertReceiver(ConvertReceiverMode convert_mode);
631 625
632 const Operator* LoadProperty(VectorSlotPair const& feedback); 626 const Operator* LoadProperty(VectorSlotPair const& feedback);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 Zone* const zone_; 688 Zone* const zone_;
695 689
696 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder); 690 DISALLOW_COPY_AND_ASSIGN(JSOperatorBuilder);
697 }; 691 };
698 692
699 } // namespace compiler 693 } // namespace compiler
700 } // namespace internal 694 } // namespace internal
701 } // namespace v8 695 } // namespace v8
702 696
703 #endif // V8_COMPILER_JS_OPERATOR_H_ 697 #endif // V8_COMPILER_JS_OPERATOR_H_
OLDNEW
« no previous file with comments | « src/compiler/js-native-context-specialization.cc ('k') | src/compiler/js-operator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698