|
GCC Middle and Back End API Reference
|


Go to the source code of this file.
Data Structures | |
| class | bitmap_usage |
| struct | bitmap_obstack |
| struct | bitmap_element |
| class | bitmap_head |
| struct | bitmap_iterator |
| class | auto_bitmap |
| class | base_bitmap_view< T, Traits > |
| class | bitmap_view< T, Traits, true > |
Macros | |
| #define | BITMAP_WORD_BITS (CHAR_BIT * SIZEOF_LONG * 1u) |
| #define | BITMAP_ELEMENT_WORDS ((128 + BITMAP_WORD_BITS - 1) / BITMAP_WORD_BITS) |
| #define | BITMAP_ELEMENT_ALL_BITS (BITMAP_ELEMENT_WORDS * BITMAP_WORD_BITS) |
| #define | bitmap_compl_and(DST, A, B) |
| #define | BITMAP_ALLOC bitmap_alloc |
| #define | BITMAP_GGC_ALLOC bitmap_gc_alloc |
| #define | BITMAP_FREE(BITMAP) |
| #define | EXECUTE_IF_SET_IN_BITMAP(BITMAP, MIN, BITNUM, ITER) |
| #define | EXECUTE_IF_AND_IN_BITMAP(BITMAP1, BITMAP2, MIN, BITNUM, ITER) |
| #define | EXECUTE_IF_AND_COMPL_IN_BITMAP(BITMAP1, BITMAP2, MIN, BITNUM, ITER) |
Typedefs | |
| typedef unsigned long | BITMAP_WORD |
Variables | |
| bitmap_element | bitmap_zero_bits |
| bitmap_obstack | bitmap_default_obstack |
| #define BITMAP_ALLOC bitmap_alloc |
Referenced by add_candidate_1(), add_dependence(), equiv_oracle::add_equiv_to_block(), add_graph_edge(), add_implicit_graph_edge(), equiv_oracle::add_partial_equiv(), add_pred_graph_edge(), infer_range_manager::add_range(), add_scope_conflicts(), add_scope_conflicts_1(), add_stack_var_conflict(), add_to_partition_kill_list(), add_to_repl_tbl(), add_to_value(), alloc_gcse_mem(), alloc_mem(), analyze_all_variable_accesses(), loop_distribution::bb_top_order_init(), strlen_pass::before_dom_children(), build_pred_graph(), calculate_bb_reg_pressure(), gori_map::calculate_gori(), can_move_insns_across(), canonicalize_induction_variables(), symtab_node::check_ifunc_callee_symtab_nodes(), cleanup_empty_eh_merge_phis(), cleanup_tree_cfg_noloop(), coalesce_bitint(), combine_stack_adjustments(), combine_stack_adjustments_for_block(), compute_builtin_object_size(), compute_dependence_clique(), compute_idf(), compute_live_vars(), consider_split(), copy_static_var_set(), crc_optimization::crc_optimization(), create_nesting_tree(), dom_oracle::create_relation_in_bb(), dce_process_block(), dead_debug_add(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_debug_local_init(), dead_debug_promote_uses(), dead_debug_reset_uses(), decompose_multiword_subregs(), deps_ok_for_redirect_from_bb_to_bb(), determine_dominators_for_sons(), determine_group_iv_cost_address(), determine_group_iv_cost_cond(), determine_group_iv_cost_generic(), determine_group_iv_costs(), df_analyze(), df_analyze_loop(), df_chain_add_problem(), df_live_add_problem(), df_lr_add_problem(), df_mir_add_problem(), df_rd_transfer_function(), df_scan_alloc(), df_set_blocks(), df_word_lr_add_problem(), df_worklist_dataflow_doublequeue(), discover_loops(), ipa_icf::sem_item_optimizer::do_congruence_step(), ipa_icf::sem_item_optimizer::do_congruence_step_for_index(), do_rpo_vn_1(), do_store_motion(), doloop_optimize(), dom_oracle::dom_oracle(), dse_confluence_0(), dse_confluence_n(), dse_step0(), dse_step1(), dse_step3(), dse_step3_scan(), dse_transfer_function(), duplicate_loop_body_to_header_edge(), eliminate_dom_walker::eliminate_dom_walker(), equiv_oracle::equiv_oracle(), equiv_oracle::equiv_set(), path_oracle::equiv_set(), execute_split_functions(), ext_dce_init(), ext_dce_process_bb(), fast_dce(), find_always_executed_bbs(), find_assumption_locals_r(), find_call_stack_args(), find_inv_vars_cb(), find_invariant_insn(), find_pseudo_copy(), find_split_points(), find_tail_calls(), find_uses_to_rename_use(), gate_tm_init(), get_def_blocks_for(), get_group_info(), get_loop_body_in_if_conv_order(), get_loop_hot_path(), get_nonnull_args(), get_parm_default_def_partitions(), get_tm_region_blocks(), get_undefined_value_partitions(), gimple_lower_bitint(), gimple_ranger::gimple_ranger(), gimplify_omp_for(), gimplify_size_expressions(), gori_map::gori_map(), hoist_code(), infer_range_manager::infer_range_manager(), init_function_info(), init_object_sizes(), init_pre(), init_var_map(), init_worklist(), intra_create_variable_infos(), ipa_init(), ipa_reference_read_optimization_summary(), ipa_sra_summarize_function(), ipa_tm_propagate_irr(), ipa_tm_scan_calls_transaction(), ipa_tm_scan_irr_blocks(), ipa_tm_scan_irr_function(), ipa_tm_transform_calls(), ira_allocate_bitmap(), ira_reassign_pseudos(), iterate_fix_dominators(), iv_ca_new(), path_oracle::killing_def(), label_visit(), lang_dependent_init(), live_vars_at_stmt(), lto_output(), make_dependent_on_partition(), mark_def_dom_walker::mark_def_dom_walker(), mark_for_renaming(), mark_replaceable(), maybe_lower_iteration_bound(), maybe_skip_until(), merge_graph_nodes(), move_sese_region_to_fn(), new_cluster(), new_temp_expr_table(), pointer_analysis::new_var_info(), oacc_entry_exit_ok(), optimize_va_list_gpr_fpr_size(), param_change_prob(), partition_alloc(), partition_view_bitmap(), partition_view_init(), path_oracle::path_oracle(), peephole2_optimize(), perform_tree_ssa_dce(), perform_var_substitution(), phi_analyzer::phi_analyzer(), prescan_insns_for_dce(), phi_analyzer::process_phi(), process_replaceable(), propagate(), uninit_analysis::prune_phi_opnds(), prune_unused_phi_nodes(), ranger_cache::ranger_cache(), equiv_oracle::record(), record_group(), dom_oracle::record_relation_block(), record_store(), range_def_chain::register_dependency(), equiv_oracle::register_equiv(), equiv_oracle::register_equiv(), path_oracle::register_equiv(), equiv_oracle::register_equiv_block(), equiv_oracle::register_initial_def(), regstat_compute_calls_crossed(), regstat_compute_ri(), release_ssa_name_after_update_ssa(), remove_unreachable::remove_unreachable(), remove_unused_locals(), repair_loop_structures(), replace_read(), rewrite_into_loop_closed_ssa_1(), same_succ_alloc(), sbr_lazy_vector::sbr_lazy_vector(), scan_sharing_clauses(), scc_copy_prop::scc_copy_prop(), scc_visit(), sese_build_liveouts(), range_def_chain::set_import(), set_ref_loaded_in_loop(), set_ref_stored_in_loop(), ipa_icf::sem_item::setup(), simplify_gimple_switch_label_vec(), solution_set_expand(), solve_graph(), split_function(), sra_initialize(), ssa_conflicts_add_one(), ssa_lazy_cache::ssa_lazy_cache(), ssa_prop_init(), start_recording_case_labels(), store_motion_loop(), substitute_and_fold_dom_walker::substitute_and_fold_dom_walker(), tail_merge_optimize(), fwd_jt_path_registry::thread_block_1(), thread_jump(), tm_memopt_init_sets(), tm_region_init(), tm_region_init_0(), tree_if_conversion(), tree_loop_interchange::tree_loop_interchange(), tree_lower_complex(), tree_ssa_iv_optimize_init(), tree_unroll_loops_completely(), tree_unroll_loops_completely_1(), tree_unswitch_single_loop(), try_head_merge_bb(), vars_ssa_cache::unshare(), update_alias_info_with_stack_vars(), update_list::update_list(), update_ssa(), use_pointer_for_field(), value_dies_in_block_x(), vars_ssa_cache::vars_ssa_cache(), verify_non_ssa_vars(), verify_sese(), ssa_name_limit_t::visit_phi(), vt_initialize(), walk_aliased_vdefs_1(), and word_dce_process_block().
| #define bitmap_compl_and | ( | DST, | |
| A, | |||
| B ) |
| #define BITMAP_ELEMENT_ALL_BITS (BITMAP_ELEMENT_WORDS * BITMAP_WORD_BITS) |
Number of bits in each actual element of a bitmap.
Referenced by base_bitmap_view< T, Traits >::base_bitmap_view(), bitmap_bit_p(), bitmap_clear_bit(), bitmap_clear_range(), bitmap_first_set_bit_worker(), bitmap_get_aligned_chunk(), bitmap_last_set_bit_worker(), bitmap_print(), bitmap_set_aligned_chunk(), bitmap_set_bit(), bitmap_set_range(), bmp_iter_and(), bmp_iter_and_compl(), bmp_iter_and_compl_init(), bmp_iter_and_init(), bmp_iter_set(), bmp_iter_set_init(), and debug_bitmap_elt_file().
| #define BITMAP_ELEMENT_WORDS ((128 + BITMAP_WORD_BITS - 1) / BITMAP_WORD_BITS) |
Number of words to use for each element in the linked list.
Referenced by base_bitmap_view< T, Traits >::base_bitmap_view(), bitmap_and(), bitmap_and_compl(), bitmap_and_compl_into(), bitmap_and_into(), bitmap_bit_p(), bitmap_clear_bit(), bitmap_clear_range(), bitmap_compl_and_into(), bitmap_count_bits_in_word(), bitmap_count_unique_bits(), bitmap_element_zerop(), bitmap_elt_copy(), bitmap_elt_ior(), bitmap_equal_p(), bitmap_first_set_bit_worker(), bitmap_get_aligned_chunk(), bitmap_hash(), bitmap_intersect_compl_p(), bitmap_intersect_p(), bitmap_ior_and_compl(), bitmap_ior_and_compl_into(), bitmap_ior_and_into(), bitmap_last_set_bit_worker(), bitmap_print(), bitmap_set_aligned_chunk(), bitmap_set_bit(), bitmap_set_range(), bitmap_single_bit_set_p(), bitmap_xor(), bitmap_xor_into(), bmp_iter_and(), bmp_iter_and_compl(), bmp_iter_and_compl_init(), bmp_iter_and_init(), bmp_iter_set(), bmp_iter_set_init(), and debug_bitmap_elt_file().
| #define BITMAP_FREE | ( | BITMAP | ) |
Do any cleanup needed on a bitmap when it is no longer used.
Referenced by add_scope_conflicts(), analyze_all_variable_accesses(), loop_distribution::bb_top_order_init(), strlen_pass::before_dom_children(), bitmap_ior_into_and_free(), calculate_bb_reg_pressure(), can_move_insns_across(), canonicalize_induction_variables(), symtab_node::check_ifunc_callee_symtab_nodes(), cleanup_empty_eh_merge_phis(), cleanup_tree_cfg_noloop(), clear_edges_for_node(), coalesce_bitint(), combine_stack_adjustments(), combine_stack_adjustments_for_block(), compute_builtin_object_size(), compute_dependence_clique(), compute_live_vars(), consider_split(), dce_process_block(), dead_debug_global_finish(), dead_debug_local_finish(), dead_debug_reset_uses(), decompose_multiword_subregs(), delete_cluster(), delete_update_ssa(), delete_var_map(), delete_worklist(), deps_ok_for_redirect_from_bb_to_bb(), determine_dominators_for_sons(), determine_group_iv_cost_cond(), determine_group_iv_costs(), determine_known_aggregate_parts(), df_analyze(), df_analyze_1(), df_analyze_loop(), df_chain_free(), df_chain_fully_remove_problem(), df_finish_pass(), df_live_free(), df_lr_free(), df_rd_transfer_function(), df_scan_free(), df_scan_free_internal(), df_set_blocks(), df_word_lr_free(), df_worklist_dataflow_doublequeue(), ipa_icf::sem_item_optimizer::do_congruence_step(), do_rpo_vn_1(), do_store_motion(), doloop_optimize(), dse_step1(), dse_step3(), dse_step3_scan(), dse_step7(), duplicate_loop_body_to_header_edge(), end_recording_case_labels(), execute_lower_omp(), execute_split_functions(), ext_dce_finish(), ext_dce_process_bb(), fast_dce(), finalize(), find_call_stack_args(), find_invariant_insn(), find_split_points(), find_tail_calls(), fini_object_sizes(), finish_out_of_ssa(), finished_with_expr(), free_gcse_mem(), free_inv_motion_data(), free_loop_data(), free_loops(), free_mem(), free_sese_info(), free_store_info(), free_temp_expr_table(), get_loop_body_in_if_conv_order(), get_loop_hot_path(), get_tm_region_blocks(), gimple_infer_range::gimple_infer_range(), gimple_lower_bitint(), gimplify_omp_for(), gimplify_size_expressions(), hoist_code(), insert_phi_nodes(), insert_updated_phi_nodes_for(), intra_create_variable_infos(), ipa_sra_summarize_function(), ipa_tm_propagate_irr(), ipa_tm_scan_irr_blocks(), ipa_tm_scan_irr_function(), ipa_tm_transform_calls(), ira_reassign_pseudos(), iterate_fix_dominators(), iv_ca_free(), label_visit(), lower_function_body(), lto_output(), maybe_lower_iteration_bound(), move_sese_region_to_fn(), oacc_entry_exit_ok(), optimize_va_list_gpr_fpr_size(), uninit_analysis::overlap(), param_change_prob(), partition_free(), partition_view_fini(), peephole2_optimize(), perform_tree_ssa_dce(), perform_var_substitution(), prescan_insns_for_dce(), process_replaceable(), prune_unused_phi_nodes(), regstat_compute_calls_crossed(), regstat_compute_ri(), regstat_free_ri(), ipa_icf::sem_item_optimizer::release_split_map(), ipa_ref_opt_summary_t::remove(), same_succ::remove(), remove_from_partition_kill_list(), remove_preds_and_fake_succs(), remove_unused_locals(), repair_loop_structures(), replace_read(), set_group_iv_cost(), simplify_gimple_switch_label_vec(), solve_graph(), split_function(), sra_deinitialize(), ssa_conflicts_merge(), ssa_prop_fini(), store_motion_loop(), tail_merge_optimize(), fwd_jt_path_registry::thread_block_1(), thread_jump(), tm_region_init(), translate_vuse_through_block(), tree_if_conversion(), tree_lower_complex(), tree_optimize_tail_calls_1(), tree_ssa_iv_optimize_finalize(), tree_unroll_loops_completely(), tree_unroll_loops_completely_1(), tree_unswitch_single_loop(), unify_nodes(), union_stack_vars(), union_static_var_sets(), update_alias_info_with_stack_vars(), validate_arglist(), verify_non_ssa_vars(), verify_sese(), vt_finalize(), walk_aliased_vdefs(), walk_non_aliased_vuses(), word_dce_process_block(), crc_optimization::~crc_optimization(), eliminate_dom_walker::~eliminate_dom_walker(), gimple_ranger::~gimple_ranger(), mark_def_dom_walker::~mark_def_dom_walker(), ranger_cache::~ranger_cache(), remove_unreachable::~remove_unreachable(), scc_copy_prop::~scc_copy_prop(), ipa_icf::sem_item::~sem_item(), ssa_lazy_cache::~ssa_lazy_cache(), ssa_name_limit_t::~ssa_name_limit_t(), substitute_and_fold_dom_walker::~substitute_and_fold_dom_walker(), and tree_loop_interchange::~tree_loop_interchange().
| #define BITMAP_GGC_ALLOC bitmap_gc_alloc |
| #define BITMAP_WORD_BITS (CHAR_BIT * SIZEOF_LONG * 1u) |
BITMAP_WORD_BITS needs to be unsigned, but cannot contain casts as it is used in preprocessor directives -- hence the 1u.
Referenced by base_bitmap_view< T, Traits >::base_bitmap_view(), bitmap_bit_p(), bitmap_clear_bit(), bitmap_clear_range(), bitmap_first_set_bit_worker(), bitmap_get_aligned_chunk(), bitmap_last_set_bit_worker(), bitmap_popcount(), bitmap_print(), bitmap_set_aligned_chunk(), bitmap_set_bit(), bitmap_set_range(), bmp_iter_and(), bmp_iter_and_compl(), bmp_iter_and_compl_init(), bmp_iter_and_init(), bmp_iter_set(), bmp_iter_set_init(), and debug_bitmap_elt_file().
| #define EXECUTE_IF_AND_COMPL_IN_BITMAP | ( | BITMAP1, | |
| BITMAP2, | |||
| MIN, | |||
| BITNUM, | |||
| ITER ) |
Loop over all the bits set in BITMAP1 & ~BITMAP2, starting with MIN and setting BITNUM to the bit number. ITER is a bitmap iterator. BITNUM should be treated as a read-only variable as it contains loop state.
Referenced by compute_transp(), find_refs_for_sm(), sese_reset_debug_liveouts(), verify_ssaname_freelists(), and write_node_summary_p().
| #define EXECUTE_IF_AND_IN_BITMAP | ( | BITMAP1, | |
| BITMAP2, | |||
| MIN, | |||
| BITNUM, | |||
| ITER ) |
Loop over all the bits set in BITMAP1 & BITMAP2, starting with MIN and setting BITNUM to the bit number. ITER is a bitmap iterator. BITNUM should be treated as a read-only variable as it contains loop state.
Referenced by bitmap_find_leader(), path_range_query::compute_ranges_in_block(), iv_ca_narrow(), pre_expr_DFS(), loop_distribution::share_memory_accesses(), stream_out_bitmap(), and update_live_info().
| #define EXECUTE_IF_SET_IN_BITMAP | ( | BITMAP, | |
| MIN, | |||
| BITNUM, | |||
| ITER ) |
If you are modifying a bitmap you are currently iterating over you
have to ensure to
- never remove the current bit;
- if you set or clear a bit before the current bit this operation
will not affect the set of bits you are visiting during the iteration;
- if you set or clear a bit after the current bit it is unspecified
whether that affects the set of bits you are visiting during the
iteration.
If you want to remove the current bit you can delay this to the next
iteration (and after the iteration in case the last iteration is
affected). Loop over all bits set in BITMAP, starting with MIN and setting BITNUM to the bit number. ITER is a bitmap iterator. BITNUM should be treated as a read-only variable as it contains loop state.
See sbitmap.h for the other definition of EXECUTE_IF_SET_IN_BITMAP.
Referenced by add_dependence(), add_exit_phis(), add_exit_phis_var(), add_iv_candidate_for_bivs(), equiv_oracle::add_partial_equiv(), add_partitioned_vars_to_ptset(), add_range_and_copies_from_move_list(), add_scope_conflicts_1(), add_scope_conflicts_2(), analyze_all_variable_accesses(), apply_clusters(), assign_by_spills(), assume_query::assume_query(), bitmap_find_leader(), bitmap_first_set_bit(), bitmap_print(), bitmap_value_replace_in_set(), build_insn_chain(), calculate_bb_reg_pressure(), calculate_gen_cands(), calculate_loop_reg_pressure(), can_move_insns_across(), cand_trans_fun(), rt_bb_visited::check(), loop_distribution::classify_partition(), dom_oracle::clear(), equiv_oracle::clear(), clear_modify_mem_tables(), coalesce_allocnos(), coalesce_bitint(), color_allocnos(), color_pass(), compute_builtin_object_size(), compute_dependence_clique(), path_range_query::compute_exit_dependencies(), compute_idf(), compute_live_loop_exits(), compute_optimized_partition_bases(), path_range_query::compute_ranges(), path_range_query::compute_ranges_in_block(), compute_transp(), control_parents_preserved_p(), create_edge_for_control_dependence(), create_new_ivs(), dead_debug_local_finish(), dead_debug_reset_uses(), dead_or_predicable(), debug_ter(), decompose_multiword_subregs(), delete_update_ssa(), determine_group_iv_costs(), determine_set_costs(), df_bb_refs_collect(), df_chain_create_bb_process_use(), df_chain_finalize(), df_chain_remove_problem(), df_dump_region(), df_entry_block_defs_collect(), df_exit_block_uses_collect(), df_insn_rescan_all(), df_live_alloc(), df_live_finalize(), df_live_init(), df_live_local_compute(), df_live_reset(), df_lr_alloc(), df_lr_init(), df_lr_local_compute(), df_lr_reset(), df_md_alloc(), df_md_init(), df_md_local_compute(), df_md_reset(), df_mir_alloc(), df_mir_local_compute(), df_mir_reset(), df_note_compute(), df_print_regset(), df_process_deferred_rescans(), df_rd_alloc(), df_rd_confluence_n(), df_rd_dump_defs_set(), df_rd_init_solution(), df_rd_local_compute(), df_rd_transfer_function(), df_reorganize_refs_by_insn(), df_reorganize_refs_by_reg_by_insn(), df_set_blocks(), df_word_lr_alloc(), df_word_lr_init(), df_word_lr_local_compute(), df_word_lr_reset(), df_worklist_dataflow(), ipa_icf::sem_item_optimizer::do_congruence_step(), do_ds_constraint(), do_remat(), do_sd_constraint(), dominated_by_forbidden(), dse_step2(), dse_step3(), back_threader::dump(), equiv_chain::dump(), path_range_query::dump(), phi_group::dump(), range_def_chain::dump(), vars_ssa_cache::dump(), dump_decl_set(), dump_live_info(), dump_names_replaced_by(), dump_pred_graph(), pointer_analysis::dump_solution_for_var(), dump_static_vars_set_to_file(), dump_tm_memopt_set(), dump_update_ssa(), pointer_analysis::dump_varinfo(), duplicate_loop_body_to_header_edge(), eliminate_indirect_cycles(), end_recording_case_labels(), ext_dce_init(), find_all_spills_for(), find_clusters_1(), find_hard_regno_for_1(), find_identical_invariants(), find_induction_variables(), find_moveable_pseudos(), find_or_generate_expression(), back_threader::find_paths_to_names(), find_reload_regno_insns(), find_same_succ_bb(), find_single_drs(), find_uses_to_rename(), find_what_var_points_to(), finished_with_expr(), fix_bb_live_info(), form_allocno_hard_regs_nodes_forest(), free_loop_data(), free_mem(), generate_summary(), get_inv_cost(), get_representative_for(), gimple_lower_bitint(), gimple_purge_all_dead_abnormal_call_edges(), gimple_purge_all_dead_eh_edges(), gimplify_size_expressions(), graphds_dfs(), graphds_scc(), hoist_code(), hoist_memory_references(), improve_allocation(), improve_inheritance(), inherit_in_ebb(), init_allocno_threads(), init_live_reload_and_inheritance_pseudos(), initialize_constant_pool_replacements(), insert_phi_nodes_for(), insert_updated_phi_nodes_for(), ipa_pta_execute(), ipa_tm_scan_irr_function(), ira_reuse_stack_slot(), iv_ca_add_group(), iv_ca_narrow(), iv_ca_prune(), iv_ca_replace(), iv_ca_set_add_invs(), iv_ca_set_remove_invs(), live_track_init(), live_track_process_def(), lra(), lra_assign(), lra_constraints(), lra_dump_bitmap_with_title(), lra_eliminate(), lra_split_hard_reg_for(), lra_undo_inheritance(), mark_control_dependent_edges_necessary(), mark_def_interesting(), fwd_jt_path_registry::mark_threaded_blocks(), ssa_lazy_cache::merge(), merge_overlapping_regs(), move_invariant_reg(), move_sese_region_to_fn(), multi_block_pseudo_p(), multiple_insn_refs_p(), nearest_common_dominator_for_set(), nearest_common_dominator_of_uses(), number_of_rw_in_partition(), oacc_do_neutering(), optimize_inline_calls(), param_change_prob(), partition_view_bitmap(), partition_view_fini(), perform_var_substitution(), loop_distribution::pg_add_dependence_edges(), pp_points_to_solution(), pre_expr_DFS(), prepare_names_to_update(), print_loop_title(), process_bb_lives(), process_bb_node_lives(), phi_analyzer::process_phi(), propagate_freq(), propagate_pseudo_copies(), prune_insertions_deletions(), prune_unused_phi_nodes(), record_biv_for_address_use(), ref_indep_loop_p(), reg_has_incdec_p(), reg_set_to_hard_reg_set(), equiv_oracle::register_equiv_block(), register_new_update_set(), regrename_analyze(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), regstat_compute_ri(), release_defs_bitset(), remove_unreachable::remove_and_update_globals(), remove_edge_and_dominated_blocks(), remove_some_program_points_and_update_live_ranges(), remove_some_program_points_and_update_live_ranges(), remove_unused_ivs(), rewrite_blocks(), same_phi_alternatives(), same_succ_flush_bbs(), same_succ_hash(), scc_visit(), sese_insert_phis_for_liveouts(), set_cluster(), set_move_mark(), set_uids_in_ptset(), set_union_with_increment(), setup_live_pseudos_and_spill_after_risky_transforms(), setup_profitable_hard_regs(), setup_try_hard_regno_pseudos(), loop_distribution::share_memory_accesses(), should_hoist_expr_to_dom(), solution_set_expand(), sorted_array_from_bitmap_set(), spill_for(), spill_hard_reg_in_range(), spill_soft_conflicts(), pcom_worker::split_data_refs_to_components(), ssa_conflicts_merge(), tail_merge_optimize(), tm_memopt_compute_antic(), topo_visit(), tree_unroll_loops_completely(), try_add_cand_for(), try_shrink_wrapping_separate(), undistribute_ops_list(), undo_optional_reloads(), union_stack_vars(), update_debug_stmts(), update_ebb_live_info(), assume_query::update_parms(), update_ssa(), loop_distribution::update_type_for_merge(), update_worklist(), relation_oracle::valid_equivs(), vect_lower_load_permutations(), verify_all_sra_access_forests(), visit_conflict(), and vn_valnum_from_value_id().
| typedef unsigned long BITMAP_WORD |
Fundamental storage type for bitmap.
|
extern |
Allocate and free bitmaps from obstack, malloc and gc'd memory.
References bitmap_alloc(), and CXX_MEM_STAT_INFO.
|
extern |
Boolean operations on bitmaps. The _into variants are two operand versions that modify the first source operand. The other variants are three operand versions that to not destroy the source bitmaps. The operations supported are &, & ~, |, ^.
DST = A & B.
References a, b, bitmap_and(), bitmap_copy(), BITMAP_ELEMENT_WORDS, bitmap_elt_clear_from(), bitmap_list_insert_element_after(), bitmap_element::bits, gcc_assert, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, and r.
Referenced by add_ranges_and_copies(), bitmap_and(), bitmap_and(), bitmap_set_range(), compute_laterin(), compute_nearerout(), copy_fixed_regs(), df_live_init(), df_live_transfer_function(), df_md_transfer_function(), do_remat(), emit_common_heads_for_components(), emit_common_tails_for_components(), insert_prologue_epilogue_for_components(), move_insn_for_shrink_wrap(), spread_components(), and update_ebb_live_info().
|
extern |
DST = A & ~B
References a, b, bitmap_and_compl(), bitmap_clear(), BITMAP_ELEMENT_WORDS, bitmap_elt_clear_from(), bitmap_elt_copy(), bitmap_empty_p(), bitmap_list_insert_element_after(), bitmap_list_unlink_element(), bitmap_element::bits, gcc_assert, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, and r.
Referenced by bitmap_and_compl(), bitmap_and_compl(), bitmap_ior_and_compl(), bitmap_ior_and_compl_into(), bitmap_set_range(), bitmap_set_subtract_expressions(), change_loop(), compute_earliest(), compute_farthest(), compute_insert_delete(), compute_rev_insert_delete(), df_rd_confluence_n(), df_rd_transfer_function(), df_set_blocks(), disqualify_problematic_components(), do_hoist_insertion(), emit_common_heads_for_components(), emit_common_tails_for_components(), find_split_points(), hoist_memory_references(), insert_prologue_epilogue_for_components(), live_trans_fun(), propagate_pseudo_copies(), prune_expressions(), prune_unused_phi_nodes(), sm_seq_valid_bb(), solve_graph(), spread_components(), and try_shrink_wrapping_separate().
|
extern |
A &= ~B. Returns true if A changes
References a, b, bitmap_and_compl_into(), bitmap_clear(), BITMAP_ELEMENT_WORDS, bitmap_empty_p(), bitmap_list_unlink_element(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and r.
Referenced by bitmap_and_compl_into(), bitmap_set_subtract_values(), build_insn_chain(), calculate_gen_cands(), can_move_insns_across(), combine_and_move_insns(), decompose_multiword_subregs(), determine_group_iv_costs(), do_remat(), gimple_lower_bitint(), hoist_memory_references(), insert_phi_nodes_for(), prune_unused_phi_nodes(), scan_reads(), spill_pseudos(), store_motion_loop(), update_live_info(), and update_worklist().
|
extern |
A &= B. Return true if A changed.
References a, b, bitmap_and_into(), BITMAP_ELEMENT_WORDS, bitmap_elt_clear_from(), bitmap_list_unlink_element(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and r.
Referenced by bitmap_and_into(), can_move_insns_across(), cand_av_con_fun_n(), compute_antic_aux(), compute_live_loop_exits(), dead_or_predicable(), df_analyze(), df_live_finalize(), df_live_transfer_function(), df_md_transfer_function(), df_mir_confluence_n(), df_rd_dump_defs_set(), df_rd_transfer_function(), loop_distribution::distribute_loop(), do_hoist_insertion(), dse_confluence_n(), find_moveable_pseudos(), live_con_fun_0(), replace_read(), tm_memopt_compute_antin(), and tm_memopt_compute_avin().
|
extern |
Return true if a bit is set in a bitmap.
Return whether a bit is set within a bitmap.
References bitmap_bit_p, BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, bitmap_list_find_element(), bitmap_tree_find_element(), BITMAP_WORD_BITS, bitmap_element::bits, and bitmap_head::indx.
|
extern |
Clear a bitmap by freeing up the linked list.
Clear a bitmap by freeing all its elements.
References bitmap_clear(), bitmap_elt_clear_from(), bitmap_list_view(), head::first, and NULL.
Referenced by add_candidate_1(), cfg_diagnostic_digraph::add_cfg_nodes_no_loops(), add_dependence(), add_exit_phis(), add_partitioned_vars_to_ptset(), add_scope_conflicts_1(), add_store_equivs(), analyze_function(), assign_by_spills(), bb_ok_for_noce_convert_multiple_sets(), mark_def_dom_walker::before_dom_children(), bitmap_and_compl(), bitmap_and_compl_into(), bitmap_clear(), bitmap_clear(), bitmap_compl_and_into(), bitmap_copy(), bitmap_ior_into_and_free(), bitmap_move(), bitmap_obstack_free(), bitmap_release(), bitmap_set_free(), bitmap_union_of_preds(), bitmap_union_of_succs(), bitmap_vector_clear(), bitmap_xor(), bitmap_xor_into(), break_superblocks(), build_insn_chain(), build_pred_graph(), calculate_equiv_gains(), calculate_gen_cands(), calculate_live_on_exit(), cand_av_con_fun_0(), cand_pav_con_fun_0(), cand_trans_fun(), canonicalize_induction_variables(), cleanup_control_flow_pre(), dom_oracle::clear(), equiv_oracle::clear(), ssa_lazy_cache::clear(), control_dependences::clear_control_dependence_bitmap(), update_list::clear_failures(), clear_modify_mem_tables(), coalesced_allocno_conflict_p(), compute_antic(), compute_antinout_edge(), compute_available(), compute_builtin_object_size(), compute_earliest(), compute_farthest(), compute_live_vars_1(), compute_topo_order(), cse_main(), dce_process_block(), dead_debug_global_init(), dead_debug_local_init(), debug(), decompose_multiword_subregs(), destroy_live_vars(), determine_group_iv_cost_cond(), determine_group_iv_costs(), df_chain_create_bb(), df_chain_remove_problem(), 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_rescan_all(), df_live_alloc(), 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_alloc(), 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_alloc(), df_md_bb_local_compute_process_def(), df_md_free_bb_info(), df_md_local_compute(), df_md_reset(), df_mir_alloc(), df_mir_confluence_0(), df_mir_free_bb_info(), df_mir_reset(), df_mir_verify_solution_end(), df_note_bb_compute(), df_note_compute(), df_process_deferred_rescans(), df_rd_alloc(), df_rd_bb_local_compute(), df_rd_dump_defs_set(), df_rd_free_bb_info(), df_rd_init_solution(), df_rd_transfer_function(), df_scan_free_internal(), df_set_blocks(), 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(), do_hoist_insertion(), do_remat(), draw_cfg_nodes_no_loops(), dse_step2(), dse_step3(), dse_step3_scan(), dse_step5(), phi_analyzer::dump(), eh_region_outermost(), eliminate_phi(), eliminate_unnecessary_stmts(), emit_common_heads_for_components(), emit_common_tails_for_components(), expand_call(), ext_dce_finish(), ext_dce_promote_chained_candidates(), ext_dce_rd_transfer_n(), fast_dce(), fill_always_executed_in(), find_call_stack_args(), find_moveable_pseudos(), find_removable_extensions(), find_replaceable_in_bb(), find_what_var_points_to(), fini_reassoc(), finish_live_solver(), finish_reg_info(), finish_remat_bb_data(), fix_bb_placements(), fold_marked_statements(), free_chain_data(), free_loop_data(), free_loop_data(), get_address_cost(), get_computation_cost(), get_live_on_other_edges(), get_nonnull_args(), hoist_code(), hoist_memory_references(), inherit_in_ebb(), init_alias_analysis(), init_dce(), init_live_reload_and_inheritance_pseudos(), init_live_subregs(), init_rename_info(), init_separate_shrink_wrap(), init_update_ssa(), initialize_uninitialized_regs(), inline_small_functions(), inverted_rev_post_order_compute(), ira_restore_scratches(), crc_optimization::is_crc_checked(), live_track_add_partition(), live_track_clear_base_vars(), live_worklist(), lra(), lra_assign(), lra_coalesce(), lra_eliminate(), lra_inheritance(), lra_live_ranges_finish(), lra_remat(), lra_split_hard_reg_for(), make_edges(), mark_dfs_back_edges(), mark_reachable_handlers(), vect_optimize_slp_pass::materialize(), back_threader::maybe_thread_block(), multiplier_allowed_in_address_p(), oacc_entry_exit_ok(), perform_tree_ssa_dce(), perform_var_substitution(), post_order_compute(), prescan_insns_for_dce(), process_bb_lives(), phi_analyzer::process_phi(), propagate_necessity(), propagate_pseudo_copies(), prune_clobbered_mems(), prune_expressions(), prune_insertions_deletions(), prune_unused_phi_nodes(), ana::reachability< GraphTraits >::reachability(), reachable_at_most_once(), equiv_oracle::register_equiv(), regrename_analyze(), remove_path(), remove_reachable_equiv_notes(), remove_some_program_points_and_update_live_ranges(), remove_some_program_points_and_update_live_ranges(), path_oracle::reset_path(), same_succ_reset(), diagnostics::sarif_artifact::sarif_artifact(), diagnostics::sarif_location_relationship::sarif_location_relationship(), scc_info::scc_info(), setup_live_bytes_from_ref(), setup_try_hard_regno_pseudos(), should_hoist_expr_to_dom(), single_pred_before_succ_order(), spill_for(), spill_pseudos(), split_all_insns(), spread_components(), vect_optimize_slp_pass::start_choosing_layouts(), tail_duplicate(), jump_threader::thread_across_edge(), thread_prologue_and_epilogue_insns(), tree_dce_init(), tree_unroll_loops_completely(), tree_unroll_loops_completely_1(), try_peel_loop(), try_unroll_loop_completely(), undistribute_ops_list(), unroll_loop_runtime_iterations(), unroll_loop_stupid(), update_bad_spill_attribute(), update_dominators_in_loop(), update_live_info(), update_ssa(), update_worklist(), vect_slp_check_for_roots(), vect_transform_slp_perm_load_1(), verify_loop_structure(), verify_ssa(), vt_find_locations(), word_dce_process_block(), crc_optimization::xor_calculates_crc(), and auto_bitmap::~auto_bitmap().
Clear a single bit in a bitmap. Return true if the bit changed.
References bitmap_clear_bit(), BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, bitmap_element_zerop(), bitmap_list_find_element(), bitmap_list_unlink_element(), bitmap_tree_find_element(), bitmap_tree_unlink_element(), BITMAP_WORD_BITS, bitmap_element::bits, and bitmap_head::indx.
Referenced by add_range_and_copies_from_move_list(), add_scope_conflicts_1(), dom_opt_dom_walker::after_dom_children(), apply_clusters(), assign_by_spills(), assign_temporarily(), bitmap_clear_bit(), bitmap_clear_bit(), bitmap_clear_range(), bitmap_set_subtract_values(), bitmap_value_replace_in_set(), loop_distribution::break_alias_scc_partitions(), build_insn_chain(), build_pred_graph(), calculate_bb_reg_pressure(), calculate_gen_cands(), check_argument_store(), check_for_plus_in_loops_1(), clean(), cleanup_control_flow_pre(), dom_oracle::clear(), equiv_oracle::clear(), infer_range_manager::clear(), path_oracle::clear(), relation_chain_head::clear(), ssa_lazy_cache::clear_range(), collect_object_sizes_for(), color_pass(), compute_antic(), compute_antic_aux(), compute_live_vars_1(), compute_local_properties(), compute_transp(), condense_visit(), create_variable_info_for_1(), 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_mir_simulate_one_insn(), df_note_bb_compute(), df_notes_rescan(), df_simulate_defs(), df_simulate_finalize_backwards(), df_simulate_initialize_backwards(), df_word_lr_mark_ref(), disqualify_candidate(), do_remat(), find_moveable_pseudos(), back_threader::find_paths_to_names(), fix_bb_live_info(), fix_bb_placements(), ranger_cache::get_global_range(), gimplify_size_expressions(), hoist_memory_references(), insert_store(), insert_updated_phi_nodes_for(), invalidate_insn_data_regno_info(), iv_ca_set_no_cp(), path_oracle::killing_def(), ssa_name_limit_t::leave_phi(), live_track_remove_partition(), loe_visit_block(), lra_asm_insn_error(), lra_create_live_ranges_1(), lra_pop_insn(), lra_process_new_insns(), lra_set_insn_deleted(), make_hard_regno_dead(), mark_elimination(), mark_reachable_blocks(), mark_regno_dead(), mark_regno_death(), gimple_ranger::prefill_stmt_dependencies(), prepare_names_to_update(), propagate_freq(), prune_clobbered_mems(), prune_hardreg_uses(), prune_insertions_deletions(), uninit_analysis::prune_phi_opnds(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), release_defs_bitset(), reload(), remove_unreachable::remove_and_update_globals(), remove_edge_and_dominated_blocks(), remove_from_partition_kill_list(), same_succ_flush_bb(), scan_reads(), scan_rtx_reg(), scan_stores(), gori_map::set_range_invariant(), set_reg_known_equiv_p(), ssa_propagation_engine::simulate_stmt(), sm_seq_valid_bb(), solve_graph(), sorted_array_from_bitmap_set(), spread_components(), ssa_conflicts_merge(), ssa_propagation_engine::ssa_propagate(), tree_transform_and_unroll_loop(), try_peel_loop(), try_unroll_loop_completely(), undistribute_bitref_for_vector(), undo_optional_reloads(), unify_nodes(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), update_bb_reg_pressure(), update_ebb_live_info(), update_lives(), update_worklist(), and vt_find_locations().
|
extern |
Return and clear the bit number of the first set bit in the bitmap. The bitmap must be non-empty.
References a, bitmap_clear_first_set_bit(), and bitmap_first_set_bit_worker().
Referenced by bitmap_clear_first_set_bit(), cleanup_tree_cfg_noloop(), df_worklist_dataflow_doublequeue(), do_rpo_vn_1(), rewrite_blocks(), and simple_dce_from_worklist().
|
extern |
Return and clear the bit number of the last set bit in the bitmap. The bitmap must be non-empty.
References a, bitmap_clear_last_set_bit(), and bitmap_last_set_bit_worker().
Referenced by bitmap_clear_last_set_bit().
|
extern |
Clear COUNT bits from START in HEAD.
References bitmap_clear_bit(), bitmap_clear_range(), BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, bitmap_list_find_element(), bitmap_list_unlink_element(), BITMAP_WORD_BITS, bitmap_element::bits, gcc_checking_assert, i, bitmap_element::indx, and bitmap_element::next.
Referenced by bitmap_clear_range(), bitmap_clear_range(), bitmap_clear_range(), clear_live_bytes_for_ref(), df_rd_bb_local_compute_process_def(), df_rd_confluence_n(), df_rd_simulate_artificial_defs_at_top(), df_rd_simulate_one_insn(), df_rd_transfer_function(), df_simulate_one_insn_forwards(), ext_dce_process_sets(), lra_create_live_ranges_1(), mark_effect(), and remove_preds_and_fake_succs().
|
extern |
A = ~A & B.
References a, b, bitmap_clear(), bitmap_compl_and_into(), bitmap_copy(), BITMAP_ELEMENT_WORDS, bitmap_empty_p(), bitmap_list_insert_element_after(), bitmap_list_unlink_element(), bitmap_element::bits, gcc_assert, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, bitmap_element::prev, and r.
Referenced by bitmap_compl_and_into().
|
extern |
Copy a bitmap to another bitmap.
References bitmap_clear(), bitmap_copy(), bitmap_element_allocate(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and bitmap_element::prev.
Referenced by equiv_oracle::add_equiv_to_block(), add_ranges_and_copies(), analyze_all_variable_accesses(), bitmap_and(), bitmap_compl_and_into(), bitmap_copy(), bitmap_copy(), bitmap_intersection_of_preds(), bitmap_intersection_of_succs(), bitmap_ior_and_compl(), bitmap_set_copy(), bitmap_set_subtract_expressions(), bitmap_union_of_preds(), bitmap_union_of_succs(), build_insn_chain(), calculate_bb_reg_pressure(), calculate_global_remat_bb_data(), calculate_loop_reg_pressure(), can_move_insns_across(), color_pass(), combine_stack_adjustments_for_block(), compute_builtin_object_size(), compute_earliest(), hybrid_jt_simplifier::compute_exit_dependencies(), path_range_query::compute_exit_dependencies(), compute_farthest(), compute_laterin(), compute_nearerout(), path_range_query::compute_ranges(), consider_split(), convert_local_omp_clauses(), convert_nonlocal_omp_clauses(), copy_static_var_set(), create_new_chain(), dce_process_block(), dead_debug_local_init(), debug(), 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_mir_confluence_n(), df_mir_verify_solution_start(), df_note_bb_compute(), df_process_deferred_rescans(), df_rd_init_solution(), df_set_blocks(), df_update_entry_block_defs(), df_update_exit_block_uses(), df_word_lr_init(), loop_distribution::distribute_loop(), do_remat(), dse_confluence_0(), dse_confluence_n(), dse_step1(), dse_step3(), dse_transfer_function(), emit_common_heads_for_components(), emit_common_tails_for_components(), gori_map::exports_and_deps(), find_moveable_pseudos(), find_removable_extensions(), gen_call_used_regs_seq(), gimplify_size_expressions(), hoist_code(), hoist_memory_references(), init_separate_shrink_wrap(), label_visit(), fwd_jt_path_registry::mark_threaded_blocks(), back_threader::maybe_thread_block(), peephole2_optimize(), process_bb_lives(), propagate(), propagate_pseudo_copies(), prune_unused_phi_nodes(), regrename_analyze(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), remove_unreachable::remove_and_update_globals(), should_hoist_expr_to_dom(), simulate_backwards_to_point(), sm_seq_valid_bb(), solve_graph(), spill_for(), spread_components(), tm_memopt_compute_antin(), tm_memopt_compute_avin(), tree_unswitch_single_loop(), try_shrink_wrapping(), undo_optional_reloads(), and word_dce_process_block().
|
extern |
Count the number of bits set in the bitmap.
Count the number of bits set in the bitmap, and return it.
References a, bitmap_count_bits(), bitmap_count_bits_in_word(), bitmap_element::bits, gcc_checking_assert, and bitmap_element::next.
Referenced by add_exit_phis(), add_to_worklist(), alloc_use_cost_map(), bitmap_count_bits(), bitmap_count_bits(), loop_distribution::break_alias_scc_partitions(), path_range_query::compute_exit_dependencies(), compute_partial_antic_aux(), consider_split(), create_new_ivs(), debug(), determine_group_iv_cost_cond(), df_rd_dump_defs_set(), dse_step2_init(), initialize_conflict_count(), instrument_decisions(), noce_process_if_block(), partition_view_fini(), phi_translate_set(), prune_unused_phi_nodes(), release_defs_bitset(), sorted_array_from_bitmap_set(), and ipa_icf::sem_item_optimizer::traverse_congruence_split().
|
extern |
Count the number of unique bits set across the two bitmaps.
Count the number of unique bits set in A and B and return it.
References a, b, bitmap_count_bits_in_word(), bitmap_count_unique_bits(), BITMAP_ELEMENT_WORDS, bitmap_element::bits, bitmap_element::indx, and bitmap_element::next.
Referenced by bitmap_count_unique_bits(), and initialize_conflict_count().
|
inline |
True if MAP is an empty bitmap.
References bitmap_empty_p().
Referenced by add_dependence(), add_partitioned_vars_to_ptset(), bitmap_and_compl(), bitmap_and_compl_into(), bitmap_compl_and_into(), bitmap_empty_p(), bitmap_empty_p(), bitmap_ior_and_compl(), bitmap_ior_and_compl_into(), bitmap_ior_and_into(), bitmap_single_bit_set_p(), build_insn_chain(), canonicalize_induction_variables(), cleanup_tree_cfg_noloop(), combine_and_move_insns(), compute_builtin_object_size(), consider_split(), dce_process_block(), dead_or_predicable(), debug(), debug_ter(), decompose_multiword_subregs(), determine_group_iv_costs(), df_rd_dump_defs_set(), df_rd_transfer_function(), df_worklist_dataflow_doublequeue(), disqualify_problematic_components(), do_hoist_insertion(), do_rpo_vn_1(), dse_classify_store(), dse_step5(), equiv_chain::dump(), gori_map::dump(), range_def_chain::dump(), dump_components(), dump_pred_graph(), dump_update_ssa(), pointer_analysis::dump_varinfo(), eliminate_dom_walker::eliminate_cleanup(), eliminate_indirect_cycles(), emit_common_heads_for_components(), emit_common_tails_for_components(), empty_p(), ssa_lazy_cache::empty_p(), execute_update_addresses_taken(), gori_map::exports_and_deps(), ext_dce_process_sets(), find_call_stack_args(), back_threader::find_paths_to_names(), find_replaceable_exprs(), find_replaceable_in_bb(), generate_setjmp_warnings(), gimple_infer_range::gimple_infer_range(), infer_range_manager::has_range_p(), hoist_memory_references(), ifcombine_replace_cond(), insert_prologue_epilogue_for_components(), insert_updated_phi_nodes_for(), ipa_tm_scan_irr_function(), label_visit(), live_track_remove_partition(), lra(), lra_dump_bitmap_with_title(), lra_eliminate(), mem_might_overlap_already_clobbered_arg_p(), move_insn_for_shrink_wrap(), optimize_va_list_gpr_fpr_size(), diagnostics::sarif_artifact::populate_roles(), pp_points_to_solution(), phi_analyzer::process_phi(), propagate(), propagate_pseudo_copies(), prune_unused_phi_nodes(), pt_solution_empty_p(), release_defs_bitset(), reload(), remove_unreachable::remove_and_update_globals(), remove_from_partition_kill_list(), remove_inheritance_pseudos(), repair_loop_structures(), replace_read(), replace_uses_by(), rewrite_blocks(), rewrite_into_loop_closed_ssa_1(), simple_dce_from_worklist(), sm_seq_valid_bb(), pointer_analysis::solve_constraints(), solve_graph(), spill_for(), split_function(), spread_components(), ssa_propagation_engine::ssa_propagate(), store_motion_loop(), substitute_and_fold_engine::substitute_and_fold(), tail_merge_optimize(), tree_unroll_loops_completely(), try_shrink_wrapping_separate(), undistribute_bitref_for_vector(), undo_optional_reloads(), fwd_jt_path_registry::update_cfg(), update_live_info(), update_ssa(), validate_arglist(), and word_dce_process_block().
|
extern |
True if two bitmaps are identical.
Return true if two bitmaps are identical. We do not bother with a check for pointer equality, as that never occurs in practice.
References a, b, BITMAP_ELEMENT_WORDS, bitmap_equal_p(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, and bitmap_element::next.
Referenced by bitmap_equal_p(), bitmap_equal_p(), bitmap_ior_and_compl(), bitmap_set_equal(), dce_process_block(), debug(), df_entry_block_bitmap_verify(), df_exit_block_bitmap_verify(), df_live_verify_solution_end(), df_live_verify_transfer_functions(), df_lr_verify_solution_end(), df_lr_verify_transfer_functions(), df_mir_verify_solution_end(), df_rd_transfer_function(), df_scan_verify(), df_update_entry_block_defs(), df_update_exit_block_uses(), pointer_analysis::dump_varinfo(), equiv_class_hasher::equal(), same_succ::equal(), shared_bitmap_hasher::equal(), propagate(), dom_oracle::query(), equiv_oracle::query(), path_oracle::query(), path_oracle::register_equiv(), sorted_array_from_bitmap_set(), spread_components(), union_static_var_sets(), and word_dce_process_block().
|
extern |
Return the bit number of the first set bit in the bitmap. The bitmap must be non-empty.
References a, bitmap_first_set_bit(), and bitmap_first_set_bit_worker().
Referenced by bitmap_first_set_bit(), bitmap_first_set_bit(), bitmap_set_range(), compute_trims(), same_succ::equal(), kill_expr(), nearest_common_dominator_for_set(), nearest_common_dominator_of_uses(), pt_solution_singleton_or_null_p(), same_succ_hash(), scc_visit(), set_livein_block(), ssa_propagation_engine::ssa_propagate(), and undistribute_ops_list().
|
extern |
References ALONE_CXX_MEM_STAT_INFO, and bitmap_gc_alloc().
| BITMAP_WORD bitmap_get_aligned_chunk | ( | const_bitmap | head, |
| unsigned int | chunk, | ||
| unsigned int | chunk_size ) |
This is the get routine for viewing bitmap as a multi-bit sparse array. Return a set of CHUNK_SIZE consecutive bits from HEAD, starting at bit CHUNK * chunk_size.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, bitmap_get_aligned_chunk(), bitmap_list_find_element(), bitmap_tree_find_element(), BITMAP_WORD_BITS, bitmap_element::bits, CHAR_BIT, gcc_checking_assert, bitmap_head::indx, and pow2p_hwi().
Referenced by bitmap_get_aligned_chunk(), and sbr_sparse_bitmap::bitmap_get_quad().
|
extern |
Compute bitmap hash (for purposes of hashing etc.)
Compute hash of bitmap (for purposes of hashing).
References BITMAP_ELEMENT_WORDS, bitmap_hash(), bitmap_element::bits, head::first, gcc_checking_assert, bitmap_element::indx, and bitmap_element::next.
Referenced by bitmap_hash(), equiv_class_lookup_or_add(), same_succ_hash(), shared_bitmap_add(), and shared_bitmap_lookup().
|
inline |
Initialize a bitmap header. OBSTACK indicates the bitmap obstack to allocate from, NULL for GC'd bitmap.
References bitmap_initialize(), bitmap_register(), CXX_MEM_STAT_INFO, head::first, NULL, and PASS_MEM_STAT.
Referenced by assign_by_spills(), auto_bitmap::auto_bitmap(), auto_bitmap::auto_bitmap(), bitmap_alloc(), bitmap_gc_alloc(), bitmap_initialize(), bitmap_set_new(), calculate_equiv_gains(), calculate_loop_reg_pressure(), compute_live_vars(), control_dependences::control_dependences(), create_new_chain(), create_remat_bb_data(), df_chain_create_bb(), df_live_alloc(), df_live_verify_solution_start(), df_live_verify_transfer_functions(), df_lr_alloc(), df_lr_verify_solution_start(), df_lr_verify_transfer_functions(), df_md_alloc(), df_md_local_compute(), df_mir_alloc(), df_mir_verify_solution_start(), df_note_compute(), df_rd_alloc(), df_rd_dump_defs_set(), df_rd_local_compute(), df_rd_transfer_function(), df_scan_alloc(), df_set_blocks(), df_word_lr_alloc(), do_hoist_insertion(), ext_dce_init(), find_exits(), find_moveable_pseudos(), find_removable_extensions(), init_live_reload_and_inheritance_pseudos(), init_lives(), init_rename_info(), initialize_lra_reg_info_element(), initiate_live_solver(), lra(), lra_assign(), lra_coalesce(), lra_eliminate(), lra_inheritance(), lra_live_ranges_init(), lra_remat(), lra_split_hard_reg_for(), mem_ref_alloc(), new_live_track(), new_tree_live_info(), regrename_analyze(), remove_scratches(), sbr_sparse_bitmap::sbr_sparse_bitmap(), spill_pseudos(), pair_fusion_bb_info::track_tombstone(), tree_ssa_lim_initialize(), update_bad_spill_attribute(), and update_ssa().
|
extern |
True if the complement of the second intersects the first (their AND_COMPL is non-empty).
Return true if A AND NOT B is not empty.
References a, b, BITMAP_ELEMENT_WORDS, bitmap_intersect_compl_p(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and NULL.
Referenced by assign_spill_hard_regs(), bitmap_intersect_compl_p(), df_live_verify_transfer_functions(), df_lr_verify_transfer_functions(), and discover_loops().
|
extern |
True if the bitmaps intersect (their AND is non-empty).
Return true if A AND B is not empty.
References a, b, BITMAP_ELEMENT_WORDS, bitmap_intersect_p(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, and bitmap_element::next.
Referenced by bb_valid_for_noce_process_p(), bitmap_intersect_p(), bitmap_intersect_p(), bitmap_set_range(), can_move_insns_across(), dead_or_predicable(), range_def_chain::def_chain_in_bitmap_p(), discover_loops(), doloop_optimize(), relation_chain_head::find_relation(), pt_solution_set(), pt_solutions_intersect_1(), dom_oracle::query(), path_oracle::query(), dom_oracle::register_transitives(), verify_ssaname_freelists(), and visit_loadstore().
|
extern |
DST = A | B. Return true if DST changes.
References a, b, bitmap_elt_clear_from(), bitmap_elt_ior(), bitmap_ior(), gcc_assert, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and NULL.
Referenced by assign_by_spills(), bitmap_ior(), bitmap_ior(), bitmap_ior_and_compl(), bitmap_set_range(), compute_code_hoist_vbeinout(), compute_pre_data(), emit_common_heads_for_components(), emit_common_tails_for_components(), label_visit(), lra_split_hard_reg_for(), noce_process_if_block(), oacc_do_neutering(), prune_unused_phi_nodes(), remove_some_program_points_and_update_live_ranges(), remove_some_program_points_and_update_live_ranges(), and spread_components().
|
extern |
DST = A | (B & ~C). Return true if DST changes.
DST = A | (FROM1 & ~FROM2). Return true if DST changes.
References a, b, bitmap_and_compl(), bitmap_copy(), BITMAP_ELEMENT_WORDS, bitmap_elt_clear_from(), bitmap_elt_ior(), bitmap_empty_p(), bitmap_equal_p(), bitmap_ior(), bitmap_ior_and_compl(), bitmap_element::bits, gcc_assert, gcc_checking_assert, bitmap_element::indx, kill, bitmap_element::next, NULL, and r.
Referenced by bitmap_ior_and_compl(), bitmap_ior_and_compl(), bitmap_set_range(), cand_trans_fun(), compute_available(), compute_laterin(), compute_nearerout(), df_live_transfer_function(), df_lr_transfer_function(), df_md_transfer_function(), df_mir_transfer_function(), df_rd_transfer_function(), df_word_lr_transfer_function(), dse_transfer_function(), find_removable_extensions(), and live_trans_fun().
|
extern |
A |= (B & ~C). Return true if A changes.
References a, b, bitmap_and_compl(), BITMAP_ELEMENT_WORDS, bitmap_elt_copy(), bitmap_elt_ior(), bitmap_empty_p(), bitmap_ior_and_compl_into(), bitmap_ior_into(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_head::indx, bitmap_element::next, and NULL.
Referenced by bitmap_ior_and_compl_into(), df_lr_confluence_n(), df_md_confluence_n(), live_con_fun_n(), loe_visit_block(), and propagate_pseudo_copies().
|
extern |
DST = A | (B & C). Return true if DST changes.
A |= (B & C). Return true if A changes.
References a, b, BITMAP_ELEMENT_WORDS, bitmap_elt_copy(), bitmap_elt_ior(), bitmap_empty_p(), bitmap_ior_and_into(), bitmap_ior_into(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and NULL.
Referenced by bitmap_ior_and_into(), df_md_local_compute(), and do_hoist_insertion().
|
extern |
A |= B. Return true if A changes.
References a, b, bitmap_elt_copy(), bitmap_elt_ior(), bitmap_ior_into(), gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and NULL.
Referenced by range_def_chain::add_def_chain_to_bitmap(), add_dependence(), equiv_oracle::add_equiv_to_block(), 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(), bitmap_ior_into(), gori_map::calculate_gori(), calculate_live_on_exit(), calculate_loop_reg_pressure(), cand_pav_con_fun_n(), coalesce_ssa_name(), compute_antic_aux(), compute_live_vars(), compute_live_vars_1(), compute_partial_antic_aux(), 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(), ipa_icf::sem_item_optimizer::do_congruence_step(), do_ds_constraint(), do_hoist_insertion(), dse_step2_init(), dse_step3(), dse_step3_exit_block_scan(), phi_analyzer::dump(), gori_map::exports_and_deps(), ext_dce_rd_transfer_n(), find_split_points(), get_live_on_other_edges(), get_tm_region_blocks(), ipa_tm_scan_irr_function(), label_visit(), lra_assign(), lra_coalesce(), lra_constraints(), lra_eliminate(), lra_inheritance(), lra_split_hard_reg_for(), mark_replaceable(), gori_map::maybe_add_gori(), merge_chains(), merge_clusters(), merge_graph_nodes(), loop_distribution::partition_merge_into(), phi_analyzer::process_phi(), process_replaceable(), propagate_modified_regnos(), propagate_pseudo_copies(), pt_solution_ior_into(), loop_distribution::rdg_build_partitions(), record_important_candidates(), range_def_chain::register_dependency(), equiv_oracle::register_equiv(), path_oracle::register_equiv(), remove_unreachable::remove_and_update_globals(), remove_edge_and_dominated_blocks(), scan_reads(), set_bb_regs(), range_def_chain::set_import(), set_union_with_increment(), sm_seq_valid_bb(), solution_set_expand(), solve_add_graph_edge(), solve_graph(), spill_for(), spill_pseudos(), spill_pseudos(), ssa_conflicts_merge(), store_motion_loop(), tm_memopt_compute_antic(), tm_memopt_compute_available(), tree_unroll_loops_completely_1(), unify_nodes(), union_static_var_sets(), vars_ssa_cache::update(), update_live_info(), update_reg_eliminate(), and verify_ssaname_freelists().
A |= B. Return true if A changes. Free B (re-using its storage for the result).
References a, b, bitmap_clear(), bitmap_elt_ior(), BITMAP_FREE, bitmap_ior_into_and_free(), bitmap_list_insert_element_after(), bitmap_list_unlink_element(), gcc_assert, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and NULL.
Referenced by bitmap_ior_into_and_free(), and condense_visit().
|
extern |
Return the bit number of the last set bit in the bitmap. The bitmap must be non-empty.
References a, bitmap_last_set_bit(), and bitmap_last_set_bit_worker().
Referenced by bitmap_last_set_bit(), bitmap_last_set_bit(), bitmap_set_range(), and compute_trims().
| void bitmap_list_view | ( | bitmap | head | ) |
Change the view of the bitmap to list, or tree.
Converting bitmap views from linked-list to tree and vice versa.
Convert bitmap HEAD from splay-tree view to linked-list view.
References bitmap_list_view(), head::first, gcc_assert, and bitmap_element::next.
Referenced by bitmap_clear(), bitmap_list_view(), coalesce_ssa_name(), release_defs_bitset(), sorted_array_from_bitmap_set(), and update_ssa().
Move a bitmap to another bitmap.
References bitmap_clear(), bitmap_move(), gcc_assert, register_overhead(), and release_overhead().
Referenced by bitmap_move(), df_rd_transfer_function(), and do_hoist_insertion().
|
extern |
Release an obstack allocated bitmap.
References bitmap_clear(), bitmap_obstack_free(), and release_overhead().
Referenced by bitmap_obstack_free().
|
extern |
Initialize and release a bitmap obstack.
Initialize a bitmap obstack. If BIT_OBSTACK is NULL, initialize the default bitmap obstack.
References __alignof__, bitmap_default_obstack, bitmap_default_obstack_depth, bitmap_obstack_initialize(), bitmap_obstack::elements, bitmap_obstack::heads, NULL, bitmap_obstack::obstack, obstack_chunk_alloc, obstack_chunk_free, and OBSTACK_CHUNK_SIZE.
Referenced by cgraph_node::add_new_function(), cgraph_node::analyze(), analyze_functions(), bitmap_obstack_initialize(), block_range_cache::block_range_cache(), symtab_node::check_ifunc_callee_symtab_nodes(), symbol_table::compile(), control_dependences::control_dependences(), df_live_alloc(), df_lr_alloc(), df_md_alloc(), df_mir_alloc(), df_mir_verify_solution_start(), df_rd_alloc(), df_scan_alloc(), df_word_lr_alloc(), dom_ranger::dom_ranger(), dse_step0(), equiv_oracle::equiv_oracle(), execute_tm_memopt(), cgraph_node::expand(), expand_thunk(), find_replaceable_exprs(), gate_tm_init(), infer_range_manager::infer_range_manager(), init_alias_vars(), init_dce(), init_graph(), init_live_reload_and_inheritance_pseudos(), init_lives(), init_pre(), init_ssa_renamer(), init_update_ssa(), init_vars_expansion(), ipa_init(), ipa_passes(), ipa_reference_read_optimization_summary(), ipa_tm_execute(), ira(), lang_dependent_init(), lower_nested_functions(), lto_output(), new_live_track(), new_tree_live_info(), path_oracle::path_oracle(), perform_var_substitution(), phi_analyzer::phi_analyzer(), symbol_table::process_new_functions(), range_def_chain::range_def_chain(), reorg_loops(), rest_of_handle_df_initialize(), rewrite_into_loop_closed_ssa_1(), run_rtl_passes(), toplev::run_self_tests(), ipa_icf::sem_item_optimizer::sem_item_optimizer(), solve_graph(), ssa_conflicts_new(), ssa_lazy_cache::ssa_lazy_cache(), pair_fusion_bb_info::track_tombstone(), tree_ssa_lim_initialize(), and update_list::update_list().
|
extern |
Release the memory from a bitmap obstack. If BIT_OBSTACK is NULL, release the default bitmap obstack.
References bitmap_default_obstack, bitmap_default_obstack_depth, bitmap_obstack_release(), bitmap_obstack::elements, gcc_assert, bitmap_obstack::heads, NULL, and bitmap_obstack::obstack.
Referenced by cgraph_node::add_new_function(), cgraph_node::analyze(), analyze_functions(), bitmap_obstack_release(), calculate_live_ranges(), symtab_node::check_ifunc_callee_symtab_nodes(), symbol_table::compile(), compute_transaction_bits(), delete_live_track(), delete_points_to_sets(), delete_tree_live_info(), df_live_free(), df_lr_free(), df_md_free(), df_mir_free(), df_mir_verify_solution_end(), df_rd_free(), df_scan_free_internal(), df_word_lr_free(), do_reload(), dse_step7(), execute_tm_memopt(), cgraph_node::expand(), expand_thunk(), finalize(), find_replaceable_exprs(), fini_dce(), fini_pre(), fini_ssa_renamer(), fini_vars_expansion(), finish_live_reload_and_inheritance_pseudos(), finish_lives(), free_var_substitution_info(), gate_tm_init(), ipa_passes(), ipa_reference_cc_finalize(), ipa_tm_execute(), lower_nested_functions(), lto_output(), symbol_table::process_new_functions(), propagate(), remove_preds_and_fake_succs(), reorg_loops(), rest_of_handle_df_finish(), rewrite_into_loop_closed_ssa_1(), run_rtl_passes(), toplev::run_self_tests(), solve_graph(), ssa_conflicts_delete(), tree_ssa_lim_finalize(), block_range_cache::~block_range_cache(), control_dependences::~control_dependences(), dom_ranger::~dom_ranger(), equiv_oracle::~equiv_oracle(), infer_range_manager::~infer_range_manager(), pair_fusion_bb_info::~pair_fusion_bb_info(), path_oracle::~path_oracle(), phi_analyzer::~phi_analyzer(), range_def_chain::~range_def_chain(), ipa_icf::sem_item_optimizer::~sem_item_optimizer(), ssa_lazy_cache::~ssa_lazy_cache(), and update_list::~update_list().
|
extern |
Print a bitmap.
Function to print out the contents of a bitmap. Unlike debug_bitmap_file, it does not print anything but the bits.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, bitmap_print(), bitmap_tree_to_vec(), BITMAP_WORD_BITS, DEBUG_FUNCTION, EXECUTE_IF_SET_IN_BITMAP, i, and bitmap_head::indx.
Referenced by bitmap_print(), debug_ter(), debug_var_infos_r(), determine_group_iv_costs(), df_set_blocks(), dse_step2_init(), dse_step4(), dse_step5(), dump_bitmap(), find_always_executed_bbs(), iv_ca_dump(), print_cluster(), print_insn_chain(), loop_distribution::rdg_build_partitions(), and same_succ_print().
|
extern |
References bitmap_register(), dump_bitmap_statistics(), and MEM_STAT_DECL.
|
inline |
Release a bitmap (but not its head). This is suitable for pairing with bitmap_initialize.
References bitmap_clear(), bitmap_release(), and bitmap_head::crashme.
Referenced by bitmap_release(), calculate_loop_reg_pressure(), df_live_free(), df_md_free(), df_md_local_compute(), df_rd_local_compute(), lra_inheritance(), and pair_fusion_bb_info::~pair_fusion_bb_info().
| void bitmap_set_aligned_chunk | ( | bitmap | head, |
| unsigned int | chunk, | ||
| unsigned int | chunk_size, | ||
| BITMAP_WORD | chunk_value ) |
Set and get multiple bit values in a sparse bitmap. This allows a bitmap to function as a sparse array of bit patterns where the patterns are multiples of power of 2. This is more efficient than performing this as multiple individual operations.
Set CHUNK_SIZE bits at a time in bitmap HEAD. Store CHUNK_VALUE starting at bits CHUNK * chunk_size. This is the set routine for viewing bitmap as a multi-bit sparse array.
References BITMAP_ELEMENT_ALL_BITS, bitmap_element_allocate(), BITMAP_ELEMENT_WORDS, bitmap_list_find_element(), bitmap_list_link_element(), bitmap_set_aligned_chunk(), bitmap_tree_find_element(), bitmap_tree_link_element(), BITMAP_WORD_BITS, bitmap_element::bits, CHAR_BIT, gcc_checking_assert, bitmap_element::indx, bitmap_head::indx, and pow2p_hwi().
Referenced by bitmap_set_aligned_chunk(), and sbr_sparse_bitmap::bitmap_set_quad().
Set a single bit in a bitmap. Return true if the bit changed.
References BITMAP_ELEMENT_ALL_BITS, bitmap_element_allocate(), BITMAP_ELEMENT_WORDS, bitmap_list_find_element(), bitmap_list_link_element(), bitmap_set_bit, bitmap_tree_find_element(), bitmap_tree_link_element(), BITMAP_WORD_BITS, bitmap_element::bits, bitmap_element::indx, and bitmap_head::indx.
|
extern |
Set COUNT bits from START in HEAD.
References BITMAP_ELEMENT_ALL_BITS, bitmap_element_allocate(), BITMAP_ELEMENT_WORDS, bitmap_list_find_element(), bitmap_list_insert_element_after(), bitmap_list_link_element(), bitmap_set_bit, bitmap_set_range(), BITMAP_WORD_BITS, bitmap_element::bits, gcc_checking_assert, i, bitmap_element::indx, bitmap_element::next, and bitmap_element::prev.
Referenced by add_used_regs(), bitmap_set_range(), bitmap_set_range(), bitmap_set_range(), loop_distribution::break_alias_scc_partitions(), df_mark_reg(), df_rd_bb_local_compute_process_def(), df_rd_dump_defs_set(), df_rd_local_compute(), df_rd_transfer_function(), ext_dce_process_bb(), ext_dce_process_uses(), initiate_live_solver(), look_for_hardregs(), mark_effect(), relate_compare_use_with_all_cands(), set_all_positions_unneeded(), setup_live_bytes_from_ref(), solution_set_expand(), loop_distribution::transform_reduction_loop(), and verify_ssaname_freelists().
|
extern |
True if the bitmap has only a single bit set.
Return true if the bitmap has a single bit set. Otherwise return false.
References a, BITMAP_ELEMENT_WORDS, bitmap_empty_p(), bitmap_popcount(), bitmap_single_bit_set_p(), bitmap_element::bits, bitmap_element::next, NULL, and bitmap_element::prev.
Referenced by bitmap_single_bit_set_p(), pt_solution_singleton_or_null_p(), and same_succ_flush_bb().
| void bitmap_tree_view | ( | bitmap | head | ) |
Convert bitmap HEAD from linked-list view to splay-tree view. This is simply a matter of dropping the prev or next pointers and setting the tree_form flag. The tree will balance itself if and when it is used.
References bitmap_tree_view(), head::first, gcc_assert, bitmap_element::next, NULL, and bitmap_element::prev.
Referenced by bitmap_tree_view(), coalesce_ssa_name(), df_worklist_dataflow_doublequeue(), dom_jt_state::dom_jt_state(), equiv_oracle::equiv_oracle(), find_always_executed_bbs(), ifcombine_replace_cond(), maybe_skip_until(), release_defs_bitset(), sbr_sparse_bitmap::sbr_sparse_bitmap(), sorted_array_from_bitmap_set(), ssa_prop_init(), update_ssa(), and walk_aliased_vdefs_1().
|
extern |
DST = A ^ B
References a, b, bitmap_clear(), BITMAP_ELEMENT_WORDS, bitmap_elt_clear_from(), bitmap_list_insert_element_after(), bitmap_xor(), bitmap_element::bits, gcc_assert, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, and r.
Referenced by bitmap_set_range(), bitmap_xor(), and bitmap_xor().
|
extern |
A ^= B
References a, b, bitmap_clear(), BITMAP_ELEMENT_WORDS, bitmap_list_insert_element_after(), bitmap_list_unlink_element(), bitmap_xor_into(), bitmap_element::bits, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, and r.
Referenced by bitmap_xor_into().
|
inline |
Advance to the next nonzero bit of an intersecting pair of bitmaps. We will have already advanced past the just iterated bit. Return true if there is a bit to iterate.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, BITMAP_WORD_BITS, bitmap_element::bits, bitmap_iterator::bits, bmp_iter_and(), bmp_iter_next_bit(), bitmap_iterator::elt1, bitmap_iterator::elt2, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and bitmap_iterator::word_no.
Referenced by bmp_iter_and().
|
inline |
Advance to the next nonzero bit in the intersection of complemented bitmaps. We will have already advanced past the just iterated bit.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, BITMAP_WORD_BITS, bitmap_element::bits, bitmap_iterator::bits, bmp_iter_and_compl(), bmp_iter_next_bit(), bitmap_iterator::elt1, bitmap_iterator::elt2, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and bitmap_iterator::word_no.
Referenced by bmp_iter_and_compl().
|
inline |
Initialize an iterator to iterate over the bits in MAP1 & ~MAP2.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, BITMAP_WORD_BITS, bitmap_zero_bits, bitmap_element::bits, bitmap_iterator::bits, bmp_iter_and_compl_init(), bitmap_iterator::elt1, bitmap_iterator::elt2, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and bitmap_iterator::word_no.
Referenced by bmp_iter_and_compl_init().
|
inline |
Initialize an iterator to iterate over the intersection of two bitmaps. START_BIT is the bit to commence from.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, BITMAP_WORD_BITS, bitmap_zero_bits, bitmap_element::bits, bitmap_iterator::bits, bmp_iter_and_init(), bitmap_iterator::elt1, bitmap_iterator::elt2, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, and bitmap_iterator::word_no.
Referenced by bmp_iter_and_init().
|
inline |
Advance to the next bit in BI. We don't advance to the next nonzero bit yet.
References bitmap_iterator::bits, and bmp_iter_next().
Referenced by bmp_iter_next(), bmp_iter_next(), equiv_relation_iterator::next(), and gori_export_iterator::next().
|
inline |
Advance to first set bit in BI.
References bitmap_iterator::bits, bmp_iter_next_bit(), and gcc_assert.
Referenced by bmp_iter_and(), bmp_iter_and_compl(), bmp_iter_next_bit(), and bmp_iter_set().
|
inline |
Advance to the next nonzero bit of a single bitmap, we will have already advanced past the just iterated bit. Return true if there is a bit to iterate.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, BITMAP_WORD_BITS, bitmap_element::bits, bitmap_iterator::bits, bmp_iter_next_bit(), bmp_iter_set(), bitmap_iterator::elt1, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, and bitmap_iterator::word_no.
Referenced by bmp_iter_set(), bmp_iter_set(), equiv_relation_iterator::get_name(), and gori_export_iterator::get_name().
|
inline |
Initialize a single bitmap iterator. START_BIT is the first bit to iterate from.
References BITMAP_ELEMENT_ALL_BITS, BITMAP_ELEMENT_WORDS, BITMAP_WORD_BITS, bitmap_zero_bits, bitmap_element::bits, bitmap_iterator::bits, bmp_iter_set_init(), bitmap_iterator::elt1, bitmap_iterator::elt2, gcc_checking_assert, bitmap_element::indx, bitmap_element::next, NULL, and bitmap_iterator::word_no.
Referenced by bmp_iter_set_init(), bmp_iter_set_init(), equiv_relation_iterator::equiv_relation_iterator(), equiv_relation_iterator::get_name(), and gori_export_iterator::gori_export_iterator().
|
extern |
References debug, and DEBUG_FUNCTION.
|
extern |
References debug, and DEBUG_FUNCTION.
|
extern |
References debug, DEBUG_FUNCTION, and dump_bitmap().
Referenced by bitmap_head::dump().
|
extern |
References debug, and DEBUG_FUNCTION.
|
extern |
Debug functions to print a bitmap.
Function to be called from the debugger to print the contents of a bitmap.
References debug_bitmap(), debug_bitmap_file(), and DEBUG_FUNCTION.
Referenced by bitmap_set_range(), debug_bitmap(), and debug_bitmap().
|
extern |
Debugging function to print out the contents of a bitmap.
References bitmap_tree_to_vec(), debug_bitmap_elt_file(), debug_bitmap_file(), DEBUG_FUNCTION, head::first, HOST_PTR_PRINTF, i, and bitmap_element::next.
Referenced by debug_bitmap(), debug_bitmap_file(), and dump_rdg_partitions().
|
inline |
A few compatibility/functions macros for compatibility with sbitmaps
References bitmap_print(), and dump_bitmap().
Referenced by create_new_invariant(), debug(), debug_raw(), df_rd_start_dump(), dump_bitmap(), dump_bitmap(), dump_bitmap_vector(), dump_cand(), dump_split_point(), find_iv_candidates(), loop_distribution::partition_merge_into(), and ssa_conflicts_dump().
|
extern |
Output per-bitmap memory usage statistics.
References bitmap_mem_desc(), BITMAP_ORIGIN, and dump_bitmap_statistics().
Referenced by bitmap_register(), dump_bitmap_statistics(), and dump_memory_report().
|
extern |
Referenced by auto_bitmap::auto_bitmap(), bitmap_alloc(), bitmap_obstack_initialize(), bitmap_obstack_release(), compute_live_vars(), create_new_chain(), df_chain_create_bb(), df_live_verify_transfer_functions(), df_lr_verify_transfer_functions(), df_md_local_compute(), ext_dce_init(), init_rename_info(), regrename_analyze(), and update_ssa().
|
extern |
Global data
Referenced by bmp_iter_and_compl_init(), bmp_iter_and_init(), and bmp_iter_set_init().