[ptr-compr][turbofan] Remove unneeded CheckedTaggedToTaggedPointer conversion
In some cases, we end up with a ChangeCompressedPointerToTaggedPointer next to a CheckedTaggedToTaggedPointer. In this case, the checked one is not needed since we are sure we are dealing with a pointer (and not a Smi). This doesn't get resolved in the simplfied lowering phase due to having a Phi[Tagged] in the middle of those two nodes. Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_arm64_pointer_compression_rel_ng Bug: v8:7703 Change-Id: Ia4a44b36423c2242d5c663f9b93b09924190fe8e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1709426 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#62941}
This commit is contained in:
parent
dc76a4da20
commit
0e8215eaee
@ -179,6 +179,14 @@ Reduction SimplifiedOperatorReducer::Reduce(Node* node) {
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IrOpcode::kCheckedTaggedToTaggedPointer: {
|
||||
NodeMatcher m(node->InputAt(0));
|
||||
if (m.IsChangeCompressedPointerToTaggedPointer()) {
|
||||
RelaxEffectsAndControls(node);
|
||||
return Replace(m.node());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case IrOpcode::kCheckIf: {
|
||||
HeapObjectMatcher m(node->InputAt(0));
|
||||
if (m.Is(factory()->true_value())) {
|
||||
|
Loading…
Reference in New Issue
Block a user