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

Side by Side Diff: src/hydrogen.cc

Issue 295743002: Refactor transitioning stores. (Closed) Base URL: git@github.com:v8/v8.git@master
Patch Set: Created 6 years, 7 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 unified diff | Download patch
« no previous file with comments | « src/arm64/lithium-codegen-arm64.cc ('k') | src/hydrogen-check-elimination.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "hydrogen.h" 5 #include "hydrogen.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "v8.h" 9 #include "v8.h"
10 #include "allocation-site-scopes.h" 10 #include "allocation-site-scopes.h"
(...skipping 5511 matching lines...) Expand 10 before | Expand all | Expand 10 after
5522 5522
5523 // This is a normal store. 5523 // This is a normal store.
5524 instr = New<HStoreNamedField>( 5524 instr = New<HStoreNamedField>(
5525 checked_object->ActualValue(), field_access, value, 5525 checked_object->ActualValue(), field_access, value,
5526 transition_to_field ? INITIALIZING_STORE : STORE_TO_INITIALIZED_ENTRY); 5526 transition_to_field ? INITIALIZING_STORE : STORE_TO_INITIALIZED_ENTRY);
5527 } 5527 }
5528 5528
5529 if (transition_to_field) { 5529 if (transition_to_field) {
5530 Handle<Map> transition(info->transition()); 5530 Handle<Map> transition(info->transition());
5531 ASSERT(!transition->is_deprecated()); 5531 ASSERT(!transition->is_deprecated());
5532 instr->SetTransition(Add<HConstant>(transition)); 5532 if (transition->CanBeDeprecated()) {
5533 Map::AddDependentCompilationInfo(
5534 transition, DependentCode::kTransitionGroup, top_info());
5535 }
5536 Add<HStoreNamedField>(checked_object->ActualValue(),
5537 HObjectAccess::ForMap(),
5538 Add<HConstant>(transition),
5539 STORE_TO_INITIALIZED_ENTRY);
5533 } 5540 }
5534 return instr; 5541 return instr;
5535 } 5542 }
5536 5543
5537 5544
5538 bool HOptimizedGraphBuilder::PropertyAccessInfo::IsCompatible( 5545 bool HOptimizedGraphBuilder::PropertyAccessInfo::IsCompatible(
5539 PropertyAccessInfo* info) { 5546 PropertyAccessInfo* info) {
5540 if (!CanInlinePropertyAccess(type_)) return false; 5547 if (!CanInlinePropertyAccess(type_)) return false;
5541 5548
5542 // Currently only handle Type::Number as a polymorphic case. 5549 // Currently only handle Type::Number as a polymorphic case.
(...skipping 6266 matching lines...) Expand 10 before | Expand all | Expand 10 after
11809 if (ShouldProduceTraceOutput()) { 11816 if (ShouldProduceTraceOutput()) {
11810 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); 11817 isolate()->GetHTracer()->TraceHydrogen(name(), graph_);
11811 } 11818 }
11812 11819
11813 #ifdef DEBUG 11820 #ifdef DEBUG
11814 graph_->Verify(false); // No full verify. 11821 graph_->Verify(false); // No full verify.
11815 #endif 11822 #endif
11816 } 11823 }
11817 11824
11818 } } // namespace v8::internal 11825 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm64/lithium-codegen-arm64.cc ('k') | src/hydrogen-check-elimination.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698