| Index: src/compiler/simplified-operator.cc
|
| diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc
|
| index f383ace587470e46ea00dd5055bfdc1c55e0e196..707bf098bc4c32aef532c914c89c36ea4bf48bfc 100644
|
| --- a/src/compiler/simplified-operator.cc
|
| +++ b/src/compiler/simplified-operator.cc
|
| @@ -12,6 +12,10 @@
|
| namespace v8 {
|
| namespace internal {
|
| namespace compiler {
|
| +
|
| +size_t hash_value(BaseTaggedness base_taggedness) {
|
| + return static_cast<uint8_t>(base_taggedness);
|
| +}
|
|
|
| std::ostream& operator<<(std::ostream& os, BaseTaggedness base_taggedness) {
|
| switch (base_taggedness) {
|
| @@ -84,6 +88,9 @@
|
|
|
|
|
| bool operator==(FieldAccess const& lhs, FieldAccess const& rhs) {
|
| + // On purpose we don't include the write barrier kind here, as this method is
|
| + // really only relevant for eliminating loads and they don't care about the
|
| + // write barrier mode.
|
| return lhs.base_is_tagged == rhs.base_is_tagged && lhs.offset == rhs.offset &&
|
| lhs.machine_type == rhs.machine_type;
|
| }
|
| @@ -95,6 +102,9 @@
|
|
|
|
|
| size_t hash_value(FieldAccess const& access) {
|
| + // On purpose we don't include the write barrier kind here, as this method is
|
| + // really only relevant for eliminating loads and they don't care about the
|
| + // write barrier mode.
|
| return base::hash_combine(access.base_is_tagged, access.offset,
|
| access.machine_type);
|
| }
|
| @@ -110,12 +120,15 @@
|
| }
|
| #endif
|
| access.type->PrintTo(os);
|
| - os << ", " << access.machine_type << "]";
|
| + os << ", " << access.machine_type << ", " << access.write_barrier_kind << "]";
|
| return os;
|
| }
|
|
|
|
|
| bool operator==(ElementAccess const& lhs, ElementAccess const& rhs) {
|
| + // On purpose we don't include the write barrier kind here, as this method is
|
| + // really only relevant for eliminating loads and they don't care about the
|
| + // write barrier mode.
|
| return lhs.base_is_tagged == rhs.base_is_tagged &&
|
| lhs.header_size == rhs.header_size &&
|
| lhs.machine_type == rhs.machine_type;
|
| @@ -128,6 +141,9 @@
|
|
|
|
|
| size_t hash_value(ElementAccess const& access) {
|
| + // On purpose we don't include the write barrier kind here, as this method is
|
| + // really only relevant for eliminating loads and they don't care about the
|
| + // write barrier mode.
|
| return base::hash_combine(access.base_is_tagged, access.header_size,
|
| access.machine_type);
|
| }
|
| @@ -136,7 +152,7 @@
|
| std::ostream& operator<<(std::ostream& os, ElementAccess const& access) {
|
| os << access.base_is_tagged << ", " << access.header_size << ", ";
|
| access.type->PrintTo(os);
|
| - os << ", " << access.machine_type;
|
| + os << ", " << access.machine_type << ", " << access.write_barrier_kind;
|
| return os;
|
| }
|
|
|
|
|