Index: src/compiler/common-operator.h |
diff --git a/src/compiler/common-operator.h b/src/compiler/common-operator.h |
index 1f258a0ec0fa95dce529d8c857e6d275f104907e..5bf893e63e6868713590a2c2539069832b4c75c0 100644 |
--- a/src/compiler/common-operator.h |
+++ b/src/compiler/common-operator.h |
@@ -158,6 +158,29 @@ std::ostream& operator<<(std::ostream&, RelocatablePtrConstantInfo const&); |
size_t hash_value(RelocatablePtrConstantInfo const& p); |
+class TypedStateValueInfo final { |
+ public: |
+ TypedStateValueInfo(ZoneVector<MachineType> const* machine_types, |
+ uint32_t mask) |
+ : machine_types_(machine_types), mask_(mask) {} |
+ |
+ ZoneVector<MachineType> const* machine_types() const { |
+ return machine_types_; |
+ } |
+ uint32_t mask() const { return mask_; } |
+ |
+ private: |
+ ZoneVector<MachineType> const* machine_types_; |
+ 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
|
+}; |
+ |
+bool operator==(TypedStateValueInfo const& lhs, TypedStateValueInfo const& rhs); |
+bool operator!=(TypedStateValueInfo const& lhs, TypedStateValueInfo const& rhs); |
+ |
+std::ostream& operator<<(std::ostream&, TypedStateValueInfo const&); |
+ |
+size_t hash_value(TypedStateValueInfo const& p); |
+ |
// Used to mark a region (as identified by BeginRegion/FinishRegion) as either |
// JavaScript-observable or not (i.e. allocations are not JavaScript observable |
// themselves, but transitioning stores are). |
@@ -243,8 +266,9 @@ class V8_EXPORT_PRIVATE CommonOperatorBuilder final |
const Operator* Checkpoint(); |
const Operator* BeginRegion(RegionObservability); |
const Operator* FinishRegion(); |
- const Operator* StateValues(int arguments); |
- const Operator* TypedStateValues(const ZoneVector<MachineType>* types); |
+ const Operator* StateValues(int arguments, uint32_t bitmask); |
+ const Operator* TypedStateValues(const ZoneVector<MachineType>* types, |
+ uint32_t bitmask); |
const Operator* ObjectState(int pointer_slots); |
const Operator* TypedObjectState(const ZoneVector<MachineType>* types); |
const Operator* FrameState(BailoutId bailout_id, |