| 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 #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 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 #define CACHED_OP_LIST(V) \ | 118 #define CACHED_OP_LIST(V) \ |
| 119 V(Dead, Operator::kFoldable, 0, 0, 0, 1, 1, 1) \ | 119 V(Dead, Operator::kFoldable, 0, 0, 0, 1, 1, 1) \ |
| 120 V(IfTrue, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 120 V(IfTrue, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 121 V(IfFalse, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 121 V(IfFalse, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 122 V(IfSuccess, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 122 V(IfSuccess, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 123 V(IfDefault, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ | 123 V(IfDefault, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \ |
| 124 V(Throw, Operator::kKontrol, 1, 1, 1, 0, 0, 1) \ | 124 V(Throw, Operator::kKontrol, 1, 1, 1, 0, 0, 1) \ |
| 125 V(Deoptimize, Operator::kNoThrow, 1, 1, 1, 0, 0, 1) \ | 125 V(Deoptimize, Operator::kNoThrow, 1, 1, 1, 0, 0, 1) \ |
| 126 V(Terminate, Operator::kKontrol, 0, 1, 1, 0, 0, 1) \ | 126 V(Terminate, Operator::kKontrol, 0, 1, 1, 0, 0, 1) \ |
| 127 V(OsrNormalEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1) \ | 127 V(OsrNormalEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1) \ |
| 128 V(OsrLoopEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1) | 128 V(OsrLoopEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1) \ |
| 129 V(BeginRegion, Operator::kNoThrow, 0, 1, 0, 0, 1, 0) \ |
| 130 V(FinishRegion, Operator::kNoThrow, 1, 1, 0, 1, 1, 0) |
| 129 | 131 |
| 130 | 132 |
| 131 #define CACHED_RETURN_LIST(V) \ | 133 #define CACHED_RETURN_LIST(V) \ |
| 132 V(1) \ | 134 V(1) \ |
| 133 V(2) \ | 135 V(2) \ |
| 134 V(3) | 136 V(3) |
| 135 | 137 |
| 136 | 138 |
| 137 #define CACHED_END_LIST(V) \ | 139 #define CACHED_END_LIST(V) \ |
| 138 V(1) \ | 140 V(1) \ |
| (...skipping 532 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 671 | 673 |
| 672 const Operator* CommonOperatorBuilder::EffectSet(int arguments) { | 674 const Operator* CommonOperatorBuilder::EffectSet(int arguments) { |
| 673 DCHECK(arguments > 1); // Disallow empty/singleton sets. | 675 DCHECK(arguments > 1); // Disallow empty/singleton sets. |
| 674 return new (zone()) Operator( // -- | 676 return new (zone()) Operator( // -- |
| 675 IrOpcode::kEffectSet, Operator::kPure, // opcode | 677 IrOpcode::kEffectSet, Operator::kPure, // opcode |
| 676 "EffectSet", // name | 678 "EffectSet", // name |
| 677 0, arguments, 0, 0, 1, 0); // counts | 679 0, arguments, 0, 0, 1, 0); // counts |
| 678 } | 680 } |
| 679 | 681 |
| 680 | 682 |
| 681 const Operator* CommonOperatorBuilder::ValueEffect(int arguments) { | |
| 682 DCHECK(arguments > 0); // Disallow empty value effects. | |
| 683 return new (zone()) Operator( // -- | |
| 684 IrOpcode::kValueEffect, Operator::kPure, // opcode | |
| 685 "ValueEffect", // name | |
| 686 arguments, 0, 0, 0, 1, 0); // counts | |
| 687 } | |
| 688 | |
| 689 | |
| 690 const Operator* CommonOperatorBuilder::Finish(int arguments) { | |
| 691 DCHECK(arguments > 0); // Disallow empty finishes. | |
| 692 return new (zone()) Operator( // -- | |
| 693 IrOpcode::kFinish, Operator::kPure, // opcode | |
| 694 "Finish", // name | |
| 695 1, arguments, 0, 1, 0, 0); // counts | |
| 696 } | |
| 697 | |
| 698 | |
| 699 const Operator* CommonOperatorBuilder::StateValues(int arguments) { | 683 const Operator* CommonOperatorBuilder::StateValues(int arguments) { |
| 700 switch (arguments) { | 684 switch (arguments) { |
| 701 #define CACHED_STATE_VALUES(arguments) \ | 685 #define CACHED_STATE_VALUES(arguments) \ |
| 702 case arguments: \ | 686 case arguments: \ |
| 703 return &cache_.kStateValues##arguments##Operator; | 687 return &cache_.kStateValues##arguments##Operator; |
| 704 CACHED_STATE_VALUES_LIST(CACHED_STATE_VALUES) | 688 CACHED_STATE_VALUES_LIST(CACHED_STATE_VALUES) |
| 705 #undef CACHED_STATE_VALUES | 689 #undef CACHED_STATE_VALUES |
| 706 default: | 690 default: |
| 707 break; | 691 break; |
| 708 } | 692 } |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 817 Handle<SharedFunctionInfo> shared_info, | 801 Handle<SharedFunctionInfo> shared_info, |
| 818 ContextCallingMode context_calling_mode) { | 802 ContextCallingMode context_calling_mode) { |
| 819 return new (zone()->New(sizeof(FrameStateFunctionInfo))) | 803 return new (zone()->New(sizeof(FrameStateFunctionInfo))) |
| 820 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info, | 804 FrameStateFunctionInfo(type, parameter_count, local_count, shared_info, |
| 821 context_calling_mode); | 805 context_calling_mode); |
| 822 } | 806 } |
| 823 | 807 |
| 824 } // namespace compiler | 808 } // namespace compiler |
| 825 } // namespace internal | 809 } // namespace internal |
| 826 } // namespace v8 | 810 } // namespace v8 |
| OLD | NEW |