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

Side by Side Diff: src/compiler/common-operator.cc

Issue 2473643002: Revert of [turbofan] Support variable size argument popping in TF-generated functions (Closed)
Patch Set: Created 4 years, 1 month 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/code-generator.h ('k') | src/compiler/common-operator-reducer.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 #include "src/compiler/common-operator.h" 5 #include "src/compiler/common-operator.h"
6 6
7 #include "src/assembler.h" 7 #include "src/assembler.h"
8 #include "src/base/lazy-instance.h" 8 #include "src/base/lazy-instance.h"
9 #include "src/compiler/linkage.h" 9 #include "src/compiler/linkage.h"
10 #include "src/compiler/opcodes.h" 10 #include "src/compiler/opcodes.h"
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 V(LoopExit, Operator::kKontrol, 0, 0, 2, 0, 0, 1) \ 249 V(LoopExit, Operator::kKontrol, 0, 0, 2, 0, 0, 1) \
250 V(LoopExitValue, Operator::kPure, 1, 0, 1, 1, 0, 0) \ 250 V(LoopExitValue, Operator::kPure, 1, 0, 1, 1, 0, 0) \
251 V(LoopExitEffect, Operator::kNoThrow, 0, 1, 1, 0, 1, 0) \ 251 V(LoopExitEffect, Operator::kNoThrow, 0, 1, 1, 0, 1, 0) \
252 V(Checkpoint, Operator::kKontrol, 0, 1, 1, 0, 1, 0) \ 252 V(Checkpoint, Operator::kKontrol, 0, 1, 1, 0, 1, 0) \
253 V(FinishRegion, Operator::kKontrol, 1, 1, 0, 1, 1, 0) \ 253 V(FinishRegion, Operator::kKontrol, 1, 1, 0, 1, 1, 0) \
254 V(Retain, Operator::kKontrol, 1, 1, 0, 0, 1, 0) 254 V(Retain, Operator::kKontrol, 1, 1, 0, 0, 1, 0)
255 255
256 #define CACHED_RETURN_LIST(V) \ 256 #define CACHED_RETURN_LIST(V) \
257 V(1) \ 257 V(1) \
258 V(2) \ 258 V(2) \
259 V(3) \ 259 V(3)
260 V(4) 260
261 261
262 #define CACHED_END_LIST(V) \ 262 #define CACHED_END_LIST(V) \
263 V(1) \ 263 V(1) \
264 V(2) \ 264 V(2) \
265 V(3) \ 265 V(3) \
266 V(4) \ 266 V(4) \
267 V(5) \ 267 V(5) \
268 V(6) \ 268 V(6) \
269 V(7) \ 269 V(7) \
270 V(8) 270 V(8)
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
389 : Operator( // -- 389 : Operator( // --
390 IrOpcode::kEnd, Operator::kKontrol, // opcode 390 IrOpcode::kEnd, Operator::kKontrol, // opcode
391 "End", // name 391 "End", // name
392 0, 0, kInputCount, 0, 0, 0) {} // counts 392 0, 0, kInputCount, 0, 0, 0) {} // counts
393 }; 393 };
394 #define CACHED_END(input_count) \ 394 #define CACHED_END(input_count) \
395 EndOperator<input_count> kEnd##input_count##Operator; 395 EndOperator<input_count> kEnd##input_count##Operator;
396 CACHED_END_LIST(CACHED_END) 396 CACHED_END_LIST(CACHED_END)
397 #undef CACHED_END 397 #undef CACHED_END
398 398
399 template <size_t kValueInputCount> 399 template <size_t kInputCount>
400 struct ReturnOperator final : public Operator { 400 struct ReturnOperator final : public Operator {
401 ReturnOperator() 401 ReturnOperator()
402 : Operator( // -- 402 : Operator( // --
403 IrOpcode::kReturn, Operator::kNoThrow, // opcode 403 IrOpcode::kReturn, Operator::kNoThrow, // opcode
404 "Return", // name 404 "Return", // name
405 kValueInputCount + 1, 1, 1, 0, 0, 1) {} // counts 405 kInputCount, 1, 1, 0, 0, 1) {} // counts
406 }; 406 };
407 #define CACHED_RETURN(value_input_count) \ 407 #define CACHED_RETURN(input_count) \
408 ReturnOperator<value_input_count> kReturn##value_input_count##Operator; 408 ReturnOperator<input_count> kReturn##input_count##Operator;
409 CACHED_RETURN_LIST(CACHED_RETURN) 409 CACHED_RETURN_LIST(CACHED_RETURN)
410 #undef CACHED_RETURN 410 #undef CACHED_RETURN
411 411
412 template <BranchHint kBranchHint> 412 template <BranchHint kBranchHint>
413 struct BranchOperator final : public Operator1<BranchHint> { 413 struct BranchOperator final : public Operator1<BranchHint> {
414 BranchOperator() 414 BranchOperator()
415 : Operator1<BranchHint>( // -- 415 : Operator1<BranchHint>( // --
416 IrOpcode::kBranch, Operator::kKontrol, // opcode 416 IrOpcode::kBranch, Operator::kKontrol, // opcode
417 "Branch", // name 417 "Branch", // name
418 1, 0, 1, 0, 0, 2, // counts 418 1, 0, 1, 0, 0, 2, // counts
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 default: 625 default:
626 break; 626 break;
627 } 627 }
628 // Uncached. 628 // Uncached.
629 return new (zone()) Operator( //-- 629 return new (zone()) Operator( //--
630 IrOpcode::kEnd, Operator::kKontrol, // opcode 630 IrOpcode::kEnd, Operator::kKontrol, // opcode
631 "End", // name 631 "End", // name
632 0, 0, control_input_count, 0, 0, 0); // counts 632 0, 0, control_input_count, 0, 0, 0); // counts
633 } 633 }
634 634
635
635 const Operator* CommonOperatorBuilder::Return(int value_input_count) { 636 const Operator* CommonOperatorBuilder::Return(int value_input_count) {
636 switch (value_input_count) { 637 switch (value_input_count) {
637 #define CACHED_RETURN(input_count) \ 638 #define CACHED_RETURN(input_count) \
638 case input_count: \ 639 case input_count: \
639 return &cache_.kReturn##input_count##Operator; 640 return &cache_.kReturn##input_count##Operator;
640 CACHED_RETURN_LIST(CACHED_RETURN) 641 CACHED_RETURN_LIST(CACHED_RETURN)
641 #undef CACHED_RETURN 642 #undef CACHED_RETURN
642 default: 643 default:
643 break; 644 break;
644 } 645 }
645 // Uncached. 646 // Uncached.
646 return new (zone()) Operator( //-- 647 return new (zone()) Operator( //--
647 IrOpcode::kReturn, Operator::kNoThrow, // opcode 648 IrOpcode::kReturn, Operator::kNoThrow, // opcode
648 "Return", // name 649 "Return", // name
649 value_input_count + 1, 1, 1, 0, 0, 1); // counts 650 value_input_count, 1, 1, 0, 0, 1); // counts
650 } 651 }
651 652
652 653
653 const Operator* CommonOperatorBuilder::Branch(BranchHint hint) { 654 const Operator* CommonOperatorBuilder::Branch(BranchHint hint) {
654 switch (hint) { 655 switch (hint) {
655 case BranchHint::kNone: 656 case BranchHint::kNone:
656 return &cache_.kBranchNoneOperator; 657 return &cache_.kBranchNoneOperator;
657 case BranchHint::kTrue: 658 case BranchHint::kTrue:
658 return &cache_.kBranchTrueOperator; 659 return &cache_.kBranchTrueOperator;
659 case BranchHint::kFalse: 660 case BranchHint::kFalse:
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
1115 CommonOperatorBuilder::CreateFrameStateFunctionInfo( 1116 CommonOperatorBuilder::CreateFrameStateFunctionInfo(
1116 FrameStateType type, int parameter_count, int local_count, 1117 FrameStateType type, int parameter_count, int local_count,
1117 Handle<SharedFunctionInfo> shared_info) { 1118 Handle<SharedFunctionInfo> shared_info) {
1118 return new (zone()->New(sizeof(FrameStateFunctionInfo))) 1119 return new (zone()->New(sizeof(FrameStateFunctionInfo)))
1119 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info); 1120 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info);
1120 } 1121 }
1121 1122
1122 } // namespace compiler 1123 } // namespace compiler
1123 } // namespace internal 1124 } // namespace internal
1124 } // namespace v8 1125 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/code-generator.h ('k') | src/compiler/common-operator-reducer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698