Revision: 10625 Author: [email protected] Date: Tue Feb 7 06:43:51 2012 Log: Try enabling (non-incremental) code compaction again.
This time include slot-recording fixes in code flushing that were accidentally omitted from the previous commit.
[email protected] Review URL: https://chromiumcodereview.appspot.com/9348018 http://code.google.com/p/v8/source/detail?r=10625 Modified: /branches/bleeding_edge/src/flag-definitions.h /branches/bleeding_edge/src/mark-compact.cc ======================================= --- /branches/bleeding_edge/src/flag-definitions.h Tue Feb 7 02:03:08 2012 +++ /branches/bleeding_edge/src/flag-definitions.h Tue Feb 7 06:43:51 2012 @@ -307,7 +307,7 @@ "Flush code caches in maps during mark compact cycle.") DEFINE_bool(never_compact, false, "Never perform compaction on full GC - testing only") -DEFINE_bool(compact_code_space, false, +DEFINE_bool(compact_code_space, true, "Compact code space on full non-incremental collections") DEFINE_bool(cleanup_code_caches_at_gc, true, "Flush inline caches prior to mark compact collection and " ======================================= --- /branches/bleeding_edge/src/mark-compact.cc Tue Feb 7 02:03:08 2012 +++ /branches/bleeding_edge/src/mark-compact.cc Tue Feb 7 06:43:51 2012 @@ -809,6 +809,8 @@ isolate_->heap()->mark_compact_collector()-> RecordCodeEntrySlot(slot, target); + RecordSharedFunctionInfoCodeSlot(shared); + candidate = next_candidate; } @@ -830,12 +832,21 @@ if (!code_mark.Get()) { candidate->set_code(lazy_compile); } + + RecordSharedFunctionInfoCodeSlot(candidate); candidate = next_candidate; } shared_function_info_candidates_head_ = NULL; } + + void RecordSharedFunctionInfoCodeSlot(SharedFunctionInfo* shared) { + Object** slot = HeapObject::RawField(shared, + SharedFunctionInfo::kCodeOffset); + isolate_->heap()->mark_compact_collector()-> + RecordSlot(slot, slot, HeapObject::cast(*slot)); + } static JSFunction** GetNextCandidateField(JSFunction* candidate) { return reinterpret_cast<JSFunction**>( -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
