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

Side by Side Diff: src/objects.cc

Issue 726423002: Hydrogen should recognize literal smi arrays as fast literals. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Test failure revealed forgotten requirement with dependencies. Created 6 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « src/objects.h ('k') | src/objects-inl.h » ('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 <sstream> 5 #include <sstream>
6 6
7 #include "src/v8.h" 7 #include "src/v8.h"
8 8
9 #include "src/accessors.h" 9 #include "src/accessors.h"
10 #include "src/allocation-site-scopes.h" 10 #include "src/allocation-site-scopes.h"
(...skipping 12941 matching lines...) Expand 10 before | Expand all | Expand 10 after
12952 } 12952 }
12953 site->SetElementsKind(to_kind); 12953 site->SetElementsKind(to_kind);
12954 site->dependent_code()->DeoptimizeDependentCodeGroup( 12954 site->dependent_code()->DeoptimizeDependentCodeGroup(
12955 isolate, DependentCode::kAllocationSiteTransitionChangedGroup); 12955 isolate, DependentCode::kAllocationSiteTransitionChangedGroup);
12956 } 12956 }
12957 } 12957 }
12958 } 12958 }
12959 12959
12960 12960
12961 // static 12961 // static
12962 void AllocationSite::AddDependentCompilationInfo(Handle<AllocationSite> site, 12962 void AllocationSite::RegisterForDeoptOnTenureChange(Handle<AllocationSite> site,
12963 Reason reason, 12963 CompilationInfo* info) {
12964 CompilationInfo* info) { 12964 AddDependentCompilationInfo(
12965 DependentCode::DependencyGroup group = site->ToDependencyGroup(reason); 12965 site, DependentCode::kAllocationSiteTenuringChangedGroup, info);
12966 }
12967
12968
12969 // static
12970 void AllocationSite::RegisterForDeoptOnTransitionChange(
12971 Handle<AllocationSite> site, CompilationInfo* info) {
12972 // Do nothing if the object doesn't have any useful element transitions left.
12973 ElementsKind kind =
12974 site->SitePointsToLiteral()
12975 ? JSObject::cast(site->transition_info())->GetElementsKind()
12976 : site->GetElementsKind();
12977 if (AllocationSite::GetMode(kind) == TRACK_ALLOCATION_SITE) {
12978 AddDependentCompilationInfo(
12979 site, DependentCode::kAllocationSiteTransitionChangedGroup, info);
12980 }
12981 }
12982
12983
12984 // static
12985 void AllocationSite::AddDependentCompilationInfo(
12986 Handle<AllocationSite> site, DependentCode::DependencyGroup group,
12987 CompilationInfo* info) {
12966 Handle<DependentCode> dep(site->dependent_code()); 12988 Handle<DependentCode> dep(site->dependent_code());
12967 Handle<DependentCode> codes = 12989 Handle<DependentCode> codes =
12968 DependentCode::Insert(dep, group, info->object_wrapper()); 12990 DependentCode::Insert(dep, group, info->object_wrapper());
12969 if (*codes != site->dependent_code()) site->set_dependent_code(*codes); 12991 if (*codes != site->dependent_code()) site->set_dependent_code(*codes);
12970 info->dependencies(group)->Add(Handle<HeapObject>(*site), info->zone()); 12992 info->dependencies(group)->Add(Handle<HeapObject>(*site), info->zone());
12971 } 12993 }
12972 12994
12973 12995
12974 const char* AllocationSite::PretenureDecisionName(PretenureDecision decision) { 12996 const char* AllocationSite::PretenureDecisionName(PretenureDecision decision) {
12975 switch (decision) { 12997 switch (decision) {
(...skipping 3831 matching lines...) Expand 10 before | Expand all | Expand 10 after
16807 Handle<DependentCode> codes = 16829 Handle<DependentCode> codes =
16808 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()), 16830 DependentCode::Insert(handle(cell->dependent_code(), info->isolate()),
16809 DependentCode::kPropertyCellChangedGroup, 16831 DependentCode::kPropertyCellChangedGroup,
16810 info->object_wrapper()); 16832 info->object_wrapper());
16811 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes); 16833 if (*codes != cell->dependent_code()) cell->set_dependent_code(*codes);
16812 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add( 16834 info->dependencies(DependentCode::kPropertyCellChangedGroup)->Add(
16813 cell, info->zone()); 16835 cell, info->zone());
16814 } 16836 }
16815 16837
16816 } } // namespace v8::internal 16838 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/objects.h ('k') | src/objects-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698