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/assembler.h" | 8 #include "src/assembler.h" |
9 #include "src/base/compiler-specific.h" | 9 #include "src/base/compiler-specific.h" |
10 #include "src/compiler/frame-states.h" | 10 #include "src/compiler/frame-states.h" |
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
151 | 151 |
152 bool operator==(RelocatablePtrConstantInfo const& lhs, | 152 bool operator==(RelocatablePtrConstantInfo const& lhs, |
153 RelocatablePtrConstantInfo const& rhs); | 153 RelocatablePtrConstantInfo const& rhs); |
154 bool operator!=(RelocatablePtrConstantInfo const& lhs, | 154 bool operator!=(RelocatablePtrConstantInfo const& lhs, |
155 RelocatablePtrConstantInfo const& rhs); | 155 RelocatablePtrConstantInfo const& rhs); |
156 | 156 |
157 std::ostream& operator<<(std::ostream&, RelocatablePtrConstantInfo const&); | 157 std::ostream& operator<<(std::ostream&, RelocatablePtrConstantInfo const&); |
158 | 158 |
159 size_t hash_value(RelocatablePtrConstantInfo const& p); | 159 size_t hash_value(RelocatablePtrConstantInfo const& p); |
160 | 160 |
161 class TypedStateValueInfo final { | |
162 public: | |
163 TypedStateValueInfo(ZoneVector<MachineType> const* machine_types, | |
164 uint32_t mask) | |
165 : machine_types_(machine_types), mask_(mask) {} | |
166 | |
167 ZoneVector<MachineType> const* machine_types() const { | |
168 return machine_types_; | |
169 } | |
170 uint32_t mask() const { return mask_; } | |
171 | |
172 private: | |
173 ZoneVector<MachineType> const* machine_types_; | |
174 uint32_t mask_; | |
Jarin
2016/12/07 08:56:20
This is a poor name - could you come with a name t
Leszek Swirski
2016/12/08 15:44:30
Hm, the only thing I could think of is to expand i
| |
175 }; | |
176 | |
177 bool operator==(TypedStateValueInfo const& lhs, TypedStateValueInfo const& rhs); | |
178 bool operator!=(TypedStateValueInfo const& lhs, TypedStateValueInfo const& rhs); | |
179 | |
180 std::ostream& operator<<(std::ostream&, TypedStateValueInfo const&); | |
181 | |
182 size_t hash_value(TypedStateValueInfo const& p); | |
183 | |
161 // Used to mark a region (as identified by BeginRegion/FinishRegion) as either | 184 // Used to mark a region (as identified by BeginRegion/FinishRegion) as either |
162 // JavaScript-observable or not (i.e. allocations are not JavaScript observable | 185 // JavaScript-observable or not (i.e. allocations are not JavaScript observable |
163 // themselves, but transitioning stores are). | 186 // themselves, but transitioning stores are). |
164 enum class RegionObservability : uint8_t { kObservable, kNotObservable }; | 187 enum class RegionObservability : uint8_t { kObservable, kNotObservable }; |
165 | 188 |
166 size_t hash_value(RegionObservability); | 189 size_t hash_value(RegionObservability); |
167 | 190 |
168 std::ostream& operator<<(std::ostream&, RegionObservability); | 191 std::ostream& operator<<(std::ostream&, RegionObservability); |
169 | 192 |
170 RegionObservability RegionObservabilityOf(Operator const*) WARN_UNUSED_RESULT; | 193 RegionObservability RegionObservabilityOf(Operator const*) WARN_UNUSED_RESULT; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
236 const Operator* Phi(MachineRepresentation representation, | 259 const Operator* Phi(MachineRepresentation representation, |
237 int value_input_count); | 260 int value_input_count); |
238 const Operator* EffectPhi(int effect_input_count); | 261 const Operator* EffectPhi(int effect_input_count); |
239 const Operator* InductionVariablePhi(int value_input_count); | 262 const Operator* InductionVariablePhi(int value_input_count); |
240 const Operator* LoopExit(); | 263 const Operator* LoopExit(); |
241 const Operator* LoopExitValue(); | 264 const Operator* LoopExitValue(); |
242 const Operator* LoopExitEffect(); | 265 const Operator* LoopExitEffect(); |
243 const Operator* Checkpoint(); | 266 const Operator* Checkpoint(); |
244 const Operator* BeginRegion(RegionObservability); | 267 const Operator* BeginRegion(RegionObservability); |
245 const Operator* FinishRegion(); | 268 const Operator* FinishRegion(); |
246 const Operator* StateValues(int arguments); | 269 const Operator* StateValues(int arguments, uint32_t bitmask); |
247 const Operator* TypedStateValues(const ZoneVector<MachineType>* types); | 270 const Operator* TypedStateValues(const ZoneVector<MachineType>* types, |
271 uint32_t bitmask); | |
248 const Operator* ObjectState(int pointer_slots); | 272 const Operator* ObjectState(int pointer_slots); |
249 const Operator* TypedObjectState(const ZoneVector<MachineType>* types); | 273 const Operator* TypedObjectState(const ZoneVector<MachineType>* types); |
250 const Operator* FrameState(BailoutId bailout_id, | 274 const Operator* FrameState(BailoutId bailout_id, |
251 OutputFrameStateCombine state_combine, | 275 OutputFrameStateCombine state_combine, |
252 const FrameStateFunctionInfo* function_info); | 276 const FrameStateFunctionInfo* function_info); |
253 const Operator* Call(const CallDescriptor* descriptor); | 277 const Operator* Call(const CallDescriptor* descriptor); |
254 const Operator* TailCall(const CallDescriptor* descriptor); | 278 const Operator* TailCall(const CallDescriptor* descriptor); |
255 const Operator* Projection(size_t index); | 279 const Operator* Projection(size_t index); |
256 const Operator* Retain(); | 280 const Operator* Retain(); |
257 const Operator* TypeGuard(Type* type); | 281 const Operator* TypeGuard(Type* type); |
(...skipping 14 matching lines...) Expand all Loading... | |
272 Zone* const zone_; | 296 Zone* const zone_; |
273 | 297 |
274 DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder); | 298 DISALLOW_COPY_AND_ASSIGN(CommonOperatorBuilder); |
275 }; | 299 }; |
276 | 300 |
277 } // namespace compiler | 301 } // namespace compiler |
278 } // namespace internal | 302 } // namespace internal |
279 } // namespace v8 | 303 } // namespace v8 |
280 | 304 |
281 #endif // V8_COMPILER_COMMON_OPERATOR_H_ | 305 #endif // V8_COMPILER_COMMON_OPERATOR_H_ |
OLD | NEW |