summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.finalggc
blob: 71f4d10686050a937388313e47e3b3aeba6ec9bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57

2011-10-21  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc-zone.c (ggczon_finalized_sizetab): New constant array.
	(GGCZON_NUMBER_FINALIZED_SIZES): New macro.
	(enum ggczon_chunkstate_en): New.
	(union ggczon_final_prefix_un): New.
	(GGCZON_FINALIZED_PREFIX,GGCZON_FINALIZED_OBJECT): New macros.
	(GGCZON_FINALIZING_PAGE): New enum value.
	(struct page_entry): Move next field here.
	(struct small_page_entry)
	(struct finalizing_page_entry, struct large_page_entry): Remove
	next field.
	(struct alloc_zone): Added some fields.
	(zone_allocate_marks, alloc_small_page, alloc_large_page)
	(release_pages, ggc_internal_alloc_zone_stat, ggc_free, init_ggc)
	(sweep_pages, ggc_print_statistics): Update for next field.
	(alloc_finalizing_page): New function.

2011-10-21  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc-zone.c (ggc_free, gt_ggc_m_S, ggc_set_mark, ggc_marked_p)
	(ggc_get_size): Use switch on page_kind.
	(sweep_pages): Better assertion on small pages.

2011-10-21  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc-zone.c (struct alloc_zone): Rename pages field as small_pages.
	(zone_allocate_marks, ggc_internal_alloc_zone_stat, sweep_pages)
	(calculate_average_page_survival, ggc_pch_read): Likewise.

2011-10-21  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc-zone.c (sweep_pages): Call the finalizer on the page data of
	large objects.

2011-10-21  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc-zone.c (max_finalized_alignment): New struct.
	(MAX_FINALIZED_ALIGNMENT): New macro.
	(alloc_small_page): Fill appropriately the page_kind.
	(ggc_finalized_alloc_stat): Deal with null finalizer.

2011-10-20  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc.h (ggc_destructor_t): Rename as ...
	(ggc_finalizer_t): New type for signature of finalizers.
	(ggc_finalized_alloc_stat): Update accordingly.

	* ggc-zone.c (enum page_kind_en): New.
	(page_entry): Remove large_p & pch_p. Add page_kind field.
	(alloc_large_page, free_small_page, free_large_page, ggc_free)
	(ggc_set_mark, ggc_get_size, sweep_pages, ggc_pch_read): Use it.
	(ggc_finalized_alloc_stat): Update signature.

2011-10-19  Basile Starynkevitch  <basile@starynkevitch.net>
	* ggc.h (ggc_destructor_t): New type, signature of destructor routines.
	(ggc_finalized_alloc_stat): New declaration.
	(ggc_finalized_alloc): New macro.

	* ggc-zone.c (ggc_finalized_alloc_stat): Adding new function.

========= changelog for adding finalization to Ggc ==========