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

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

Issue 2534763003: [Interpreter] Add bytecode aging and use it enable CompilationCache for bytecode (Closed)
Patch Set: Created 4 years 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
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/objects-visiting.h" 9 #include "src/heap/objects-visiting.h"
10 #include "src/ic/ic-state.h" 10 #include "src/ic/ic-state.h"
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 150
151 table_.Register(kVisitNativeContext, &VisitNativeContext); 151 table_.Register(kVisitNativeContext, &VisitNativeContext);
152 152
153 table_.Register( 153 table_.Register(
154 kVisitAllocationSite, 154 kVisitAllocationSite,
155 &FixedBodyVisitor<StaticVisitor, AllocationSite::MarkingBodyDescriptor, 155 &FixedBodyVisitor<StaticVisitor, AllocationSite::MarkingBodyDescriptor,
156 void>::Visit); 156 void>::Visit);
157 157
158 table_.Register(kVisitByteArray, &DataObjectVisitor::Visit); 158 table_.Register(kVisitByteArray, &DataObjectVisitor::Visit);
159 159
160 table_.Register( 160 table_.Register(kVisitBytecodeArray, &VisitBytecodeArray);
161 kVisitBytecodeArray,
162 &FixedBodyVisitor<StaticVisitor, BytecodeArray::MarkingBodyDescriptor,
163 void>::Visit);
164 161
165 table_.Register(kVisitFreeSpace, &DataObjectVisitor::Visit); 162 table_.Register(kVisitFreeSpace, &DataObjectVisitor::Visit);
166 163
167 table_.Register(kVisitSeqOneByteString, &DataObjectVisitor::Visit); 164 table_.Register(kVisitSeqOneByteString, &DataObjectVisitor::Visit);
168 165
169 table_.Register(kVisitSeqTwoByteString, &DataObjectVisitor::Visit); 166 table_.Register(kVisitSeqTwoByteString, &DataObjectVisitor::Visit);
170 167
171 table_.Register(kVisitJSWeakCollection, &VisitWeakCollection); 168 table_.Register(kVisitJSWeakCollection, &VisitWeakCollection);
172 169
173 table_.Register( 170 table_.Register(
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 target->ic_age() != heap->global_ic_age())) { 276 target->ic_age() != heap->global_ic_age())) {
280 ICUtility::Clear(heap->isolate(), rinfo->pc(), 277 ICUtility::Clear(heap->isolate(), rinfo->pc(),
281 rinfo->host()->constant_pool()); 278 rinfo->host()->constant_pool());
282 target = Code::GetCodeFromTargetAddress(rinfo->target_address()); 279 target = Code::GetCodeFromTargetAddress(rinfo->target_address());
283 } 280 }
284 Code* host = rinfo->host(); 281 Code* host = rinfo->host();
285 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target); 282 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target);
286 StaticVisitor::MarkObject(heap, target); 283 StaticVisitor::MarkObject(heap, target);
287 } 284 }
288 285
289
290 template <typename StaticVisitor> 286 template <typename StaticVisitor>
291 void StaticMarkingVisitor<StaticVisitor>::VisitCodeAgeSequence( 287 void StaticMarkingVisitor<StaticVisitor>::VisitCodeAgeSequence(
292 Heap* heap, RelocInfo* rinfo) { 288 Heap* heap, RelocInfo* rinfo) {
293 DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode())); 289 DCHECK(RelocInfo::IsCodeAgeSequence(rinfo->rmode()));
294 Code* target = rinfo->code_age_stub(); 290 Code* target = rinfo->code_age_stub();
295 DCHECK(target != NULL); 291 DCHECK(target != NULL);
296 Code* host = rinfo->host(); 292 Code* host = rinfo->host();
297 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target); 293 heap->mark_compact_collector()->RecordRelocSlot(host, rinfo, target);
298 StaticVisitor::MarkObject(heap, target); 294 StaticVisitor::MarkObject(heap, target);
299 } 295 }
300 296
297 template <typename StaticVisitor>
298 void StaticMarkingVisitor<StaticVisitor>::VisitBytecodeArray(
299 Map* map, HeapObject* object) {
300 FixedBodyVisitor<StaticVisitor, BytecodeArray::MarkingBodyDescriptor,
301 void>::Visit(map, object);
302 BytecodeArray::cast(object)->MakeOlder();
303 }
301 304
302 template <typename StaticVisitor> 305 template <typename StaticVisitor>
303 void StaticMarkingVisitor<StaticVisitor>::VisitNativeContext( 306 void StaticMarkingVisitor<StaticVisitor>::VisitNativeContext(
304 Map* map, HeapObject* object) { 307 Map* map, HeapObject* object) {
305 FixedBodyVisitor<StaticVisitor, Context::MarkCompactBodyDescriptor, 308 FixedBodyVisitor<StaticVisitor, Context::MarkCompactBodyDescriptor,
306 void>::Visit(map, object); 309 void>::Visit(map, object);
307 } 310 }
308 311
309 312
310 template <typename StaticVisitor> 313 template <typename StaticVisitor>
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
657 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode, 660 typedef FlexibleBodyVisitor<StaticVisitor, JSFunction::BodyDescriptorWeakCode,
658 void> JSFunctionWeakCodeBodyVisitor; 661 void> JSFunctionWeakCodeBodyVisitor;
659 JSFunctionWeakCodeBodyVisitor::Visit(map, object); 662 JSFunctionWeakCodeBodyVisitor::Visit(map, object);
660 } 663 }
661 664
662 665
663 } // namespace internal 666 } // namespace internal
664 } // namespace v8 667 } // namespace v8
665 668
666 #endif // V8_OBJECTS_VISITING_INL_H_ 669 #endif // V8_OBJECTS_VISITING_INL_H_
OLDNEW
« no previous file with comments | « src/heap/objects-visiting.h ('k') | src/objects.h » ('j') | src/objects.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698