Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(124)

Unified Diff: src/compiler/node-properties.cc

Issue 2836853002: [turbofan] Fix FinishRegion handling in NodeProperties::InferReceiverMaps. (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/node-properties.cc
diff --git a/src/compiler/node-properties.cc b/src/compiler/node-properties.cc
index a45f7f7a79f712c37ce30b780d950e388fde4041..daa7f82eef9e46dfcf1c4c648bab929a32ca87be 100644
--- a/src/compiler/node-properties.cc
+++ b/src/compiler/node-properties.cc
@@ -404,6 +404,13 @@ NodeProperties::InferReceiverMapsResult NodeProperties::InferReceiverMaps(
// These never change the map of objects.
break;
}
+ case IrOpcode::kFinishRegion: {
+ // FinishRegion renames the output of allocations, so we need
+ // to update the {receiver} that we are looking for, if the
+ // {receiver} matches the current {effect}.
+ if (IsSame(receiver, effect)) receiver = GetValueInput(effect, 0);
+ break;
+ }
default: {
DCHECK_EQ(1, effect->op()->EffectOutputCount());
if (effect->op()->EffectInputCount() != 1) {
@@ -418,6 +425,12 @@ NodeProperties::InferReceiverMapsResult NodeProperties::InferReceiverMaps(
break;
}
}
+
+ // Stop walking the effect chain once we hit the definition of
+ // the {receiver} along the {effect}s.
+ if (IsSame(receiver, effect)) return kNoReceiverMaps;
+
+ // Continue with the next {effect}.
DCHECK_EQ(1, effect->op()->EffectInputCount());
effect = NodeProperties::GetEffectInput(effect);
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698