1062
1063 // Summary phase utility routine to fill dead space (if any) at the dense
1064 // prefix boundary. Should only be called if the the dense prefix is
1065 // non-empty.
1066 static void fill_dense_prefix_end(SpaceId id);
1067
1068 static void summarize_spaces_quick();
1069 static void summarize_space(SpaceId id, bool maximum_compaction);
1070 static void summary_phase(ParCompactionManager* cm, bool maximum_compaction);
1071
1072 // Adjust addresses in roots. Does not adjust addresses in heap.
1073 static void adjust_roots(ParCompactionManager* cm);
1074
1075 DEBUG_ONLY(static void write_block_fill_histogram();)
1076
1077 // Move objects to new locations.
1078 static void compact_perm(ParCompactionManager* cm);
1079 static void compact();
1080
1081 // Add available regions to the stack and draining tasks to the task queue.
1082 static void enqueue_region_draining_tasks(GCTaskQueue* q,
1083 uint parallel_gc_threads);
1084
1085 // Add dense prefix update tasks to the task queue.
1086 static void enqueue_dense_prefix_tasks(GCTaskQueue* q,
1087 uint parallel_gc_threads);
1088
1089 // Add region stealing tasks to the task queue.
1090 static void enqueue_region_stealing_tasks(
1091 GCTaskQueue* q,
1092 ParallelTaskTerminator* terminator_ptr,
1093 uint parallel_gc_threads);
1094
1095 // If objects are left in eden after a collection, try to move the boundary
1096 // and absorb them into the old gen. Returns true if eden was emptied.
1097 static bool absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
1098 PSYoungGen* young_gen,
1099 PSOldGen* old_gen);
1100
1101 // Reset time since last full gc
1102 static void reset_millis_since_last_gc();
|
1062
1063 // Summary phase utility routine to fill dead space (if any) at the dense
1064 // prefix boundary. Should only be called if the the dense prefix is
1065 // non-empty.
1066 static void fill_dense_prefix_end(SpaceId id);
1067
1068 static void summarize_spaces_quick();
1069 static void summarize_space(SpaceId id, bool maximum_compaction);
1070 static void summary_phase(ParCompactionManager* cm, bool maximum_compaction);
1071
1072 // Adjust addresses in roots. Does not adjust addresses in heap.
1073 static void adjust_roots(ParCompactionManager* cm);
1074
1075 DEBUG_ONLY(static void write_block_fill_histogram();)
1076
1077 // Move objects to new locations.
1078 static void compact_perm(ParCompactionManager* cm);
1079 static void compact();
1080
1081 // Add available regions to the stack and draining tasks to the task queue.
1082 static void prepare_region_draining_tasks(GCTaskQueue* q,
1083 uint parallel_gc_threads);
1084
1085 // Add dense prefix update tasks to the task queue.
1086 static void enqueue_dense_prefix_tasks(GCTaskQueue* q,
1087 uint parallel_gc_threads);
1088
1089 // Add region stealing tasks to the task queue.
1090 static void enqueue_region_stealing_tasks(
1091 GCTaskQueue* q,
1092 ParallelTaskTerminator* terminator_ptr,
1093 uint parallel_gc_threads);
1094
1095 // If objects are left in eden after a collection, try to move the boundary
1096 // and absorb them into the old gen. Returns true if eden was emptied.
1097 static bool absorb_live_data_from_eden(PSAdaptiveSizePolicy* size_policy,
1098 PSYoungGen* young_gen,
1099 PSOldGen* old_gen);
1100
1101 // Reset time since last full gc
1102 static void reset_millis_since_last_gc();
|