GCC Middle and Back End API Reference
|
Data Fields | |
struct page_entry * | next |
struct page_entry * | prev |
size_t | bytes |
char * | page |
struct page_group * | group |
unsigned long | index_by_depth |
unsigned short | context_depth |
unsigned short | num_free_objects |
unsigned short | next_bit_hint |
unsigned char | order |
bool | discarded |
unsigned long | in_use_p [1] |
A page_entry records the status of an allocation page. This structure is dynamically sized to fit the bitmap in_use_p.
size_t page_entry::bytes |
The number of bytes allocated. (This will always be a multiple of the host system page size.)
Referenced by debug_print_page_list(), init_ggc_pch(), and set_page_group_in_use().
unsigned short page_entry::context_depth |
Context depth of this page.
Referenced by clear_marks(), compute_inverse(), and sweep_pages().
bool page_entry::discarded |
Discarded page?
Referenced by debug_print_page_list().
struct page_group* page_entry::group |
Back pointer to the page group this page came from.
Referenced by debug_print_page_list().
unsigned long page_entry::in_use_p[1] |
A bit vector indicating whether or not objects are in use. The Nth bit is one if the Nth object on this page is allocated. This array is dynamically sized.
Referenced by clear_marks(), compute_inverse(), gt_ggc_m_S(), and sweep_pages().
unsigned long page_entry::index_by_depth |
This is the index in the by_depth varray where this page table can be found.
struct page_entry* page_entry::next |
The next page-entry with objects of the same size, or NULL if this is the last page-entry.
Referenced by clear_marks(), debug_print_page_list(), gt_ggc_mx(), and set_page_group_in_use().
unsigned short page_entry::next_bit_hint |
A likely candidate for the bit position of a free object for the next allocation from this page.
unsigned short page_entry::num_free_objects |
The number of free objects remaining on this page.
Referenced by compute_inverse(), and gt_ggc_m_S().
unsigned char page_entry::order |
The lg of size of objects allocated from this page.
Referenced by debug_print_page_list(), gt_ggc_m_S(), set_page_group_in_use(), and sweep_pages().
char* page_entry::page |
The address at which the memory is allocated.
Referenced by clear_marks(), compute_inverse(), debug_print_page_list(), gt_ggc_m_S(), lookup_page_table_entry(), set_page_group_in_use(), and sweep_pages().
struct page_entry* page_entry::prev |
The previous page-entry with objects of the same size, or NULL if this is the first page-entry. The PREV pointer exists solely to keep the cost of ggc_free manageable.
Referenced by gt_ggc_m_S(), and gt_ggc_mx().