Index: src/compiler/load-elimination.cc |
diff --git a/src/compiler/load-elimination.cc b/src/compiler/load-elimination.cc |
index 0f9809ea3af895f5001c75bb6b6b13c6eb7310f4..a451cfce732d18d7a25aaec7234474cbdb57157d 100644 |
--- a/src/compiler/load-elimination.cc |
+++ b/src/compiler/load-elimination.cc |
@@ -25,19 +25,6 @@ |
return NoChange(); |
} |
-namespace { |
- |
-// If {node} is a CheckTaggedPointer, follow its input until {node} is no |
-// longer a CheckTaggedPointer. |
-Node* NormalizeCheckTaggedPointer(Node* node) { |
- while (node->opcode() == IrOpcode::kCheckTaggedPointer) { |
- node = NodeProperties::GetValueInput(node, 0); |
- } |
- return node; |
-} |
- |
-} // namespace |
- |
Reduction LoadElimination::ReduceLoadField(Node* node) { |
DCHECK_EQ(IrOpcode::kLoadField, node->opcode()); |
FieldAccess const access = FieldAccessOf(node->op()); |
@@ -57,9 +44,7 @@ |
} |
case IrOpcode::kStoreField: { |
if (access == FieldAccessOf(effect->op())) { |
- Node* value_input = NormalizeCheckTaggedPointer( |
- NodeProperties::GetValueInput(effect, 0)); |
- if (object == value_input) { |
+ if (object == NodeProperties::GetValueInput(effect, 0)) { |
Node* const value = NodeProperties::GetValueInput(effect, 1); |
Type* stored_value_type = NodeProperties::GetType(value); |
Type* load_type = NodeProperties::GetType(node); |
@@ -89,8 +74,7 @@ |
// These can never interfere with field loads. |
break; |
} |
- case IrOpcode::kFinishRegion: |
- case IrOpcode::kCheckTaggedPointer: { |
+ case IrOpcode::kFinishRegion: { |
// "Look through" FinishRegion nodes to make LoadElimination capable |
// of looking into atomic regions. |
if (object == effect) object = NodeProperties::GetValueInput(effect, 0); |