GCC Middle and Back End API Reference
|
The rest of the global variables.
size_t globals::allocated |
Bytes currently allocated.
Referenced by gt_ggc_m_S().
size_t globals::allocated_last_gc |
Bytes currently allocated at the end of the last collection.
page_entry** globals::by_depth |
Each element of this array is a pointer to a page_entry, all page_entries can be found in here by increasing depth. index_by_depth in the page_entry is the index into this data structure where that page_entry can be found. This is used to speed up finding all page_entries at a particular depth.
unsigned int globals::by_depth_in_use |
Current number of elements in use in by_depth below.
unsigned int globals::by_depth_max |
Maximum number of elements that can be used before resizing.
size_t globals::bytes_mapped |
Total amount of memory mapped.
Referenced by debug_print_page_list(), and lookup_page_table_entry().
unsigned short globals::context_depth |
The current depth in the context stack.
Referenced by clear_marks(), compute_inverse(), and sweep_pages().
unsigned long globals::context_depth_allocations |
Bit N set if any allocations have been done at context depth N.
unsigned long globals::context_depth_collections |
Bit N set if any collections have been done at context depth N.
FILE* globals::debug_file |
The file descriptor for debugging output.
Referenced by gt_ggc_m_S().
unsigned int* globals::depth |
Each element of this array is an index in by_depth where the given depth starts. This structure is indexed by that given depth we are interested in.
unsigned int globals::depth_in_use |
Current number of elements in use in depth below.
unsigned int globals::depth_max |
Maximum number of elements that can be used before resizing.
page_entry* globals::free_pages |
A file descriptor open to /dev/zero for reading. A cache of free system pages.
Referenced by debug_print_page_list().
size_t globals::lg_pagesize |
Referenced by set_page_group_in_use().
page_table globals::lookup |
Lookup table for associating allocation pages with object addresses.
Referenced by push_depth().
page_group* globals::page_groups |
page_entry* globals::page_tails[NUM_ORDERS] |
The Nth element in this array is the last page with objects of size 2^N. NULL if there are no page-entries for this object size.
Referenced by gt_ggc_mx().
page_entry* globals::pages[NUM_ORDERS] |
The Nth element in this array is a page with objects of size 2^N. If there are any pages with free objects, they will be at the head of the list. NULL if there are no page-entries for this object size.
Referenced by clear_marks(), and gt_ggc_mx().
size_t globals::pagesize |
The system's page size.
Referenced by compute_inverse(), debug_print_page_list(), page_group_index(), and set_page_group_in_use().
unsigned long** globals::save_in_use |
Each element is a pointer to the saved in_use_p bits, if any, zero otherwise. We allocate them all together, to enable a better runtime data access pattern.
struct { ... } globals::stats |
unsigned long long globals::total_allocated |
Total GC-allocated memory.
unsigned long long globals::total_allocated_per_order[NUM_ORDERS] |
The allocations for each of the allocation orders.
unsigned long long globals::total_allocated_under128 |
unsigned long long globals::total_allocated_under32 |
Total allocations and overhead for sizes less than 32, 64 and 128. These sizes are interesting because they are typical cache line sizes.
unsigned long long globals::total_allocated_under64 |
unsigned long long globals::total_overhead |
Total overhead for GC-allocated memory.
unsigned long long globals::total_overhead_per_order[NUM_ORDERS] |
The overhead for each of the allocation orders.
unsigned long long globals::total_overhead_under128 |
unsigned long long globals::total_overhead_under32 |
unsigned long long globals::total_overhead_under64 |