
Go to the source code of this file.
Data Types | |
| type | df_link |
| type | ref |
| type | insn_info |
| type | reg_info |
| type | bb_info |
| type | df |
| type | df_map |
Defines | |
| #define | DF_RD 1 |
| #define | DF_RU 2 |
| #define | DF_LR 4 |
| #define | DF_DU_CHAIN 8 |
| #define | DF_UD_CHAIN 16 |
| #define | DF_REG_INFO 32 |
| #define | DF_RD_CHAIN 64 |
| #define | DF_RU_CHAIN 128 |
| #define | DF_ALL 255 |
| #define | DF_HARD_REGS 1024 |
| #define | DF_EQUIV_NOTES 2048 |
| #define | DF_REF_TYPE_NAMES {"def", "use", "mem load", "mem store"} |
| #define | DF_BB_INFO(REFS, BB) (&REFS->bbs[(BB)->index]) |
| #define | DF_REF_REAL_REG(REF) |
| #define | DF_REF_REGNO(REF) REGNO (DF_REF_REAL_REG (REF)) |
| #define | DF_REF_REAL_LOC(REF) |
| #define | DF_REF_REG(REF) ((REF)->reg) |
| #define | DF_REF_LOC(REF) ((REF)->loc) |
| #define | DF_REF_BB(REF) (BLOCK_FOR_INSN ((REF)->insn)) |
| #define | DF_REF_BBNO(REF) (BLOCK_FOR_INSN ((REF)->insn)->index) |
| #define | DF_REF_INSN(REF) ((REF)->insn) |
| #define | DF_REF_INSN_UID(REF) (INSN_UID ((REF)->insn)) |
| #define | DF_REF_TYPE(REF) ((REF)->type) |
| #define | DF_REF_CHAIN(REF) ((REF)->chain) |
| #define | DF_REF_ID(REF) ((REF)->id) |
| #define | DF_REF_FLAGS(REF) ((REF)->flags) |
| #define | DF_REF_REG_DEF_P(REF) (DF_REF_TYPE (REF) == DF_REF_REG_DEF) |
| #define | DF_REF_REG_USE_P(REF) ((REF) && ! DF_REF_REG_DEF_P (REF)) |
| #define | DF_REF_REG_MEM_STORE_P(REF) (DF_REF_TYPE (REF) == DF_REF_REG_MEM_STORE) |
| #define | DF_REF_REG_MEM_LOAD_P(REF) (DF_REF_TYPE (REF) == DF_REF_REG_MEM_LOAD) |
| #define | DF_REF_REG_MEM_P(REF) |
| #define | DF_REGNO_FIRST_DEF(DF, REGNUM) ((DF)->regs[REGNUM].defs ? (DF)->regs[REGNUM].defs->ref : 0) |
| #define | DF_REGNO_LAST_USE(DF, REGNUM) ((DF)->regs[REGNUM].uses ? (DF)->regs[REGNUM].uses->ref : 0) |
| #define | DF_REGNO_FIRST_BB(DF, REGNUM) |
| #define | DF_REGNO_LAST_BB(DF, REGNUM) |
| #define | DF_INSN_LUID(DF, INSN) ((DF)->insns[INSN_UID (INSN)].luid) |
| #define | DF_INSN_DEFS(DF, INSN) ((DF)->insns[INSN_UID (INSN)].defs) |
| #define | DF_INSN_USES(DF, INSN) ((DF)->insns[INSN_UID (INSN)].uses) |
Typedefs | |
| typedef void transfer_function_sbitmap | PARAMS ((int, int *, sbitmap, sbitmap, sbitmap, sbitmap, void *)) |
Enumerations | |
| enum | df_ref_type { DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE, DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE, DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE, DF_REF_REG_DEF, DF_REF_REG_USE, DF_REF_REG_MEM_LOAD, DF_REF_REG_MEM_STORE } |
| enum | df_ref_flags { DF_REF_READ_WRITE = 1, DF_REF_MODE_CHANGE = 2, DF_REF_READ_WRITE = 1, DF_REF_MODE_CHANGE = 2, DF_REF_READ_WRITE = 1, DF_REF_STRIPPED = 2, DF_REF_READ_WRITE = 1, DF_REF_STRIPPED = 2, DF_REF_ARTIFICIAL = 4, DF_REF_AT_TOP = 8, DF_REF_IN_NOTE = 16, DF_REF_MAY_CLOBBER = 32, DF_REF_MUST_CLOBBER = 64, DF_REF_MW_HARDREG = 128, DF_REF_PARTIAL = 256 } |
| enum | df_confluence_op { UNION, INTERSECTION, UNION, INTERSECTION, DF_UNION, DF_INTERSECTION } |
| enum | df_flow_dir { FORWARD, BACKWARD, FORWARD, BACKWARD, DF_FORWARD, DF_BACKWARD, DF_NONE, DF_FORWARD, DF_BACKWARD } |
Functions/Subroutines | |
| struct df *df_init | PARAMS ((void)) |
| int df_analyse | PARAMS ((struct df *, bitmap, int)) |
| void df_finish | PARAMS ((struct df *)) |
| void df_dump | PARAMS ((struct df *, int, FILE *)) |
| void df_insn_modify | PARAMS ((struct df *, basic_block, rtx)) |
| rtx df_pattern_emit_before | PARAMS ((struct df *, rtx, basic_block, rtx)) |
| rtx df_insn_move_before | PARAMS ((struct df *, basic_block, rtx, basic_block, rtx)) |
| int df_reg_replace | PARAMS ((struct df *, bitmap, rtx, rtx)) |
| int df_ref_reg_replace | PARAMS ((struct df *, struct ref *, rtx, rtx)) |
| int df_ref_remove | PARAMS ((struct df *, struct ref *)) |
| int df_insn_reg_replace | PARAMS ((struct df *, basic_block, rtx, rtx, rtx)) |
| struct ref *df_bb_def_use_swap | PARAMS ((struct df *, basic_block, rtx, rtx, unsigned int)) |
| basic_block df_regno_bb | PARAMS ((struct df *, unsigned int)) |
| int df_reg_lifetime | PARAMS ((struct df *, rtx)) |
| int df_insn_regno_def_p | PARAMS ((struct df *, basic_block, rtx, unsigned int)) |
| int df_insn_dominates_uses_p | PARAMS ((struct df *, basic_block, rtx, bitmap)) |
| int df_bb_regs_lives_compare | PARAMS ((struct df *, basic_block, rtx, rtx)) |
| void debug_df_insn | PARAMS ((rtx)) |
| void debug_df_regno | PARAMS ((unsigned int)) |
| void debug_df_ref | PARAMS ((struct ref *)) |
| void debug_df_chain | PARAMS ((struct df_link *)) |
| void df_insn_debug | PARAMS ((struct df *, rtx, FILE *)) |
| void iterative_dataflow_sbitmap | PARAMS ((sbitmap *, sbitmap *, sbitmap *, sbitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_sbitmap, int *, void *)) |
| void iterative_dataflow_bitmap | PARAMS ((bitmap *, bitmap *, bitmap *, bitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_bitmap, int *, void *)) |
Definition at line 170 of file df.h.
Referenced by add_deps_for_def(), add_deps_for_use(), build_inter_loop_deps(), df_analyse_1(), df_analyze_1(), df_bb_du_chain_create(), df_bb_lr_local_compute(), df_bb_rd_local_compute(), df_bb_reg_info_compute(), df_bb_reg_live_end_p(), df_bb_reg_live_start_p(), df_bb_ru_local_compute(), df_bb_ud_chain_create(), df_bitmaps_alloc(), df_bitmaps_free(), and df_dump().
| #define DF_DU_CHAIN 8 |
Definition at line 26 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_chain_alloc(), df_chain_bb_reset(), df_chain_create_bb_process_use(), df_chain_insn_reset(), df_chains_dump(), df_dump(), see_initialize_data_structures(), and web_main().
| #define DF_EQUIV_NOTES 2048 |
Definition at line 33 of file df.h.
Referenced by df_insn_refs_record(), find_defs(), iv_analysis_loop_init(), move_loop_invariants(), see_initialize_data_structures(), and web_main().
| #define DF_HARD_REGS 1024 |
Definition at line 32 of file df.h.
Referenced by df_bb_rd_local_compute(), df_bb_refs_record(), df_insn_refs_record(), df_rd_local_compute(), df_record_entry_block_defs(), df_record_exit_block_uses(), df_ref_record(), find_defs(), iv_analysis_loop_init(), move_loop_invariants(), reg_alloc(), see_initialize_data_structures(), ssa_const_prop(), and ssa_fast_dce().
Definition at line 223 of file df.h.
Referenced by check_df(), connect_rmw_web_parts(), create_insn_info(), defs_to_undefined(), defs_to_varying(), detect_webs_set_in_cond_jump(), df_find_def(), moves_to_webs(), remember_move(), union_defs(), and update_regnos_mentioned().
| #define DF_INSN_LUID | ( | DF, | |||
| INSN | ) | ((DF)->insns[INSN_UID (INSN)].luid) |
Definition at line 222 of file df.h.
Referenced by df_bb_luids_set(), df_bb_refs_record(), df_bb_regs_lives_compare(), df_chains_dump(), df_dump(), df_insn_debug(), df_insn_debug_regno(), df_ref_debug(), iv_get_reaching_def(), see_analyze_merged_def_local_prop(), see_analyze_use_local_prop(), see_set_prop_merged_def(), see_set_prop_unmerged_def(), see_set_prop_unmerged_use(), and see_store_reference_and_extension().
| #define DF_INSN_USES | ( | DF, | |||
| INSN | ) | ((DF)->insns[INSN_UID (INSN)].uses) |
Definition at line 224 of file df.h.
Referenced by check_dependencies(), check_df(), create_insn_info(), df_reg_used(), moves_to_webs(), record_uses(), remember_move(), and union_defs().
| #define DF_LR 4 |
Definition at line 25 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_bitmaps_alloc(), df_bitmaps_free(), df_dump(), df_get_live_in(), df_get_live_out(), df_ri_compute(), df_ur_local_finalize(), and df_urec_local_finalize().
| #define DF_RD 1 |
Definition at line 23 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_bitmaps_alloc(), df_bitmaps_free(), df_chain_finalize(), and df_dump().
| #define DF_RD_CHAIN 64 |
Definition at line 29 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_dump(), reg_alloc(), ssa_const_prop(), and ssa_fast_dce().
| #define DF_REF_BB | ( | REF | ) | (BLOCK_FOR_INSN ((REF)->insn)) |
Definition at line 186 of file df.h.
Referenced by check_dependencies(), determine_web_costs(), df_bb_regno_first_def_find(), df_bb_regno_last_def_find(), df_bb_regno_last_use_find(), df_insn_move_before(), df_ref_create_structure(), df_ref_reg_replace(), df_ref_remove(), df_regno_bb(), emit_colors(), invariant_for_use(), iv_get_reaching_def(), latch_dominating_def(), and record_uses().
| #define DF_REF_BBNO | ( | REF | ) | (BLOCK_FOR_INSN ((REF)->insn)->index) |
Definition at line 187 of file df.h.
Referenced by df_chain_dump(), df_chains_dump(), df_def_dominates_uses_p(), df_dump(), df_insn_debug(), df_insn_debug_regno(), df_insn_dominates_uses_p(), df_insn_uid_debug(), df_ref_debug(), and df_refs_reg_replace().
| #define DF_REF_CHAIN | ( | REF | ) | ((REF)->chain) |
Definition at line 191 of file df.h.
Referenced by add_deps_for_def(), check_dependencies(), df_bb_du_chain_create(), df_bb_single_def_use_insn_find(), df_bb_ud_chain_create(), df_chain_alloc(), df_chain_create(), df_chain_unlink(), df_chains_dump(), df_def_dominates_all_uses_p(), df_def_dominates_uses_p(), df_def_unlink(), df_dump(), df_ref_create(), df_ref_create_structure(), df_ref_debug(), df_refs_chain_dump(), df_reg_chain_unlink(), df_use_unlink(), invariant_for_use(), iv_get_reaching_def(), record_uses(), and union_defs().
| #define DF_REF_FLAGS | ( | REF | ) | ((REF)->flags) |
Definition at line 193 of file df.h.
Referenced by df_chain_create_bb(), df_chain_create_bb_process_use(), df_create_unused_note(), df_lr_bb_local_compute(), df_rd_bb_local_compute_process_def(), df_ref_create(), df_ref_create_structure(), df_ref_debug(), df_ref_remove(), df_ri_bb_compute(), df_ru_bb_local_compute_process_def(), df_ru_bb_local_compute_process_use(), df_ur_bb_local_compute(), df_urec_bb_local_compute(), and parts_to_webs_1().
| #define DF_REF_ID | ( | REF | ) | ((REF)->id) |
Definition at line 192 of file df.h.
Referenced by build_web_parts_and_conflicts(), check_df(), connect_rmw_web_parts(), detect_web_parts_to_rebuild(), detect_webs_set_in_cond_jump(), df_bb_du_chain_create(), df_bb_rd_local_compute(), df_bb_reg_def_chain_create(), df_bb_reg_use_chain_create(), df_bb_ru_local_compute(), df_bb_ud_chain_create(), df_chain_create_bb(), df_chain_dump(), df_chain_dump_regno(), df_def_unlink(), df_rd_bb_local_compute_process_def(), df_rd_local_compute(), df_ref_create(), df_ref_create_structure(), df_ref_debug(), df_ref_remove(), df_refs_chain_dump(), df_reg_chain_unlink(), df_regs_chain_dump(), df_reorganize_refs(), df_ru_bb_local_compute_process_use(), df_use_unlink(), extended_coalesce_2(), handle_asm_insn(), init_web_parts(), insert_stores(), latch_dominating_def(), live_in_edge(), live_out_1(), livethrough_conflicts_bb(), mark_refs_for_checking(), moves_to_webs(), parts_to_webs_1(), ra_build_realloc(), reloads_to_loads(), rewrite_program2(), and union_defs().
| #define DF_REF_INSN | ( | REF | ) | ((REF)->insn) |
Definition at line 188 of file df.h.
Referenced by add_deps_for_def(), build_web_parts_and_conflicts(), connect_rmw_web_parts(), delete_useless_defs(), detect_remat_webs(), df_bb_def_use_swap(), df_bb_regs_lives_compare(), df_bb_single_def_use_insn_find(), df_chain_dump(), df_chains_dump(), df_dump(), df_ref_create(), df_ref_create_structure(), df_ref_debug(), df_ref_reg_replace(), df_refs_reg_replace(), follow_def_use_chains(), get_biv_step_1(), iv_analyze_def(), iv_get_reaching_def(), record_uses(), replace_ref(), rewrite_program(), see_handle_relevant_defs(), see_handle_relevant_uses(), see_update_defs_relevancy(), see_update_uses_relevancy(), ssa_ccp_substitute_constants(), ssa_fast_dce(), and union_defs().
| #define DF_REF_INSN_UID | ( | REF | ) | (INSN_UID ((REF)->insn)) |
Definition at line 189 of file df.h.
Referenced by detect_spill_temps(), df_chain_dump(), df_chains_dump(), df_dump(), df_ref_remove(), and df_refs_process().
| #define DF_REF_LOC | ( | REF | ) | ((REF)->loc) |
Definition at line 184 of file df.h.
Referenced by df_create_unused_note(), df_ref_create(), df_ref_create_structure(), df_ref_reg_replace(), df_ri_bb_compute(), df_set_dead_notes_for_mw(), df_set_unused_notes_for_mw(), and record_uses().
| #define DF_REF_REAL_LOC | ( | REF | ) |
| #define DF_REF_REAL_REG | ( | REF | ) |
Value:
Definition at line 174 of file df.h.
Referenced by connect_rmw_web_parts(), df_find_def(), df_find_use(), emit_colors(), entry_register(), handle_asm_insn(), replace_ref(), see_handle_relevant_defs(), see_handle_relevant_uses(), see_update_defs_relevancy(), see_update_uses_relevancy(), undef_to_bitmap(), and union_defs().
| #define DF_REF_REG | ( | REF | ) | ((REF)->reg) |
Definition at line 183 of file df.h.
Referenced by build_web_parts_and_conflicts(), df_find_def(), df_lr_bb_local_compute(), df_ref_create(), df_ref_create_structure(), df_ref_reg_replace(), df_reg_used(), handle_asm_insn(), insert_stores(), iv_analyze_def(), live_out_1(), livethrough_conflicts_bb(), parts_to_webs_1(), rewrite_program(), and union_defs().
| #define DF_REF_REG_DEF_P | ( | REF | ) | (DF_REF_TYPE (REF) == DF_REF_REG_DEF) |
Definition at line 197 of file df.h.
Referenced by df_chain_dump(), df_chain_dump_regno(), df_ref_debug(), df_ref_remove(), df_refs_chain_dump(), df_regs_chain_dump(), and init_webs_defs_uses().
| #define DF_REF_REG_MEM_LOAD_P | ( | REF | ) | (DF_REF_TYPE (REF) == DF_REF_REG_MEM_LOAD) |
| #define DF_REF_REG_MEM_P | ( | REF | ) |
Value:
(DF_REF_REG_MEM_STORE_P (REF) \ || DF_REF_REG_MEM_LOAD_P (REF))
| #define DF_REF_REG_MEM_STORE_P | ( | REF | ) | (DF_REF_TYPE (REF) == DF_REF_REG_MEM_STORE) |
| #define DF_REF_REG_USE_P | ( | REF | ) | ((REF) && ! DF_REF_REG_DEF_P (REF)) |
| #define DF_REF_REGNO | ( | REF | ) | REGNO (DF_REF_REAL_REG (REF)) |
Definition at line 176 of file df.h.
Referenced by add_deps_for_def(), add_deps_for_use(), conflicts_between_webs(), create_insn_info(), defs_to_undefined(), defs_to_varying(), detect_webs_set_in_cond_jump(), df_bb_du_chain_create(), df_bb_insn_regno_first_def_find(), df_bb_insn_regno_last_use_find(), df_bb_lr_local_compute(), df_bb_rd_local_compute(), df_bb_reg_def_chain_create(), df_bb_reg_info_compute(), df_bb_reg_use_chain_create(), df_bb_regno_first_def_find(), df_bb_regno_last_def_find(), df_bb_regno_last_use_find(), df_bb_ru_local_compute(), df_bb_ud_chain_create(), df_chain_create_bb(), df_chain_create_bb_process_use(), df_chain_dump_regno(), df_chains_dump(), df_create_unused_note(), df_def_unlink(), df_dump(), df_insn_regno_def_p(), df_lr_bb_local_compute(), df_mws_dump(), df_rd_bb_local_compute_process_def(), df_ref_create_structure(), df_ref_debug(), df_refs_chain_dump(), df_reg_chain_unlink(), df_regs_chain_dump(), df_ri_bb_compute(), df_ru_bb_local_compute_process_def(), df_ru_bb_local_compute_process_use(), df_set_dead_notes_for_mw(), df_set_unused_notes_for_mw(), df_ur_bb_local_compute(), df_urec_bb_local_compute(), df_use_unlink(), live_out(), parts_to_webs_1(), remember_move(), and update_regnos_mentioned().
| #define DF_REF_TYPE | ( | REF | ) | ((REF)->type) |
Definition at line 190 of file df.h.
Referenced by df_ref_create(), df_ref_create_structure(), and df_reg_chain_unlink().
| #define DF_REF_TYPE_NAMES {"def", "use", "mem load", "mem store"} |
| #define DF_REG_INFO 32 |
Definition at line 28 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_dump(), ssa_const_prop(), and ssa_fast_dce().
| #define DF_REGNO_FIRST_BB | ( | DF, | |||
| REGNUM | ) |
Value:
(DF_REGNO_FIRST_DEF (DF, REGNUM) \ ? DF_REF_BB (DF_REGNO_FIRST_DEF (DF, REGNUM)) : 0)
| #define DF_REGNO_LAST_BB | ( | DF, | |||
| REGNUM | ) |
Value:
(DF_REGNO_LAST_USE (DF, REGNUM) \ ? DF_REF_BB (DF_REGNO_LAST_USE (DF, REGNUM)) : 0)
| #define DF_RU 2 |
Definition at line 24 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_bitmaps_alloc(), df_bitmaps_free(), and df_dump().
| #define DF_RU_CHAIN 128 |
Definition at line 30 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_dump(), reg_alloc(), ssa_const_prop(), and ssa_fast_dce().
| #define DF_UD_CHAIN 16 |
Definition at line 27 of file df.h.
Referenced by df_analyse_1(), df_analyze_1(), df_analyze_subcfg(), df_chain_alloc(), df_chain_bb_reset(), df_chain_create_bb_process_use(), df_chain_insn_reset(), df_chains_dump(), df_dump(), find_defs(), iv_analysis_loop_init(), move_loop_invariants(), see_initialize_data_structures(), and web_main().
| enum df_confluence_op |
| enum df_flow_dir |
| enum df_ref_flags |
| enum df_ref_type |
| void iterative_dataflow_bitmap PARAMS | ( | (bitmap *, bitmap *, bitmap *, bitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_bitmap, int *, void *) | ) |
| void iterative_dataflow_sbitmap PARAMS | ( | (sbitmap *, sbitmap *, sbitmap *, sbitmap *, bitmap, enum df_flow_dir, enum df_confluence_op, transfer_function_sbitmap, int *, void *) | ) |
| void debug_df_regno PARAMS | ( | (unsigned int) | ) |
| int df_bb_regs_lives_compare PARAMS | ( | (struct df *, basic_block, rtx, rtx) | ) |
| int df_insn_dominates_uses_p PARAMS | ( | (struct df *, basic_block, rtx, bitmap) | ) |
| int df_insn_regno_def_p PARAMS | ( | (struct df *, basic_block, rtx, unsigned int) | ) |
| basic_block df_regno_bb PARAMS | ( | (struct df *, unsigned int) | ) |
| rtx df_insn_move_before PARAMS | ( | (struct df *, basic_block, rtx, basic_block, rtx) | ) |
| void df_insn_modify PARAMS | ( | (struct df *, basic_block, rtx) | ) |
Definition at line 77 of file cplus-dem.c.
1.5.6