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

Unified Diff: src/compiler/escape-analysis.cc

Issue 2357153002: [turbofan] Support for ConsString by escape analysis. (Closed)
Patch Set: Created 4 years, 3 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 | src/deoptimizer.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/escape-analysis.cc
diff --git a/src/compiler/escape-analysis.cc b/src/compiler/escape-analysis.cc
index ae98451d2e2383f77e3202ff969bd8877fe684c5..20cd962b9c42fece29e5cc2cdc482535caffcabf 100644
--- a/src/compiler/escape-analysis.cc
+++ b/src/compiler/escape-analysis.cc
@@ -1457,13 +1457,13 @@ void EscapeAnalysis::ProcessStoreField(Node* node) {
int offset = OffsetForFieldAccess(node);
if (static_cast<size_t>(offset) >= object->field_count()) return;
Node* val = ResolveReplacement(NodeProperties::GetValueInput(node, 1));
- // TODO(mstarzinger): The following is a workaround to not track the code
- // entry field in virtual JSFunction objects. We only ever store the inner
- // pointer into the compile lazy stub in this field and the deoptimizer has
- // this assumption hard-coded in {TranslatedState::MaterializeAt} as well.
+ // TODO(mstarzinger): The following is a workaround to not track some well
+ // known raw fields. We only ever store default initial values into these
+ // fields which are hard-coded in {TranslatedState::MaterializeAt} as well.
if (val->opcode() == IrOpcode::kInt32Constant ||
val->opcode() == IrOpcode::kInt64Constant) {
- DCHECK_EQ(JSFunction::kCodeEntryOffset, FieldAccessOf(node->op()).offset);
+ DCHECK(FieldAccessOf(node->op()).offset == JSFunction::kCodeEntryOffset ||
+ FieldAccessOf(node->op()).offset == Name::kHashFieldOffset);
val = slot_not_analyzed_;
}
if (object->GetField(offset) != val) {
« no previous file with comments | « no previous file | src/deoptimizer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698