diff options
author | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-09 13:54:07 +0000 |
---|---|---|
committer | nathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4> | 2004-09-09 13:54:07 +0000 |
commit | 0d59b19dc2331e2fd6d3ce1d95d0d6c22263c282 (patch) | |
tree | 186a20ffec3fade2a9f7714afe4a71cd22d79511 /gcc/ggc-page.c | |
parent | d447f9c8dd7ac560eafefb78fdfe0d4479a44d99 (diff) | |
download | gcc-0d59b19dc2331e2fd6d3ce1d95d0d6c22263c282.tar.gz |
* gcse.c (INSN_CUID, insert_set_in_table, find_avail_set,
cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set,
process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn,
hoist_code, extract_mentioned_regs_helper, compute_store_table,
insert_store): Use gcc_assert and gcc_unreachable.
* ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free,
gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs,
ggc_record_overhead): Likewise.
* ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p,
init_ggc, ggc_push_context, ggc_recalculate_in_use_p,
ggc_pop_context, clear_marks, validate_free_objects,
ggc_pch_read): Likewise.
* ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark,
ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone,
ggc_push_context, check_cookies, ggc_collect,
ggc_print_statistics): Likewise.
* gimple-low.c (lower_function_body, lower_stmt,
lower_bind_expr): Likewise.
* gimplify.c (gimple_tree_eq, push_gimplify_context,
pop_gimplify_context, gimple_pop_condition, create_tmp_var,
declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus,
mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr,
gimplify_case_label_expr, gimplify_exit_block_expr,
canonicalize_component_ref, gimplify_compound_lval,
gimplify_self_mod_expr, gimplify_call_expr,
gimplify_init_ctor_eval, gimplify_init_constructor,
gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr,
gimplify_expr, check_pointer_types_r,
force_gimple_operand): Likewise.
* global.c (global_alloc, build_insn_chain): Likewise.
* graph.c (clean_graph_dump_file,
finish_graph_dump_file): Likewise.
gcov-io.c (gcov_open): Use GCOV_CHECK.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@87240 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ggc-page.c')
-rw-r--r-- | gcc/ggc-page.c | 87 |
1 files changed, 26 insertions, 61 deletions
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c index 578faf67ce3..a5eb8915a23 100644 --- a/gcc/ggc-page.c +++ b/gcc/ggc-page.c @@ -821,8 +821,7 @@ alloc_page (unsigned order) enda -= G.pagesize; tail_slop += G.pagesize; } - if (tail_slop < sizeof (page_group)) - abort (); + gcc_assert (tail_slop >= sizeof (page_group)); group = (page_group *)enda; tail_slop -= sizeof (page_group); } @@ -930,22 +929,16 @@ free_page (page_entry *entry) if (G.by_depth_in_use > 1) { page_entry *top = G.by_depth[G.by_depth_in_use-1]; - - /* If they are at the same depth, put top element into freed - slot. */ - if (entry->context_depth == top->context_depth) - { - int i = entry->index_by_depth; - G.by_depth[i] = top; - G.save_in_use[i] = G.save_in_use[G.by_depth_in_use-1]; - top->index_by_depth = i; - } - else - { - /* We cannot free a page from a context deeper than the - current one. */ - abort (); - } + int i = entry->index_by_depth; + + /* We cannot free a page from a context deeper than the current + one. */ + gcc_assert (entry->context_depth == top->context_depth); + + /* Put top element into freed slot. */ + G.by_depth[i] = top; + G.save_in_use[i] = G.save_in_use[G.by_depth_in_use-1]; + top->index_by_depth = i; } --G.by_depth_in_use; @@ -1259,10 +1252,7 @@ ggc_set_mark (const void *p) /* Look up the page on which the object is alloced. If the object wasn't allocated by the collector, we'll probably die. */ entry = lookup_page_table_entry (p); -#ifdef ENABLE_CHECKING - if (entry == NULL) - abort (); -#endif + gcc_assert (entry); /* Calculate the index of the object on the page; this is its bit position in the in_use_p bitmap. */ @@ -1298,10 +1288,7 @@ ggc_marked_p (const void *p) /* Look up the page on which the object is alloced. If the object wasn't allocated by the collector, we'll probably die. */ entry = lookup_page_table_entry (p); -#ifdef ENABLE_CHECKING - if (entry == NULL) - abort (); -#endif + gcc_assert (entry); /* Calculate the index of the object on the page; this is its bit position in the in_use_p bitmap. */ @@ -1474,8 +1461,7 @@ init_ggc (void) can't get something useful, give up. */ p = alloc_anon (NULL, G.pagesize); - if ((size_t)p & (G.pagesize - 1)) - abort (); + gcc_assert (!((size_t)p & (G.pagesize - 1))); } /* We have a good page, might as well hold onto it... */ @@ -1556,8 +1542,7 @@ ggc_push_context (void) ++G.context_depth; /* Die on wrap. */ - if (G.context_depth >= HOST_BITS_PER_LONG) - abort (); + gcc_assert (G.context_depth < HOST_BITS_PER_LONG); } /* Merge the SAVE_IN_USE_P and IN_USE_P arrays in P so that IN_USE_P @@ -1593,8 +1578,7 @@ ggc_recalculate_in_use_p (page_entry *p) p->num_free_objects -= (j & 1); } - if (p->num_free_objects >= num_objects) - abort (); + gcc_assert (p->num_free_objects < num_objects); } /* Decrement the `GC context'. All objects allocated since the @@ -1634,18 +1618,12 @@ ggc_pop_context (void) recalculate the in use bits. */ for (i = G.depth[depth]; i < e; ++i) { - page_entry *p; - -#ifdef ENABLE_CHECKING - p = G.by_depth[i]; + page_entry *p = G.by_depth[i]; /* Check that all of the pages really are at the depth that we expect. */ - if (p->context_depth != depth) - abort (); - if (p->index_by_depth != i) - abort (); -#endif + gcc_assert (p->context_depth == depth); + gcc_assert (p->index_by_depth == i); prefetch (&save_in_use_p_i (i+8)); prefetch (&save_in_use_p_i (i+16)); @@ -1667,12 +1645,8 @@ ggc_pop_context (void) /* Check that all of the pages really are at the depth we expect. */ -#ifdef ENABLE_CHECKING - if (p->context_depth <= depth) - abort (); - if (p->index_by_depth != i) - abort (); -#endif + gcc_assert (p->context_depth > depth); + gcc_assert (p->index_by_depth == i); p->context_depth = depth; } @@ -1684,12 +1658,8 @@ ggc_pop_context (void) page_entry *p; for (p = G.pages[order]; p != NULL; p = p->next) - { - if (p->context_depth > depth) - abort (); - else if (p->context_depth == depth && save_in_use_p (p)) - abort (); - } + gcc_assert (p->context_depth < depth || + (p->context_depth == depth && !save_in_use_p (p))); } #endif } @@ -1710,11 +1680,8 @@ clear_marks (void) size_t num_objects = OBJECTS_IN_PAGE (p); size_t bitmap_size = BITMAP_SIZE (num_objects + 1); -#ifdef ENABLE_CHECKING /* The data should be page-aligned. */ - if ((size_t) p->page & (G.pagesize - 1)) - abort (); -#endif + gcc_assert (!((size_t) p->page & (G.pagesize - 1))); /* Pages that aren't in the topmost context are not collected; nevertheless, we need their in-use bit vectors to store GC @@ -1944,8 +1911,7 @@ validate_free_objects (void) /* Make certain it isn't visible from any root. Notice that we do this check before sweep_pages merges save_in_use_p. */ - if (pe->in_use_p[word] & (1UL << bit)) - abort (); + gcc_assert (!(pe->in_use_p[word] & (1UL << bit))); /* If the object comes from an outer context, then retain the free_object entry, so that we can verify that the address @@ -2341,8 +2307,7 @@ ggc_pch_read (FILE *f, void *addr) /* No object read from a PCH file should ever be freed. So, set the context depth to 1, and set the depth of all the currently-allocated pages to be 1 too. PCH pages will have depth 0. */ - if (G.context_depth != 0) - abort (); + gcc_assert (!G.context_depth); G.context_depth = 1; for (i = 0; i < NUM_ORDERS; i++) { |