Index: src/compiler/simplified-operator-reducer.cc |
diff --git a/src/compiler/simplified-operator-reducer.cc b/src/compiler/simplified-operator-reducer.cc |
index 0d9ddc1b2d0253e31ab487fdc971f78ec13b607b..991e4fc82d856ba9615ce5b1f55179432be3bcaf 100644 |
--- a/src/compiler/simplified-operator-reducer.cc |
+++ b/src/compiler/simplified-operator-reducer.cc |
@@ -148,6 +148,11 @@ Reduction SimplifiedOperatorReducer::Reduce(Node* node) { |
ReplaceWithValue(node, input); |
return Replace(input); |
} |
+ NodeMatcher m(input); |
+ if (m.IsCheckTaggedPointer()) { |
+ ReplaceWithValue(node, input); |
+ return Replace(input); |
+ } |
break; |
} |
case IrOpcode::kCheckTaggedSigned: { |
@@ -157,7 +162,10 @@ Reduction SimplifiedOperatorReducer::Reduce(Node* node) { |
return Replace(input); |
} |
NodeMatcher m(input); |
- if (m.IsConvertTaggedHoleToUndefined()) { |
+ if (m.IsCheckTaggedSigned()) { |
+ ReplaceWithValue(node, input); |
+ return Replace(input); |
+ } else if (m.IsConvertTaggedHoleToUndefined()) { |
node->ReplaceInput(0, m.InputAt(0)); |
return Changed(node); |
} |