Index: src/compiler/simplified-lowering.cc |
diff --git a/src/compiler/simplified-lowering.cc b/src/compiler/simplified-lowering.cc |
index af2f2518fa5dddd5fa33f8969bbe4ea0c5b0afed..aceecab39a1710cfa523ef3af6b5e295b5ae84a4 100644 |
--- a/src/compiler/simplified-lowering.cc |
+++ b/src/compiler/simplified-lowering.cc |
@@ -6,7 +6,6 @@ |
#include <limits> |
-#include "src/address-map.h" |
#include "src/base/bits.h" |
#include "src/code-factory.h" |
#include "src/compiler/access-builder.h" |
@@ -19,7 +18,6 @@ |
#include "src/compiler/representation-change.h" |
#include "src/compiler/simplified-operator.h" |
#include "src/compiler/source-position.h" |
-#include "src/conversions-inl.h" |
#include "src/objects.h" |
#include "src/type-cache.h" |
@@ -711,71 +709,6 @@ |
return changer_->Float64OperatorFor(node->opcode()); |
} |
- WriteBarrierKind WriteBarrierKindFor( |
- BaseTaggedness base_taggedness, |
- MachineRepresentation field_representation, Type* field_type, |
- Node* value) { |
- if (base_taggedness == kTaggedBase && |
- field_representation == MachineRepresentation::kTagged) { |
- Type* value_type = NodeProperties::GetType(value); |
- if (field_type->Is(Type::TaggedSigned()) || |
- value_type->Is(Type::TaggedSigned())) { |
- // Write barriers are only for stores of heap objects. |
- return kNoWriteBarrier; |
- } |
- if (field_type->Is(Type::BooleanOrNullOrUndefined()) || |
- value_type->Is(Type::BooleanOrNullOrUndefined())) { |
- // Write barriers are not necessary when storing true, false, null or |
- // undefined, because these special oddballs are always in the root set. |
- return kNoWriteBarrier; |
- } |
- if (value_type->IsConstant() && |
- value_type->AsConstant()->Value()->IsHeapObject()) { |
- Handle<HeapObject> value_object = |
- Handle<HeapObject>::cast(value_type->AsConstant()->Value()); |
- if (value_object->IsMap()) { |
- // Write barriers for storing maps are cheaper. |
- return kMapWriteBarrier; |
- } |
- RootIndexMap root_index_map(jsgraph_->isolate()); |
- int root_index = root_index_map.Lookup(*value_object); |
- if (root_index != RootIndexMap::kInvalidRootIndex && |
- jsgraph_->isolate()->heap()->RootIsImmortalImmovable(root_index)) { |
- // Write barriers are unnecessary for immortal immovable roots. |
- return kNoWriteBarrier; |
- } |
- } |
- if (field_type->Is(Type::TaggedPointer()) || |
- value_type->Is(Type::TaggedPointer())) { |
- // Write barriers for heap objects are cheaper. |
- return kPointerWriteBarrier; |
- } |
- NumberMatcher m(value); |
- if (m.HasValue()) { |
- if (IsSmiDouble(m.Value())) { |
- // Storing a smi doesn't need a write barrier. |
- return kNoWriteBarrier; |
- } |
- // The NumberConstant will be represented as HeapNumber. |
- return kPointerWriteBarrier; |
- } |
- return kFullWriteBarrier; |
- } |
- return kNoWriteBarrier; |
- } |
- |
- WriteBarrierKind WriteBarrierKindFor( |
- BaseTaggedness base_taggedness, |
- MachineRepresentation field_representation, int field_offset, |
- Type* field_type, Node* value) { |
- if (base_taggedness == kTaggedBase && |
- field_offset == HeapObject::kMapOffset) { |
- return kMapWriteBarrier; |
- } |
- return WriteBarrierKindFor(base_taggedness, field_representation, |
- field_type, value); |
- } |
- |
// Dispatching routine for visiting the node {node} with the usage {use}. |
// Depending on the operator, propagate new usage info to the inputs. |
void VisitNode(Node* node, Truncation truncation, |
@@ -1203,16 +1136,6 @@ |
access.machine_type.representation())); |
ProcessRemainingInputs(node, 2); |
SetOutput(node, MachineRepresentation::kNone); |
- if (lower()) { |
- WriteBarrierKind write_barrier_kind = WriteBarrierKindFor( |
- access.base_is_tagged, access.machine_type.representation(), |
- access.offset, access.type, node->InputAt(1)); |
- if (write_barrier_kind < access.write_barrier_kind) { |
- access.write_barrier_kind = write_barrier_kind; |
- NodeProperties::ChangeOp( |
- node, jsgraph_->simplified()->StoreField(access)); |
- } |
- } |
break; |
} |
case IrOpcode::kLoadBuffer: { |
@@ -1278,16 +1201,6 @@ |
access.machine_type.representation())); // value |
ProcessRemainingInputs(node, 3); |
SetOutput(node, MachineRepresentation::kNone); |
- if (lower()) { |
- WriteBarrierKind write_barrier_kind = WriteBarrierKindFor( |
- access.base_is_tagged, access.machine_type.representation(), |
- access.type, node->InputAt(2)); |
- if (write_barrier_kind < access.write_barrier_kind) { |
- access.write_barrier_kind = write_barrier_kind; |
- NodeProperties::ChangeOp( |
- node, jsgraph_->simplified()->StoreElement(access)); |
- } |
- } |
break; |
} |
case IrOpcode::kObjectIsCallable: |