GCC Middle and Back End API Reference
bitmap.c File Reference

Data Structures

struct  bitmap_descriptor_d
struct  loc
struct  bitmap_desc_hasher
struct  output_info

Typedefs

typedef struct
bitmap_descriptor_d
bitmap_descriptor
typedef struct
bitmap_descriptor_d
const_bitmap_descriptor

Functions

static bitmap_descriptor get_bitmap_descriptor ()
void bitmap_register ()
static void register_overhead ()
static void bitmap_elem_to_freelist (bitmap, bitmap_element *)
static void bitmap_element_free (bitmap, bitmap_element *)
static bitmap_elementbitmap_element_allocate (bitmap)
static int bitmap_element_zerop (const bitmap_element *)
static void bitmap_element_link (bitmap, bitmap_element *)
static bitmap_elementbitmap_elt_insert_after (bitmap, bitmap_element *, unsigned int)
static void bitmap_elt_clear_from (bitmap, bitmap_element *)
static bitmap_elementbitmap_find_bit (bitmap, unsigned int)
static void bitmap_elem_to_freelist ()
static void bitmap_element_free ()
static bitmap_elementbitmap_element_allocate ()
void bitmap_elt_clear_from ()
void bitmap_clear ()
void bitmap_obstack_initialize ()
void bitmap_obstack_release ()
bitmap bitmap_obstack_alloc_stat ()
bitmap bitmap_gc_alloc_stat ()
void bitmap_obstack_free ()
static int bitmap_element_zerop ()
static void bitmap_element_link ()
static bitmap_elementbitmap_elt_insert_after ()
void bitmap_copy ()
static bitmap_elementbitmap_find_bit ()
bool bitmap_clear_bit ()
bool bitmap_set_bit ()
int bitmap_bit_p ()
static unsigned long bitmap_popcount ()
unsigned long bitmap_count_bits ()
bool bitmap_single_bit_set_p ()
unsigned bitmap_first_set_bit ()
unsigned bitmap_last_set_bit ()
void bitmap_and ()
bool bitmap_and_into ()
static bool bitmap_elt_copy (bitmap dst, bitmap_element *dst_elt, bitmap_element *dst_prev, const bitmap_element *src_elt, bool changed)
bool bitmap_and_compl ()
bool bitmap_and_compl_into ()
void bitmap_set_range ()
void bitmap_clear_range ()
void bitmap_compl_and_into ()
static bool bitmap_elt_ior (bitmap dst, bitmap_element *dst_elt, bitmap_element *dst_prev, const bitmap_element *a_elt, const bitmap_element *b_elt, bool changed)
bool bitmap_ior ()
bool bitmap_ior_into ()
void bitmap_xor ()
void bitmap_xor_into ()
bool bitmap_equal_p ()
bool bitmap_intersect_p ()
bool bitmap_intersect_compl_p ()
bool bitmap_ior_and_compl ()
bool bitmap_ior_and_compl_into ()
bool bitmap_ior_and_into ()
hashval_t bitmap_hash ()
DEBUG_FUNCTION void debug_bitmap_file ()
DEBUG_FUNCTION void debug_bitmap ()
DEBUG_FUNCTION void bitmap_print (FILE *file, const_bitmap head, const char *prefix, const char *suffix)
int print_statistics ()
void dump_bitmap_statistics ()
DEBUG_FUNCTION void debug ()

Variables

static int next_bitmap_desc_id = 0
static vec< bitmap_descriptorbitmap_descriptors
static hash_table
< bitmap_desc_hasher
bitmap_desc_hash
bitmap_element bitmap_zero_bits
bitmap_obstack bitmap_default_obstack
static int bitmap_default_obstack_depth
static bitmap_elementbitmap_ggc_free
static const unsigned char popcount_table []

Typedef Documentation


Function Documentation

int bitmap_bit_p ( )
Return whether a bit is set within a bitmap.   

References bitmap_find_bit(), and bitmap_element_def::bits.

