Index: src/compiler/js-builtin-reducer.cc |
diff --git a/src/compiler/js-builtin-reducer.cc b/src/compiler/js-builtin-reducer.cc |
index bf72ca47302545484b5bef10b88627210a6daa63..5f426892c324476a7c160bb614e500007f7b0884 100644 |
--- a/src/compiler/js-builtin-reducer.cc |
+++ b/src/compiler/js-builtin-reducer.cc |
@@ -911,27 +911,12 @@ bool HasInstanceTypeWitness(Node* receiver, Node* effect, |
} |
return true; |
} |
- switch (dominator->opcode()) { |
- case IrOpcode::kStoreField: { |
- FieldAccess const& access = FieldAccessOf(dominator->op()); |
- if (access.base_is_tagged == kTaggedBase && |
- access.offset == HeapObject::kMapOffset) { |
- return false; |
- } |
- break; |
- } |
- case IrOpcode::kStoreElement: |
- case IrOpcode::kStoreTypedElement: |
- break; |
- default: { |
- DCHECK_EQ(1, dominator->op()->EffectOutputCount()); |
- if (dominator->op()->EffectInputCount() != 1 || |
- !dominator->op()->HasProperty(Operator::kNoWrite)) { |
- // Didn't find any appropriate CheckMaps node. |
- return false; |
- } |
- break; |
- } |
+ // The instance type doesn't change, so we don't need to pay |
+ // attention to potentially side-effecting nodes here. |
Michael Starzinger
2017/01/26 12:45:38
As discussed offline: The instance type of strings
Benedikt Meurer
2017/01/26 12:48:08
Done.
|
+ DCHECK_EQ(1, dominator->op()->EffectOutputCount()); |
+ if (dominator->op()->EffectInputCount() != 1) { |
+ // Didn't find any appropriate CheckMaps node. |
+ return false; |
} |
dominator = NodeProperties::GetEffectInput(dominator); |
} |