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

Side by Side Diff: src/heap/objects-visiting-inl.h

Issue 2808533002: [heap] Reland "Remove size specializations in static object visitors. (patchset #4 id:60001 of http… (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 unified diff | Download patch
« no previous file with comments | « src/heap/objects-visiting.cc ('k') | src/heap/scavenger.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 #ifndef V8_OBJECTS_VISITING_INL_H_ 5 #ifndef V8_OBJECTS_VISITING_INL_H_
6 #define V8_OBJECTS_VISITING_INL_H_ 6 #define V8_OBJECTS_VISITING_INL_H_
7 7
8 #include "src/heap/array-buffer-tracker.h" 8 #include "src/heap/array-buffer-tracker.h"
9 #include "src/heap/mark-compact.h" 9 #include "src/heap/mark-compact.h"
10 #include "src/heap/objects-visiting.h" 10 #include "src/heap/objects-visiting.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 88
89 table_.Register(kVisitFreeSpace, &VisitFreeSpace); 89 table_.Register(kVisitFreeSpace, &VisitFreeSpace);
90 90
91 table_.Register( 91 table_.Register(
92 kVisitJSWeakCollection, 92 kVisitJSWeakCollection,
93 &FlexibleBodyVisitor<StaticVisitor, JSWeakCollection::BodyDescriptor, 93 &FlexibleBodyVisitor<StaticVisitor, JSWeakCollection::BodyDescriptor,
94 int>::Visit); 94 int>::Visit);
95 95
96 table_.Register(kVisitJSRegExp, &JSObjectVisitor::Visit); 96 table_.Register(kVisitJSRegExp, &JSObjectVisitor::Visit);
97 97
98 table_.template RegisterSpecializations<DataObjectVisitor, kVisitDataObject, 98 table_.Register(kVisitDataObject, &DataObjectVisitor::Visit);
99 kVisitDataObjectGeneric>();
100 99
101 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSObject, 100 table_.Register(kVisitJSObjectFast, &JSObjectFastVisitor::Visit);
102 kVisitJSObjectGeneric>(); 101 table_.Register(kVisitJSObject, &JSObjectVisitor::Visit);
103 102
104 // Not using specialized Api object visitor for newspace. 103 // Not using specialized Api object visitor for newspace.
105 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSApiObject, 104 table_.Register(kVisitJSApiObject, &JSObjectVisitor::Visit);
106 kVisitJSApiObjectGeneric>();
107 105
108 table_.template RegisterSpecializations<StructVisitor, kVisitStruct, 106 table_.Register(kVisitStruct, &StructVisitor::Visit);
109 kVisitStructGeneric>();
110 107
111 table_.Register(kVisitBytecodeArray, &UnreachableVisitor); 108 table_.Register(kVisitBytecodeArray, &UnreachableVisitor);
112 table_.Register(kVisitSharedFunctionInfo, &UnreachableVisitor); 109 table_.Register(kVisitSharedFunctionInfo, &UnreachableVisitor);
113 } 110 }
114 111
115 template <typename StaticVisitor> 112 template <typename StaticVisitor>
116 void StaticMarkingVisitor<StaticVisitor>::Initialize() { 113 void StaticMarkingVisitor<StaticVisitor>::Initialize() {
117 table_.Register(kVisitShortcutCandidate, 114 table_.Register(kVisitShortcutCandidate,
118 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor, 115 &FixedBodyVisitor<StaticVisitor, ConsString::BodyDescriptor,
119 void>::Visit); 116 void>::Visit);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 &FixedBodyVisitor<StaticVisitor, Cell::BodyDescriptor, void>::Visit); 188 &FixedBodyVisitor<StaticVisitor, Cell::BodyDescriptor, void>::Visit);
192 189
193 table_.Register(kVisitPropertyCell, 190 table_.Register(kVisitPropertyCell,
194 &FixedBodyVisitor<StaticVisitor, PropertyCell::BodyDescriptor, 191 &FixedBodyVisitor<StaticVisitor, PropertyCell::BodyDescriptor,
195 void>::Visit); 192 void>::Visit);
196 193
197 table_.Register(kVisitWeakCell, &VisitWeakCell); 194 table_.Register(kVisitWeakCell, &VisitWeakCell);
198 195
199 table_.Register(kVisitTransitionArray, &VisitTransitionArray); 196 table_.Register(kVisitTransitionArray, &VisitTransitionArray);
200 197
201 table_.template RegisterSpecializations<DataObjectVisitor, kVisitDataObject, 198 table_.Register(kVisitDataObject, &DataObjectVisitor::Visit);
202 kVisitDataObjectGeneric>();
203 199
204 table_.template RegisterSpecializations<JSObjectVisitor, kVisitJSObject, 200 table_.Register(kVisitJSObjectFast, &JSObjectFastVisitor::Visit);
205 kVisitJSObjectGeneric>(); 201 table_.Register(kVisitJSObject, &JSObjectVisitor::Visit);
206 202
207 table_.template RegisterSpecializations<JSApiObjectVisitor, kVisitJSApiObject, 203 table_.Register(kVisitJSApiObject, &JSApiObjectVisitor::Visit);
208 kVisitJSApiObjectGeneric>();
209 204
210 table_.template RegisterSpecializations<StructObjectVisitor, kVisitStruct, 205 table_.Register(kVisitStruct, &StructObjectVisitor::Visit);
211 kVisitStructGeneric>();
212 } 206 }
213 207
214 208
215 template <typename StaticVisitor> 209 template <typename StaticVisitor>
216 void StaticMarkingVisitor<StaticVisitor>::VisitCodeEntry( 210 void StaticMarkingVisitor<StaticVisitor>::VisitCodeEntry(
217 Heap* heap, HeapObject* object, Address entry_address) { 211 Heap* heap, HeapObject* object, Address entry_address) {
218 Code* code = Code::cast(Code::GetObjectFromEntryAddress(entry_address)); 212 Code* code = Code::cast(Code::GetObjectFromEntryAddress(entry_address));
219 heap->mark_compact_collector()->RecordCodeEntrySlot(object, entry_address, 213 heap->mark_compact_collector()->RecordCodeEntrySlot(object, entry_address,
220 code); 214 code);
221 StaticVisitor::MarkObject(heap, code); 215 StaticVisitor::MarkObject(heap, code);
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode, 635 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode,
642 void> JSFunctionWeakCodeBodyVisitor; 636 void> JSFunctionWeakCodeBodyVisitor;
643 JSFunctionWeakCodeBodyVisitor::Visit(map, object); 637 JSFunctionWeakCodeBodyVisitor::Visit(map, object);
644 } 638 }
645 639
646 640
647 } // namespace internal 641 } // namespace internal
648 } // namespace v8 642 } // namespace v8
649 643
650 #endif // V8_OBJECTS_VISITING_INL_H_ 644 #endif // V8_OBJECTS_VISITING_INL_H_
OLDNEW
« no previous file with comments | « src/heap/objects-visiting.cc ('k') | src/heap/scavenger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698