Referenced by add_branch_dependences(), add_control_edge(), add_cross_iteration_register_deps(), add_exit_phis_var(), add_partitioned_vars_to_ptset(), addr_object_size(), adjust_agg_replacement_values(), adjust_cleared_regs(), all_non_dominated_preds_marked_p(), all_positions_needed_p(), already_processed_vertex_p(), analyze_access_subtree(), analyze_all_variable_accesses(), ask_dependency_caches(), assign_by_spills(), assign_hard_reg(), assign_spill_hard_regs(), augment_live_range(), av_set_could_be_blocked_by_bookkeeping_p(), bb_in_loop_p(), bb_seen_p(), bitmap_set_and(), bitmap_set_contains_expr(), bitmap_set_contains_value(), build_function_decl_skip_args(), build_function_type_skip_args(), build_insn_chain(), build_intra_loop_deps(), build_scop_bbs_1(), build_store_vectors(), build_succ_graph(), cached_make_edge(), calc_idoms(), calculate_loop_reg_pressure(), calculate_must_precede_follow(), call_may_clobber_ref_p_1(), can_decompose_p(), cfg_blocks_add(), cgraph_copy_node_for_versioning(), cgraph_create_virtual_clone(), check_all_va_list_escapes(), check_for_plus_in_loops_1(), check_live_1(), check_nodes_order(), check_va_list_escapes(), cleanup_empty_eh_merge_phis(), coalesce_spill_slots(), code_motion_path_driver(), collect_object_sizes_for(), color_pass(), combine_reloads(), compute_always_reached(), compute_antic(), compute_builtin_object_size(), compute_split_row(), compute_topo_order(), compute_trg_info(), condense_visit(), consider_split(), convert_local_reference_op(), convert_nonlocal_reference_op(), copy_arguments_for_versioning(), copy_cfg_body(), copy_loops(), copyprop_hardreg_forward(), create_access(), create_caps(), create_ddg_dep_from_intra_loop_link(), create_loop_allocnos(), create_scc(), cse_find_path(), cse_main(), dce_process_block(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_debug_reset_uses(), dead_or_predicable(), df_analyze(), df_compact_blocks(), df_create_unused_note(), df_exit_block_uses_collect(), df_get_bb_dirty(), df_get_call_refs(), df_install_ref_incremental(), df_install_refs(), df_live_verify_transfer_functions(), df_lr_verify_transfer_functions(), df_md_bb_local_compute_process_def(), df_md_local_compute(), df_note_bb_compute(), df_notes_rescan(), df_print_word_regset(), df_prune_to_subcfg(), df_rd_bb_local_compute_process_def(), df_reg_chain_unlink(), df_remove_dead_eq_notes(), df_set_dead_notes_for_mw(), df_set_unused_notes_for_mw(), df_whole_mw_reg_dead_p(), df_whole_mw_reg_unused_p(), df_worklist_propagate_backward(), df_worklist_propagate_forward(), discover_loop(), do_ds_constraint(), do_sd_constraint(), draw_cfg_nodes_no_loops(), dse_step2_nospill(), dse_step3(), dse_step5_nospill(), dump_bitmap_file(), dump_dereferences_table(), dump_rdg(), dump_replaceable_exprs(), dup_block_and_redirect(), duplicate_computed_gotos(), duplicate_loop_to_header_edge(), eh_region_may_contain_throw(), eh_region_outermost(), elim_backward(), elim_create(), elim_forward(), elim_unvisited_predecessor(), eliminate(), eliminate_bb(), eliminate_phi(), eliminate_temp_copies(), eliminate_unnecessary_stmts(), estimate_insn_tick(), execute_update_addresses_taken(), expand_gimple_basic_block(), expand_gimple_cond(), expand_loc(), expand_used_vars(), extend_rgns(), fast_dce(), fill_always_executed_in_1(), find_assert_locations_1(), find_avail_set(), find_bypass_set(), find_comparisons_in_bb(), find_costs_and_classes(), find_dummy_reload(), find_equivalent_node(), find_indirect_cycles(), find_invariants_body(), find_many_sub_basic_blocks(), find_moveable_pseudos(), find_nodes_on_paths(), find_replaceable_in_bb(), find_va_list_reference(), fix_bb_placements(), flow_dfs_compute_reverse_execute(), foll_in_subgraph(), generate_edge_moves(), generate_loops_for_partition(), get_access_for_expr(), get_gimple_for_ssa_name(), get_loop_body_in_if_conv_order(), get_loop_hot_path(), get_reg_known_equiv_p(), get_sched_window(), get_tm_region_blocks(), gimple_call_copy_skip_args(), gimple_equal_p(), gimple_flow_call_edges_add(), gimplify_omp_for(), haifa_find_rgns(), has_upstream_mem_writes(), hoist_code(), implicit_clobber_conflict_p(), improve_inheritance(), init_live_subregs(), init_seqno_1(), initialize_parameter_reductions(), initialize_uninitialized_regs(), initiate_bb_reg_pressure_info(), initiate_reg_pressure_info(), insert_store(), invalid_mode_change_p(), inverted_post_order_compute(), ipa_pta_execute(), ipa_reference_write_optimization_summary(), ipa_tm_diagnose_transaction(), ipa_tm_note_irrevocable(), ipa_tm_propagate_irr(), ipa_tm_scan_irr_blocks(), ipa_tm_scan_irr_function(), ipa_tm_transform_calls(), ipa_tm_transform_calls_1(), ipa_tm_transform_transaction(), ira_loop_edge_freq(), ira_reassign_conflict_allocnos(), ira_reuse_stack_slot(), is_new_name(), is_old_name(), is_proper_for_analysis(), is_used_p(), label_visit(), latch_dominating_def(), live_on_edge(), live_track_live_p(), live_track_process_def(), loe_visit_block(), lower_omp_regimplify_p(), lra_coalesce(), lra_constraints(), lra_former_scratch_operand_p(), lra_former_scratch_p(), lra_push_insn_1(), lto_output(), make_preds_opaque(), make_regs_eqv(), mark_all_reaching_defs_necessary_1(), mark_control_dependent_edges_necessary(), mark_def_interesting(), mark_def_sites(), mark_dfs_back_edges(), mark_elimination(), mark_nodes_having_upstream_mem_writes(), mark_nonssa_use(), mark_operand_necessary(), mark_parm_dereference(), mark_reachable_blocks(), mark_use_interesting(), marked_for_renaming(), marked_insn_p(), maybe_optimize_var(), maybe_rewrite_mem_ref_base(), maybe_skip_until(), mem_overlaps_already_clobbered_arg_p(), merge_object_sizes(), move_spill_restore(), multiplier_allowed_in_address_p(), need_for_split_p(), one_store_motion_pass(), optimize_mode_switching(), outermost_indep_loop(), output_cycle_reservs(), parallelized_function_p(), param_change_prob(), partition_is_global(), partition_view_bitmap(), perform_var_substitution(), post_order_compute(), pre_and_rev_post_order_compute(), pre_delete(), pre_edge_insert(), pre_expr_reaches_here_p_work(), pred_blocks_visited_p(), predecessor_has_mem_write(), prepare_def_site_for(), prepare_names_to_update(), prescan_insns_for_dce(), process_ssa_edge_worklist(), process_uses(), propagate_all_subaccesses(), propagate_allocno_info(), propagate_dereference_distances(), propagate_freq(), propagate_necessity(), prune_uninit_phi_opnds_in_unrealizable_paths(), prune_unused_phi_nodes(), ps_insn_advance_column(), ps_insn_find_column(), pseudo_prefix_title(), pt_solution_includes_1(), push_allocno_to_stack(), push_reload(), rdg_build_components(), rdg_build_partitions(), reachable_at_most_once(), record_set(), record_subregs_of_mode(), ref_indep_loop_p_1(), ref_indep_loop_p_2(), ref_maybe_used_by_call_p_1(), regrename_analyze(), regstat_bb_compute_ri(), release_defs_bitset(), reload_pseudo_compare_func(), remap_gimple_stmt(), remove_inheritance_pseudos(), remove_path(), remove_reachable_equiv_notes(), remove_some_program_points_and_update_live_ranges(), remove_unreachable_eh_regions_worker(), remove_unreachable_handlers(), remove_unreachable_handlers_no_lp(), reorder_loops(), rewrite_debug_stmt_uses(), rewrite_enter_block(), rewrite_update_enter_block(), rewrite_update_phi_arguments(), rtl_flow_call_edges_add(), scan_rtx_reg(), scc_visit(), schedule_ebb(), schedule_reg_move(), sd_find_dep_between(), sel_region_target_finish(), sel_sched_region_1(), sese_bad_liveouts_use(), sese_contains_loop(), set_allocno_somewhere_renamed_p(), set_union_with_increment(), should_hoist_expr_to_dom(), simplify_gimple_switch_label_vec(), simulate_block(), single_nonlooparound_use(), sms_schedule_by_order(), solve_graph(), sorted_array_from_bitmap_set(), spill_for(), spill_pseudos(), splice_all_param_accesses(), split_function(), ssa_conflicts_test_p(), stack_var_conflict_p(), store_can_be_removed_p(), test_nonssa_use(), test_unit_reserv(), thread_around_empty_block(), thread_prologue_and_epilogue_insns(), thread_through_all_blocks(), tm_memopt_compute_antic(), tm_memopt_compute_available(), tm_memopt_transform_blocks(), tm_region_init(), topo_visit(), try_bitmap_cache(), update_bad_spill_attribute(), update_bb_reg_pressure(), update_callee_keys(), update_dist_to_successors(), update_dominators_in_loop(), update_ebb_live_info(), va_list_counter_struct_op(), va_list_ptr_read(), va_list_ptr_write(), value_dies_in_block_x(), value_id_constant_p(), vect_supported_load_permutation_p(), verify_live_on_entry(), verify_loop_structure(), verify_non_ssa_vars(), verify_partial_schedule(), verify_target_availability(), verify_use(), version_to_be_replaced_p(), vt_find_locations(), and word_dce_process_block().

void bitmap_clear ( )
Clear a bitmap by freeing the linked list.   

References bitmap_elt_clear_from(), and bitmap_head_def::first.

Referenced by add_dependence(), add_partitioned_vars_to_ptset(), add_scope_conflicts_1(), analyze_function(), assign_by_spills(), assign_spill_hard_regs(), bitmap_and_compl(), bitmap_and_compl_into(), bitmap_compl_and_into(), bitmap_copy(), bitmap_ior_and_compl_into(), bitmap_obstack_free(), bitmap_set_and(), bitmap_set_free(), bitmap_set_subtract_values(), bitmap_union_of_preds(), bitmap_union_of_succs(), bitmap_vector_clear(), bitmap_xor(), bitmap_xor_into(), blocks_in_phiopt_order(), break_superblocks(), build_insn_chain(), build_pred_graph(), build_scop_bbs(), calculate_live_on_exit(), calculate_loop_reg_pressure(), calculate_must_precede_follow(), check_nodes_order(), check_sccs(), clear_control_dependence_bitmap(), clear_modify_mem_tables(), coalesced_allocno_conflict_p(), compute_antic(), compute_antinout_edge(), compute_available(), compute_defs_uses_and_gen(), compute_earliest(), compute_farthest(), compute_trg_info(), copyprop_hardreg_forward(), create_ddg_all_sccs(), cse_main(), dce_process_block(), dead_debug_global_init(), dead_debug_local_init(), decompose_multiword_subregs(), determine_use_iv_cost_condition(), determine_use_iv_costs(), df_chain_create_bb(), df_chain_remove_problem(), df_compact_blocks(), df_entry_block_bitmap_verify(), df_exit_block_bitmap_verify(), df_get_eh_block_artificial_uses(), df_get_entry_block_def_set(), df_get_exit_block_use_set(), df_get_regular_block_artificial_uses(), df_insn_rescan_all(), df_live_free(), df_live_free_bb_info(), df_live_init(), df_live_local_compute(), df_live_reset(), df_live_verify_solution_end(), df_live_verify_transfer_functions(), df_lr_free_bb_info(), df_lr_init(), df_lr_local_compute(), df_lr_reset(), df_lr_verify_solution_end(), df_lr_verify_transfer_functions(), df_md_bb_local_compute_process_def(), df_md_free_bb_info(), df_md_local_compute(), df_md_reset(), df_note_bb_compute(), df_note_compute(), df_process_deferred_rescans(), df_rd_alloc(), df_rd_bb_local_compute(), df_rd_confluence_n(), df_rd_dump_defs_set(), df_rd_free_bb_info(), df_rd_init_solution(), df_rd_local_compute(), df_rd_transfer_function(), df_scan_free_internal(), df_scan_verify(), df_set_blocks(), df_update_entry_block_defs(), df_update_exit_block_uses(), df_word_lr_alloc(), df_word_lr_free_bb_info(), df_word_lr_init(), df_word_lr_local_compute(), df_word_lr_reset(), df_worklist_dataflow(), df_worklist_dataflow_doublequeue(), dfs_enumerate_from(), draw_cfg_nodes_no_loops(), dse_step2_nospill(), dse_step3(), dse_step3_scan(), dse_step5_nospill(), eh_region_outermost(), eliminate_phi(), estimate_shadow_tick(), expand_call(), fast_dce(), fill_always_executed_in(), find_assert_locations(), find_call_stack_args(), find_comparisons_in_bb(), find_moveable_pseudos(), find_nodes_on_paths(), find_replaceable_in_bb(), find_used_regs(), find_what_var_points_to(), finish_reg_info(), fix_bb_placements(), fix_inter_tick(), fix_recovery_deps(), flow_dfs_compute_reverse_init(), free_chain_data(), free_loop_data(), get_computation_cost_at(), get_live_on_other_edges(), get_sched_window(), gimple_fold_builtin(), haifa_find_rgns(), hoist_code(), inherit_in_ebb(), init_alias_analysis(), init_dce(), init_live_subregs(), init_rename_info(), init_scc_info(), init_seqno(), init_topo_info(), init_update_ssa(), initialize_uninitialized_regs(), initiate_reg_pressure_info(), inline_small_functions(), inverted_post_order_compute(), link_btr_uses(), live_merge_and_clear(), live_track_add_partition(), live_track_clear_base_vars(), live_worklist(), longest_simple_path(), lra(), lra_assign(), lra_coalesce(), lra_constraints(), lra_eliminate(), lra_inheritance(), lra_undo_inheritance(), make_edges(), mark_def_sites_block(), mark_dfs_back_edges(), mark_reachable_handlers(), move_exprs_to_boundary(), move_op(), multiplier_allowed_in_address_p(), nearest_common_dominator_of_uses(), order_nodes_in_scc(), order_nodes_of_sccs(), peel_loop_simple(), perform_tree_ssa_dce(), perform_var_substitution(), post_order_compute(), pre_and_rev_post_order_compute(), prescan_insns_for_dce(), propagate_necessity(), propagate_pseudo_copies(), prune_expressions(), prune_insertions_deletions(), prune_unused_phi_nodes(), reachable_at_most_once(), regrename_analyze(), regstat_bb_compute_ri(), remove_path(), remove_reachable_equiv_notes(), remove_some_program_points_and_update_live_ranges(), restore_scratches(), rewrite_into_ssa(), same_succ_reset(), sched_deps_finish(), sched_init_region_reg_pressure_info(), sched_rgn_compute_dependencies(), schedule_ebbs_finish(), schedule_ebbs_init(), schedule_insns(), schedule_reg_move(), schedule_reg_moves(), sel_region_finish(), sel_region_init(), set_value_range(), set_value_range_to_undefined(), set_value_range_to_varying(), setup_try_hard_regno_pseudos(), should_hoist_expr_to_dom(), sms_schedule_by_order(), spill_for(), spill_pseudos(), split_all_insns(), ssa_prop_init(), tail_duplicate(), thread_across_edge(), thread_prologue_and_epilogue_insns(), tree_dce_init(), tree_ssa_dominator_optimize(), undistribute_ops_list(), undo_optional_reloads(), unroll_loop_runtime_iterations(), unroll_loop_stupid(), update_bad_spill_attribute(), update_dominators_in_loop(), update_live_info(), update_ssa(), update_worklist(), vect_supported_load_permutation_p(), verify_loop_structure(), verify_ssa(), vrp_meet_1(), vt_find_locations(), and word_dce_process_block().

bool bitmap_clear_bit ( )
Clear a single bit in a bitmap.  Return true if the bit changed.   

References bitmap_element_free(), bitmap_element_zerop(), bitmap_find_bit(), and bitmap_element_def::bits.

Referenced by add_range_and_copies_from_move_list(), add_scope_conflicts_1(), apply_clusters(), assign_by_spills(), assign_temporarily(), bitmap_remove_from_set(), bitmap_set_and(), bitmap_set_replace_value(), build_insn_chain(), build_pred_graph(), calculate_bb_reg_pressure(), cfg_blocks_get(), change_spec_dep_to_hard(), check_argument_store(), check_for_plus_in_loops_1(), cleanup_tree_cfg_1(), collect_object_sizes_for(), color_pass(), compare_names(), compute_antic_aux(), compute_partial_antic_aux(), compute_transp(), condense_visit(), create_block_for_bookkeeping(), cse_extended_basic_block(), cselib_expand_value_rtx_1(), dead_debug_insert_temp(), dead_debug_reset_uses(), df_clear_bb_dirty(), df_insn_delete(), df_insn_info_delete(), df_insn_rescan(), df_insn_rescan_debug_internal(), df_lr_bb_local_compute(), df_md_bb_local_compute_process_def(), df_md_simulate_artificial_defs_at_top(), df_md_simulate_one_insn(), df_note_bb_compute(), df_notes_rescan(), df_simulate_defs(), df_simulate_finalize_backwards(), df_simulate_initialize_backwards(), df_simulate_one_insn_forwards(), df_word_lr_mark_ref(), df_worklist_dataflow_doublequeue(), disqualify_candidate(), eliminate(), eliminate_const_or_copy(), find_assert_locations_1(), find_moveable_pseudos(), fix_bb_live_info(), fix_bb_placements(), haifa_find_rgns(), init_seqno(), init_seqno_1(), insert_store(), invalidate_insn_data_regno_info(), iv_ca_set_no_cp(), live_track_remove_partition(), loe_visit_block(), lra_pop_insn(), make_preds_opaque(), mark_effect(), mark_elimination(), mark_reachable_blocks(), mark_regno_birth_or_death(), mark_regno_death(), optimize_mode_switching(), order_nodes_in_scc(), peel_loop_completely(), prepare_names_to_update(), process_defs(), propagate(), propagate_freq(), prune_insertions_deletions(), prune_uninit_phi_opnds_in_unrealizable_paths(), rdg_flag_vertex(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), release_defs_bitset(), reload(), remove_dead_inserted_code(), remove_edge_and_dominated_blocks(), remove_from_partition_kill_list(), same_succ_flush_bb(), scan_reads_nospill(), scan_reads_spill(), scan_rtx_reg(), scan_stores_nospill(), scan_stores_spill(), sd_delete_dep(), sel_sched_region_1(), set_reg_known_equiv_p(), sms_schedule_by_order(), solve_graph(), thread_prologue_and_epilogue_insns(), track_scheduled_insns_and_blocks(), tree_transform_and_unroll_loop(), try_unroll_loop_completely(), undo_optional_reloads(), unify_nodes(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), update_bb_reg_pressure(), update_bitmap_cache(), update_dependency_caches(), update_ebb_live_info(), update_lives(), update_worklist(), verify_loop_structure(), and vt_find_locations().

void bitmap_copy ( )
Copy a bitmap to another bitmap.   

References bitmap_clear(), bitmap_element_allocate(), bitmap_element_def::bits, bitmap_head_def::current, bitmap_head_def::first, bitmap_element_def::indx, bitmap_head_def::indx, memcpy(), bitmap_element_def::next, and bitmap_element_def::prev.

Referenced by add_ranges_and_copies(), analyze_all_variable_accesses(), bitmap_and(), bitmap_compl_and_into(), bitmap_intersection_of_preds(), bitmap_intersection_of_succs(), bitmap_ior_and_compl(), bitmap_set_and(), bitmap_set_copy(), bitmap_set_subtract_values(), bitmap_union_of_preds(), bitmap_union_of_succs(), build_insn_chain(), calculate_bb_reg_pressure(), calculate_loop_reg_pressure(), can_move_insns_across(), color_pass(), combine_btr_defs(), compute_builtin_object_size(), compute_earliest(), compute_farthest(), compute_laterin(), compute_nearerout(), compute_out(), consider_split(), convert_local_omp_clauses(), convert_nonlocal_omp_clauses(), copy_static_var_set(), create_new_chain(), create_scc(), dce_process_block(), dead_debug_local_init(), df_chain_create_bb(), df_compact_blocks(), df_insn_rescan_all(), df_live_verify_solution_start(), df_live_verify_transfer_functions(), df_lr_confluence_0(), df_lr_init(), df_lr_local_compute(), df_lr_verify_solution_start(), df_lr_verify_transfer_functions(), df_md_confluence_0(), df_md_init(), df_note_bb_compute(), df_process_deferred_rescans(), df_rd_confluence_n(), df_rd_init_solution(), df_rd_transfer_function(), df_set_blocks(), df_update_entry_block_defs(), df_update_exit_block_uses(), df_word_lr_init(), dse_confluence_0(), dse_confluence_n(), dse_step1(), dse_step3(), dse_transfer_function(), eliminate_degenerate_phis(), find_moveable_pseudos(), find_nodes_on_paths(), hoist_code(), insert_updated_phi_nodes_for(), label_visit(), longest_simple_path(), mark_threaded_blocks(), migrate_btr_def(), move_btr_def(), move_exprs_to_boundary(), order_nodes_in_scc(), peephole2_optimize(), propagate_pseudo_copies(), prune_unused_phi_nodes(), regrename_analyze(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), restore_reg_pressure(), save_reg_pressure(), set_union_with_increment(), set_value_range(), should_hoist_expr_to_dom(), simulate_backwards_to_point(), single_def_use_enter_block(), solve_graph(), spill_for(), split_edges(), tm_memopt_compute_antin(), tm_memopt_compute_avin(), undo_optional_reloads(), update_ssa(), vrp_intersect_ranges_1(), and word_dce_process_block().

static void bitmap_elem_to_freelist ( bitmap  ,
bitmap_element  
)
static

Referenced by bitmap_element_free().

static void bitmap_elem_to_freelist ( )
inlinestatic
Add ELEM to the appropriate freelist.   

References bitmap_ggc_free, bitmap_obstack::elements, bitmap_obstack::obstack, and bitmap_element_def::prev.

static bitmap_element* bitmap_element_allocate ( bitmap  )
static
static bitmap_element* bitmap_element_allocate ( )
inlinestatic
static void bitmap_element_free ( )
inlinestatic
Free a bitmap element.  Since these are allocated off the
   bitmap_obstack, "free" actually means "put onto the freelist".   

References bitmap_elem_to_freelist(), bitmap_head_def::current, bitmap_head_def::first, bitmap_element_def::indx, bitmap_head_def::indx, bitmap_element_def::next, bitmap_element_def::prev, and register_overhead().

static void bitmap_element_link ( bitmap  ,
bitmap_element  
)
static

Referenced by bitmap_set_bit(), and bitmap_set_range().

static void bitmap_element_link ( )
inlinestatic
static int bitmap_element_zerop ( const bitmap_element )
static

Referenced by bitmap_clear_bit().

static int bitmap_element_zerop ( )
inlinestatic
Return nonzero if all bits in an element are zero.   

References bitmap_element_def::bits.

static void bitmap_elt_clear_from ( bitmap  ,
bitmap_element  
)
static
static bool bitmap_elt_copy ( bitmap  dst,
bitmap_element dst_elt,
bitmap_element dst_prev,
const bitmap_element src_elt,
bool  changed 
)
inlinestatic
Insert an element equal to SRC_ELT after DST_PREV, overwriting DST_ELT
   if non-NULL.  CHANGED is true if the destination bitmap had already been
   changed; the new value of CHANGED is returned.   

References bitmap_elt_insert_after(), bitmap_element_def::bits, changed, bitmap_element_def::indx, and memcpy().

Referenced by bitmap_and_compl(), bitmap_elt_ior(), bitmap_ior_and_into(), and bitmap_ior_into().

static bitmap_element* bitmap_elt_insert_after ( )
static
Insert a new uninitialized element into bitmap HEAD after element
   ELT.  If ELT is NULL, insert the element at the start.  Return the
   new element.   

References bitmap_element_allocate(), bitmap_head_def::current, bitmap_head_def::first, bitmap_element_def::indx, bitmap_head_def::indx, bitmap_element_def::next, and bitmap_element_def::prev.

static bool bitmap_elt_ior ( bitmap  dst,
bitmap_element dst_elt,
bitmap_element dst_prev,
const bitmap_element a_elt,
const bitmap_element b_elt,
bool  changed 
)
inlinestatic
Insert an element corresponding to A_ELT | B_ELT after DST_PREV,
   overwriting DST_ELT if non-NULL.  CHANGED is true if the destination bitmap
   had already been changed; the new value of CHANGED is returned.   

References bitmap_elt_copy(), bitmap_elt_insert_after(), bitmap_element_def::bits, changed, and bitmap_element_def::indx.

Referenced by bitmap_ior(), bitmap_ior_and_compl(), bitmap_ior_and_into(), and bitmap_ior_into().

static bitmap_element* bitmap_find_bit ( bitmap  ,
unsigned  int 
)
static
static bitmap_element* bitmap_find_bit ( )
inlinestatic
Find a bitmap element that would hold a bitmap's bit.
   Update the `current' field even if we can't find an element that
   would hold the bitmap's bit to make eventual allocation
   faster.   

References bitmap_head_def::current, bitmap_head_def::descriptor_id, bitmap_head_def::first, bitmap_element_def::indx, bitmap_head_def::indx, bitmap_element_def::next, and bitmap_element_def::prev.

bitmap bitmap_gc_alloc_stat ( )
Create a new GCd bitmap.   

References bitmap_initialize_stat(), map, and register_overhead().

hashval_t bitmap_hash ( )
bool bitmap_ior_and_compl_into ( )
A |= (FROM1 & ~FROM2).  Return true if A changes.   

References bitmap_and_compl(), bitmap_clear(), bitmap_ior_into(), and changed.

Referenced by df_lr_confluence_n(), df_md_confluence_n(), and propagate_pseudo_copies().

bool bitmap_ior_into ( )
A |= B.  Return true if A changes.   

References bitmap_elt_copy(), bitmap_elt_ior(), changed, bitmap_head_def::current, bitmap_head_def::first, bitmap_element_def::indx, bitmap_head_def::indx, and bitmap_element_def::next.

Referenced by add_dependence(), add_equivalence(), add_new_name_mapping(), add_partitioned_vars_to_ptset(), add_scope_conflicts(), add_scope_conflicts_1(), analyze_memory_references(), assign_by_spills(), bitmap_ior_and_compl_into(), bitmap_ior_and_into(), calculate_live_on_exit(), calculate_loop_reg_pressure(), compute_live_loop_exits(), compute_partial_antic_aux(), condense_visit(), df_live_confluence_n(), df_lr_confluence_n(), df_md_confluence_n(), df_rd_bb_local_compute(), df_rd_confluence_n(), df_rd_transfer_function(), df_scan_blocks(), df_scan_verify(), df_simulate_fixup_sets(), df_word_lr_confluence_n(), do_ds_constraint(), do_sd_constraint(), dse_step2_init(), dse_step3(), dse_step3_exit_block_scan(), ebb_compute_jump_reg_dependencies(), find_split_points(), get_live_on_other_edges(), get_tm_region_blocks(), insert_updated_phi_nodes_for(), ipa_tm_scan_irr_function(), label_visit(), ldist_gen(), live_merge_and_clear(), loe_visit_block(), lra_assign(), lra_coalesce(), lra_constraints(), lra_eliminate(), lra_inheritance(), mark_replaceable(), merge_chains(), merge_clusters(), merge_graph_nodes(), move_exprs_to_boundary(), process_replaceable(), propagate_modified_regnos(), propagate_pseudo_copies(), pt_solution_ior_into(), rdg_build_partitions(), record_important_candidates(), remove_edge_and_dominated_blocks(), scan_reads_nospill(), set_union_with_increment(), solve_graph(), spill_for(), spill_pseudos(), ssa_conflicts_merge(), store_motion_loop(), thread_prologue_and_epilogue_insns(), tm_memopt_compute_antic(), tm_memopt_compute_available(), unify_nodes(), union_static_var_sets(), update_live_info(), update_reg_eliminate(), and vrp_intersect_ranges_1().

unsigned bitmap_last_set_bit ( )
Return the bit number of the first set bit in the bitmap.  The
   bitmap must be non-empty.   

References bitmap_popcount(), bitmap_element_def::bits, bitmap_head_def::current, bitmap_head_def::first, bitmap_element_def::indx, and bitmap_element_def::next.

bitmap bitmap_obstack_alloc_stat ( )
Create a new bitmap on an obstack.  If BIT_OBSTACK is NULL, create
   it on the default bitmap obstack.   

References bitmap_default_obstack, bitmap_initialize_stat(), bitmap_head_def::first, map, and register_overhead().

void bitmap_obstack_free ( )
static unsigned long bitmap_popcount ( )
static
DEBUG_FUNCTION void bitmap_print ( FILE *  file,
const_bitmap  head,
const char *  prefix,
const char *  suffix 
)
Function to print out the contents of a bitmap.  Unlike debug_bitmap_file,
   it does not print anything but the bits.   

Referenced by debug_ter(), debug_var_infos_r(), determine_use_iv_costs(), df_set_blocks(), dse_step2_init(), dse_step4(), dse_step5_nospill(), iv_ca_dump(), print_cluster(), print_insn_chain(), and same_succ_print().

void bitmap_register ( )
bool bitmap_set_bit ( )
Set a single bit in a bitmap.  Return true if the bit changed.   

References bitmap_element_allocate(), bitmap_element_link(), bitmap_find_bit(), bitmap_element_def::bits, and bitmap_element_def::indx.

Referenced by add_bb_to_cluster(), add_branch_dependences(), add_candidate_1(), add_edge_to_ddg(), add_equivalence(), add_forwarder_blocks(), add_graph_edge(), add_implicit_graph_edge(), add_looparound_copies(), add_new_name_mapping(), add_pred_graph_edge(), add_regs_to_insn_regno_info(), add_stack_var_conflict(), add_static_var(), add_to_partition_kill_list(), add_to_repl_tbl(), add_to_value(), analyze_function(), apply_clusters(), assign_by_spills(), assign_spill_hard_regs(), assign_temporarily(), augment_live_range(), bitmap_insert_into_set_1(), bitmap_set_replace_value(), bitmap_set_subtract(), bitmap_value_insert_into_set(), break_superblocks(), btr_def_live_range(), build_access_from_expr(), build_accesses_from_assign(), build_insn_chain(), build_pred_graph(), build_scop_bbs_1(), build_store_vectors(), build_succ_graph(), cached_make_edge(), calc_dfs_tree(), calculate_bb_reg_pressure(), calculate_live_on_exit(), calculate_must_precede_follow(), cfg_blocks_add(), cgraph_create_virtual_clone(), change_loop(), check_dependency(), check_for_plus_in_loops_1(), check_forbidden_calls(), check_nodes_order(), check_sibcall_argument_overlap(), check_va_list_escapes(), cleanup_control_expr_graph(), cleanup_control_flow_bb(), cleanup_empty_eh_merge_phis(), coalesce_ssa_name(), coalesced_allocno_conflict_p(), code_motion_path_driver(), collect_object_sizes_for(), compare_names(), compute_always_reached(), compute_antic(), compute_antic_aux(), compute_builtin_object_size(), compute_cprop_data(), compute_defs_uses_and_gen(), compute_dom_prob_ps(), compute_dominance_frontiers_1(), compute_idf(), compute_live_loop_exits(), compute_local_properties(), compute_partial_antic_aux(), compute_trg_info(), condense_visit(), convert_callers_for_node(), convert_local_omp_clauses(), convert_nonlocal_omp_clauses(), copyprop_hardreg_forward(), create_block_for_bookkeeping(), create_ddg_all_sccs(), create_expression_by_pieces(), create_insn_allocnos(), create_loop_allocnos(), create_loop_fn(), create_new_chain(), create_outofssa_var_map(), create_specialized_node(), cse_find_path(), cselib_expand_value_rtx_1(), curr_insn_transform(), dead_debug_add(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_debug_promote_uses(), dead_debug_reset_uses(), dead_or_predicable(), decompose_multiword_subregs(), defer_or_phi_translate_block(), deps_ok_for_redirect_from_bb_to_bb(), determine_dominators_for_sons(), determine_use_iv_costs(), df_analyze(), df_chain_create_bb(), df_compact_blocks(), df_get_eh_block_artificial_uses(), df_get_entry_block_def_set(), df_get_exit_block_use_set(), df_get_regular_block_artificial_uses(), df_insn_delete(), df_insn_rescan(), df_live_bb_local_compute(), df_live_set_all_dirty(), df_live_verify_transfer_functions(), df_lr_bb_local_compute(), df_lr_local_compute(), df_lr_verify_transfer_functions(), df_mark_reg(), df_md_bb_local_compute_process_def(), df_md_simulate_artificial_defs_at_top(), df_md_simulate_one_insn(), df_note_bb_compute(), df_notes_rescan(), df_rd_bb_local_compute_process_def(), df_rd_local_compute(), df_rd_simulate_artificial_defs_at_top(), df_rd_simulate_one_insn(), df_set_bb_dirty(), df_set_blocks(), df_set_unused_notes_for_mw(), df_simulate_finalize_backwards(), df_simulate_find_defs(), df_simulate_find_noclobber_defs(), df_simulate_find_uses(), df_simulate_initialize_backwards(), df_simulate_initialize_forwards(), df_simulate_uses(), df_word_lr_alloc(), df_word_lr_mark_ref(), df_worklist_dataflow(), df_worklist_propagate_backward(), df_worklist_propagate_forward(), dfs_find_deadend(), discover_loop(), do_complex_constraint(), do_ds_constraint(), do_invalidate(), do_regular_insertion(), do_sd_constraint(), draw_cfg_nodes_no_loops(), dse_optimize_stmt(), dse_step1(), dse_step2_nospill(), dump_rdg_component(), duplicate_computed_gotos(), duplicate_loop_to_header_edge(), ebb_add_block(), eh_region_outermost(), elim_backward(), elim_forward(), eliminate(), eliminate_bb(), emit_bookkeeping_insn(), estimate_insn_tick(), estimate_loops(), estimate_loops_at_level(), execute_optimize_stdarg(), execute_update_addresses_taken(), expr_expected_value_1(), extend_rgns(), extract_new_fences_from(), fast_dce(), fill_always_executed_in(), find_assert_locations_1(), find_call_stack_args(), find_decomposable_shift_zext(), find_decomposable_subregs(), find_defs(), find_depends(), find_ebb_boundaries(), find_exits(), find_moveable_pseudos(), find_nodes_on_paths(), find_param_candidates(), find_pseudo_copy(), find_refs_for_sm(), find_same_succ_bb(), find_split_points(), find_uses_to_rename_use(), fix_bb_live_info(), fix_bb_placements(), fix_inter_tick(), fix_loop_structure(), fix_recovery_deps(), fixup_noreturn_call(), flow_dfs_compute_reverse_add_bb(), form_reserv_sets_list(), gather_mem_refs_stmt(), get_live_on_other_edges(), get_loop_body_in_bfs_order(), get_loop_body_in_if_conv_order(), get_loop_hot_path(), get_loops_exits(), get_maxval_strlen(), get_or_alloc_constant_value_id(), get_tm_region_blocks(), gimple_ior_addresses_taken_1(), gimple_merge_blocks(), gimple_redirect_edge_and_branch(), gimplify_omp_for(), haifa_find_rgns(), hoist_code(), improve_inheritance(), inherit_in_ebb(), inherit_reload_reg(), init_live_reload_and_inheritance_pseudos(), init_live_subregs(), init_rename_info(), init_seqno_1(), initialize_uninitialized_regs(), initiate_excl_sets(), input_node_opt_summary(), insert_into_preds_of_block(), insert_updated_phi_nodes_for(), inverted_post_order_compute(), ipa_reference_read_optimization_summary(), ipa_reference_write_optimization_summary(), ipa_tm_propagate_irr(), ipa_tm_scan_irr_blocks(), ipa_tm_transform_calls(), ira_create_allocno(), ira_reassign_conflict_allocnos(), ira_reassign_pseudos(), ira_sort_regnos_for_alter_reg(), iterate_fix_dominators(), iv_analysis_loop_init(), iv_ca_set_cp(), label_visit(), ldist_gen(), link_btr_uses(), live_track_add_partition(), loe_visit_block(), longest_simple_path(), lra_push_insn_1(), lra_undo_inheritance(), lto_output(), make_dependent_on_partition(), make_edges(), make_live_on_entry(), mark_basic_block_deleted(), mark_bb_seen(), mark_block_for_update(), mark_conflict(), mark_control_dependent_edges_necessary(), mark_def_sites(), mark_dfs_back_edges(), mark_effect(), mark_elimination(), mark_for_renaming(), mark_insn(), mark_last_stmt_necessary(), mark_nodes_having_upstream_mem_writes(), mark_nonssa_use(), mark_operand_necessary(), mark_phi_for_rewrite(), mark_reachable_handlers(), mark_ref_regs(), mark_ref_stored(), mark_regno_birth_or_death(), mark_regno_live(), mark_replaceable(), mark_stmt_necessary(), mark_threaded_blocks(), maybe_add_sra_candidate(), maybe_lower_iteration_bound(), maybe_optimize_var(), maybe_skip_until(), merge_pseudos(), multiplier_allowed_in_address_p(), nearest_common_dominator_of_uses(), note_eh_region_may_contain_throw(), optimize_mode_switching(), optimize_stmt(), order_nodes_in_scc(), partition_view_bitmap(), partition_view_init(), perform_var_substitution(), post_order_compute(), pre_and_rev_post_order_compute(), pre_edge_insert(), predcom_tmp_var(), predict_paths_for_bb(), process_defs(), process_regs_for_copy(), process_replaceable(), propagate_rhs_into_lhs(), prune_expressions(), prune_insertions_deletions(), prune_uninit_phi_opnds_in_unrealizable_paths(), prune_unused_phi_nodes(), pt_solution_set_var(), rdg_build_components(), rdg_flag_loop_exits(), rdg_flag_vertex(), rdg_flag_vertex_and_dependent(), reachable_at_most_once(), record_dep_loop(), record_important_candidates(), record_invariant(), record_last_mem_set_info(), record_modified(), record_set(), record_store(), record_subregs_of_mode(), ref_indep_loop_p_2(), register_new_assert_for(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), release_ssa_name_after_update_ssa(), remove_dead_inserted_code(), remove_edge_and_dominated_blocks(), remove_forwarder_block(), remove_path(), remove_reachable_equiv_notes(), remove_scratches(), remove_some_program_points_and_update_live_ranges(), remove_ssa_form(), remove_unnecessary_allocnos(), remove_unreachable_handlers_no_lp(), remove_unused_ivs(), replace_uses_by(), rgn_add_block(), scan_function(), scan_reads_nospill(), scan_reads_spill(), scan_stores_nospill(), scan_stores_spill(), scc_visit(), scev_const_prop(), schedule_reg_move(), schedule_reg_moves(), sel_sched_region_1(), sese_build_liveouts_use(), sese_record_loop(), set_all_positions_unneeded(), set_control_dependence_map_bit(), set_def_block(), set_dependency_caches(), set_is_used(), set_iv(), set_livein_block(), set_position_unneeded(), set_reg_known_equiv_p(), set_uids_in_ptset(), set_union_with_increment(), set_unit_reserv(), set_usage_bits(), set_var_live_on_entry(), setup_live_pseudos_and_spill_after_risky_transforms(), setup_ref_regs(), setup_try_hard_regno_pseudos(), should_hoist_expr_to_dom(), simplify_gimple_switch_label_vec(), simplify_operand_subreg(), simulate_block(), solution_set_expand(), solve_graph(), spill_for(), spill_pseudos(), split_all_insns(), split_function(), split_reg(), ssa_conflicts_add_one(), ssa_conflicts_merge(), thread_across_edge(), thread_around_empty_block(), thread_prologue_and_epilogue_insns(), tm_memopt_accumulate_memops(), tm_memopt_transform_blocks(), tm_region_init(), tm_region_init_1(), topo_visit(), track_scheduled_insns_and_blocks(), tree_ssa_dominator_optimize(), try_scheduling_node_in_cycle(), undistribute_ops_list(), unify_nodes(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), update_alias_info_with_stack_vars(), update_bad_spill_attribute(), update_bitmap_cache(), update_caller_keys(), update_dist_to_successors(), update_dominators_in_loop(), update_ebb_live_info(), update_equiv_regs(), update_live_1(), update_live_info(), update_lives(), update_ssa(), use_pointer_for_field(), va_list_ptr_read(), value_dies_in_block_x(), vect_supported_load_permutation_p(), verify_loop_structure(), verify_non_ssa_vars(), verify_ssa(), visit_bb(), visit_conflict(), visit_op(), vt_find_locations(), and walk_aliased_vdefs_1().

bool bitmap_single_bit_set_p ( )
Return true if the bitmap has a single bit set.  Otherwise return
   false.   

References bitmap_empty_p(), bitmap_popcount(), bitmap_element_def::bits, count, bitmap_head_def::first, and bitmap_element_def::next.

Referenced by pt_solution_singleton_p(), and same_succ_flush_bb().

DEBUG_FUNCTION void debug ( )

References dump_bitmap().

DEBUG_FUNCTION void debug_bitmap ( )
Function to be called from the debugger to print the contents
   of a bitmap.   

References debug_bitmap_file().

DEBUG_FUNCTION void debug_bitmap_file ( )

Variable Documentation

int bitmap_default_obstack_depth
static
hash_table<bitmap_desc_hasher> bitmap_desc_hash
static
Hashtable mapping bitmap names to descriptors.   
vec<bitmap_descriptor> bitmap_descriptors
static
Vector mapping descriptor ids to descriptors.   
bitmap_element bitmap_zero_bits
Global data  
int next_bitmap_desc_id = 0
static
Next available unique id number for bitmap desciptors.   

Referenced by get_bitmap_descriptor().

const unsigned char popcount_table[]
static
Initial value:
{
0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,4,1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,
1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
1,2,2,3,2,3,3,4,2,3,3,4,3,4,4,5,2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,
2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
2,3,3,4,3,4,4,5,3,4,4,5,4,5,5,6,3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,
3,4,4,5,4,5,5,6,4,5,5,6,5,6,6,7,4,5,5,6,5,6,6,7,5,6,6,7,6,7,7,8,
}
Table of number of set bits in a character, indexed by value of char.