| 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_COMMON_OPERATOR_H_ | 5 #ifndef V8_COMPILER_COMMON_OPERATOR_H_ |
| 6 #define V8_COMPILER_COMMON_OPERATOR_H_ | 6 #define V8_COMPILER_COMMON_OPERATOR_H_ |
| 7 | 7 |
| 8 #include "src/compiler/frame-states.h" | 8 #include "src/compiler/frame-states.h" |
| 9 #include "src/machine-type.h" | 9 #include "src/machine-type.h" |
| 10 #include "src/zone-containers.h" | 10 #include "src/zone-containers.h" |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 // Prediction whether throw-site is surrounded by any local catch-scope. | 64 // Prediction whether throw-site is surrounded by any local catch-scope. |
| 65 enum class IfExceptionHint { kLocallyUncaught, kLocallyCaught }; | 65 enum class IfExceptionHint { kLocallyUncaught, kLocallyCaught }; |
| 66 | 66 |
| 67 size_t hash_value(IfExceptionHint hint); | 67 size_t hash_value(IfExceptionHint hint); |
| 68 | 68 |
| 69 std::ostream& operator<<(std::ostream&, IfExceptionHint); | 69 std::ostream& operator<<(std::ostream&, IfExceptionHint); |
| 70 | 70 |
| 71 | 71 |
| 72 class SelectParameters final { | 72 class SelectParameters final { |
| 73 public: | 73 public: |
| 74 explicit SelectParameters(MachineType type, | 74 explicit SelectParameters(MachineRepresentation representation, |
| 75 BranchHint hint = BranchHint::kNone) | 75 BranchHint hint = BranchHint::kNone) |
| 76 : type_(type), hint_(hint) {} | 76 : representation_(representation), hint_(hint) {} |
| 77 | 77 |
| 78 MachineType type() const { return type_; } | 78 MachineRepresentation representation() const { return representation_; } |
| 79 BranchHint hint() const { return hint_; } | 79 BranchHint hint() const { return hint_; } |
| 80 | 80 |
| 81 private: | 81 private: |
| 82 const MachineType type_; | 82 const MachineRepresentation representation_; |
| 83 const BranchHint hint_; | 83 const BranchHint hint_; |
| 84 }; | 84 }; |
| 85 | 85 |
| 86 bool operator==(SelectParameters const&, SelectParameters const&); | 86 bool operator==(SelectParameters const&, SelectParameters const&); |
| 87 bool operator!=(SelectParameters const&, SelectParameters const&); | 87 bool operator!=(SelectParameters const&, SelectParameters const&); |
| 88 | 88 |
| 89 size_t hash_value(SelectParameters const& p); | 89 size_t hash_value(SelectParameters const& p); |
| 90 | 90 |
| 91 std::ostream& operator<<(std::ostream&, SelectParameters const& p); | 91 std::ostream& operator<<(std::ostream&, SelectParameters const& p); |
| 92 | 92 |
| 93 SelectParameters const& SelectParametersOf(const Operator* const); | 93 SelectParameters const& SelectParametersOf(const Operator* const); |
| 94 | 94 |
| 95 | 95 |
| 96 size_t ProjectionIndexOf(const Operator* const); | 96 size_t ProjectionIndexOf(const Operator* const); |
| 97 | 97 |
| 98 MachineRepresentation PhiRepresentationOf(const Operator* const); |
| 99 |
| 98 | 100 |
| 99 // The {IrOpcode::kParameter} opcode represents an incoming parameter to the | 101 // The {IrOpcode::kParameter} opcode represents an incoming parameter to the |
| 100 // function. This class bundles the index and a debug name for such operators. | 102 // function. This class bundles the index and a debug name for such operators. |
| 101 class ParameterInfo final { | 103 class ParameterInfo final { |
| 102 public: | 104 public: |
| 103 ParameterInfo(int index, const char* debug_name) | 105 ParameterInfo(int index, const char* debug_name) |
| 104 : index_(index), debug_name_(debug_name) {} | 106 : index_(index), debug_name_(debug_name) {} |
| 105 | 107 |
| 106 int index() const { return index_; } | 108 int index() const { return index_; } |
| 107 const char* debug_name() const { return debug_name_; } | 109 const char* debug_name() const { return debug_name_; } |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 148 const Operator* OsrValue(int index); | 150 const Operator* OsrValue(int index); |
| 149 | 151 |
| 150 const Operator* Int32Constant(int32_t); | 152 const Operator* Int32Constant(int32_t); |
| 151 const Operator* Int64Constant(int64_t); | 153 const Operator* Int64Constant(int64_t); |
| 152 const Operator* Float32Constant(volatile float); | 154 const Operator* Float32Constant(volatile float); |
| 153 const Operator* Float64Constant(volatile double); | 155 const Operator* Float64Constant(volatile double); |
| 154 const Operator* ExternalConstant(const ExternalReference&); | 156 const Operator* ExternalConstant(const ExternalReference&); |
| 155 const Operator* NumberConstant(volatile double); | 157 const Operator* NumberConstant(volatile double); |
| 156 const Operator* HeapConstant(const Handle<HeapObject>&); | 158 const Operator* HeapConstant(const Handle<HeapObject>&); |
| 157 | 159 |
| 158 const Operator* Select(MachineType, BranchHint = BranchHint::kNone); | 160 const Operator* Select(MachineRepresentation, BranchHint = BranchHint::kNone); |
| 159 const Operator* Phi(MachineType type, int value_input_count); | 161 const Operator* Phi(MachineRepresentation representation, |
| 162 int value_input_count); |
| 160 const Operator* EffectPhi(int effect_input_count); | 163 const Operator* EffectPhi(int effect_input_count); |
| 161 const Operator* EffectSet(int arguments); | 164 const Operator* EffectSet(int arguments); |
| 162 const Operator* Guard(Type* type); | 165 const Operator* Guard(Type* type); |
| 163 const Operator* BeginRegion(); | 166 const Operator* BeginRegion(); |
| 164 const Operator* FinishRegion(); | 167 const Operator* FinishRegion(); |
| 165 const Operator* StateValues(int arguments); | 168 const Operator* StateValues(int arguments); |
| 166 const Operator* TypedStateValues(const ZoneVector<MachineType>* types); | 169 const Operator* TypedStateValues(const ZoneVector<MachineType>* types); |
| 167 const Operator* FrameState(BailoutId bailout_id, | 170 const Operator* FrameState(BailoutId bailout_id, |
| 168 OutputFrameStateCombine state_combine, | 171 OutputFrameStateCombine state_combine, |
| 169 const FrameStateFunctionInfo* function_info); | 172 const FrameStateFunctionInfo* function_info); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 189 Zone* const zone_; | 192 Zone* const zone_; |
| 190 | 193 |
| 191 DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder); | 194 DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder); |
| 192 }; | 195 }; |
| 193 | 196 |
| 194 } // namespace compiler | 197 } // namespace compiler |
| 195 } // namespace internal | 198 } // namespace internal |
| 196 } // namespace v8 | 199 } // namespace v8 |
| 197 | 200 |
| 198 #endif // V8_COMPILER_COMMON_OPERATOR_H_ | 201 #endif // V8_COMPILER_COMMON_OPERATOR_H_ |
| OLD | NEW |