#include "varray.h"#include "obstack.h"#include "hard-reg-set.h"#include "basic-block.h"

Go to the source code of this file.
Data Types | |
| type | reg_info_def |
Defines | |
| #define | REG_BYTES(R) mode_size[(int) GET_MODE (R)] |
| #define | REGMODE_NATURAL_SIZE(MODE) UNITS_PER_WORD |
| #define | SMALL_REGISTER_CLASSES 0 |
| #define | REG_N_REFS(N) (VEC_index (reg_info_p, reg_n_info, N)->refs) |
| #define | REG_FREQ(N) (VEC_index (reg_info_p, reg_n_info, N)->freq) |
| #define | REG_FREQ_MAX 1000 |
| #define | REG_FREQ_FROM_BB(bb) |
| #define | REG_N_SETS(N) (VEC_index (reg_info_p, reg_n_info, N)->sets) |
| #define | REG_N_DEATHS(N) (VEC_index (reg_info_p, reg_n_info, N)->deaths) |
| #define | PSEUDO_REGNO_SIZE(N) |
| #define | PSEUDO_REGNO_BYTES(N) GET_MODE_SIZE (PSEUDO_REGNO_MODE (N)) |
| #define | PSEUDO_REGNO_MODE(N) GET_MODE (regno_reg_rtx[N]) |
| #define | REG_N_CALLS_CROSSED(N) (VEC_index (reg_info_p, reg_n_info, N)->calls_crossed) |
| #define | REG_N_THROWING_CALLS_CROSSED(N) (VEC_index (reg_info_p, reg_n_info, N)->throw_calls_crossed) |
| #define | REG_LIVE_LENGTH(N) (VEC_index (reg_info_p, reg_n_info, N)->live_length) |
| #define | REGNO_FIRST_UID(N) (VEC_index (reg_info_p, reg_n_info, N)->first_uid) |
| #define | REGNO_LAST_UID(N) (VEC_index (reg_info_p, reg_n_info, N)->last_uid) |
| #define | CALLER_SAVE_PROFITABLE(REFS, CALLS) (4 * (CALLS) < (REFS)) |
| #define | CLASS_LIKELY_SPILLED_P(CLASS) (reg_class_size[(int) (CLASS)] == 1) |
| #define | HARD_REGNO_CALLER_SAVE_MODE(REGNO, NREGS, MODE) choose_hard_reg_mode (REGNO, NREGS, false) |
| #define | HARD_REGNO_CALL_PART_CLOBBERED(REGNO, MODE) 0 |
Typedefs | |
| typedef struct reg_info_def | reg_info |
| typedef reg_info * | reg_info_p |
Functions/Subroutines | |
| DEF_VEC_P (reg_info_p) | |
| DEF_VEC_ALLOC_P (reg_info_p, heap) | |
| VEC (reg_info_p, heap)*reg_n_info | |
| void | allocate_reg_info (size_t, int, int) |
Variables | |
| int | max_regno |
| short * | reg_renumber |
| char | regs_ever_live [FIRST_PSEUDO_REGISTER] |
| char | regs_asm_clobbered [FIRST_PSEUDO_REGISTER] |
| bool | have_regs_of_mode [MAX_MACHINE_MODE] |
| enum machine_mode | reg_raw_mode [FIRST_PSEUDO_REGISTER] |
| rtx | regs_may_share |
| int | caller_save_needed |
| unsigned char | hard_regno_nregs [FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE] |
| #define CALLER_SAVE_PROFITABLE | ( | REFS, | |||
| CALLS | ) | (4 * (CALLS) < (REFS)) |
| #define CLASS_LIKELY_SPILLED_P | ( | CLASS | ) | (reg_class_size[(int) (CLASS)] == 1) |
| #define HARD_REGNO_CALLER_SAVE_MODE | ( | REGNO, | |||
| NREGS, | |||||
| MODE | ) | choose_hard_reg_mode (REGNO, NREGS, false) |
| #define PSEUDO_REGNO_BYTES | ( | N | ) | GET_MODE_SIZE (PSEUDO_REGNO_MODE (N)) |
| #define PSEUDO_REGNO_SIZE | ( | N | ) |
Value:
((GET_MODE_SIZE (PSEUDO_REGNO_MODE (N)) + UNITS_PER_WORD - 1) \ / UNITS_PER_WORD)
| #define REG_FREQ | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->freq) |
| #define REG_FREQ_FROM_BB | ( | bb | ) |
Value:
(optimize_size \ || (flag_branch_probabilities \ && !ENTRY_BLOCK_PTR->count) \ ? REG_FREQ_MAX \ : ((bb)->frequency * REG_FREQ_MAX / BB_FREQ_MAX)\ ? ((bb)->frequency * REG_FREQ_MAX / BB_FREQ_MAX)\ : 1)
| #define REG_LIVE_LENGTH | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->live_length) |
| #define REG_N_CALLS_CROSSED | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->calls_crossed) |
| #define REG_N_DEATHS | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->deaths) |
| #define REG_N_REFS | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->refs) |
| #define REG_N_SETS | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->sets) |
| #define REG_N_THROWING_CALLS_CROSSED | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->throw_calls_crossed) |
| #define REGNO_FIRST_UID | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->first_uid) |
| #define REGNO_LAST_UID | ( | N | ) | (VEC_index (reg_info_p, reg_n_info, N)->last_uid) |
| typedef struct reg_info_def reg_info |
| typedef reg_info* reg_info_p |
Definition at line 2176 of file regclass.c.
References addr(), reg_pref::altclass, char, free(), i, max, MAX_REGNO_REG_SET, memset, MIN, min, NO_REGS, reg_pref::prefclass, REG_BASIC_BLOCK, REG_BLOCK_UNKNOWN, reg_n_info, reg_renumber, short, VARRAY_GROW, VARRAY_REG, VARRAY_REG_INIT, VEC_address, VEC_alloc, VEC_length, VEC_replace, VEC_safe_grow, VEC_truncate, xcalloc(), xmalloc(), XNEWVEC, and xrealloc().
Referenced by allocate_reg_life_data(), branch_prob(), bypass_jumps(), dead_or_predicable(), df_ri_alloc(), emit_colors(), gcse_main(), gmalloc(), if_convert(), reg_alloc(), reg_scan(), reg_scan_update(), rest_of_compilation(), rest_of_handle_local_alloc(), rest_of_handle_old_regalloc(), rest_of_handle_sms(), rtl_find_values_to_profile(), rtl_value_profile_transformations(), and setup_renumber().
| DEF_VEC_ALLOC_P | ( | reg_info_p | , | |
| heap | ||||
| ) |
| DEF_VEC_P | ( | reg_info_p | ) |
| VEC | ( | reg_info_p | , | |
| heap | ||||
| ) |
Definition at line 185 of file flow.c.
References reg_cond_life_info::condition, reg_cond_life_info::orig_condition, and reg_cond_life_info::stores.
| unsigned char hard_regno_nregs[FIRST_PSEUDO_REGISTER][MAX_MACHINE_MODE] |
Definition at line 267 of file regclass.c.
Referenced by add_stored_regs(), aggregate_value_p(), allocate_reload_reg(), assign_parm_setup_block(), assign_reg_reg_set(), can_change_dest_mode(), choose_reload_regs(), clear_dead_regs(), clear_reload_reg_in_use(), combine_regs(), combine_reloads(), compute_use_by_pseudos(), copy_value(), copyprop_hardreg_forward_1(), count_or_remove_death_notes_bb(), count_pseudo(), count_spilled_pseudo(), covers_regno_no_parallel_p(), cse_insn(), cselib_invalidate_regno(), cselib_lookup(), cselib_record_set(), dead_or_set_p(), decl_conflicts_with_clobbers_p(), decl_overlaps_hard_reg_set_p(), decompose(), delete_output_reload(), delete_prior_computation(), df_insn_refs_record(), df_lr_bb_local_compute(), df_mark_reg(), df_ref_record(), df_urec_mark_reg_change(), distribute_notes(), dump_def_use_chain(), emit_note_insn_var_location(), emit_reload_insns(), exp_equiv_p(), find_btr_reference(), find_dummy_reload(), find_dying_inputs(), find_equiv_reg(), find_free_reg(), find_oldest_value_reg(), find_reg(), find_reg_fusage(), find_regno_fusage(), find_regno_note(), find_reload_regs(), find_reloads(), forget_old_reloads_1(), free_for_value_p(), get_last_value_validate(), global_alloc(), hard_reg_set_here_p(), insert(), insert_one_insn(), insert_restore(), insert_save(), insn_dead_p(), invalidate(), invalidate_for_call(), kill_value(), kill_value_regno(), likely_spilled_retval_1(), likely_spilled_retval_p(), make_decl_rtl(), mark_effect(), mark_flags_life_zones(), mark_home_live(), mark_killed_regs(), mark_life(), mark_referenced_regs(), mark_referenced_resources(), mark_reg(), mark_reg_conflicts(), mark_reg_death(), mark_reg_gr_used_mask(), mark_reg_live_nc(), mark_reg_store(), mark_reload_reg_in_use(), mark_set_1(), mark_set_regs(), mark_set_resources(), mark_target_live_regs(), mark_used_reg(), mark_used_regs_combine(), maybe_mode_change(), mention_regs(), mentions_nonequal_regs(), move2add_note_store(), move_deaths(), note_btr_set(), note_local_live(), note_sets(), operands_match_p(), post_mark_life(), push_reload(), read_complex_part(), record_dead_and_set_regs(), record_set(), record_value_for_reg(), refers_to_regno_p(), reg_becomes_live(), reg_bitfield_target_p(), reg_dead_at_p(), reg_dead_at_p_1(), reg_dies(), reg_fits_class_p(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), regno_clobbered_p(), regrename_optimize(), reload_adjust_reg_for_mode(), reload_adjust_reg_for_temp(), reload_combine(), reload_combine_note_store(), reload_combine_note_use(), reload_cse_move2add(), reload_inner_reg_of_subreg(), reload_reg_free_for_value_p(), rs6000_memory_move_cost(), rs6000_register_move_cost(), rs6000_split_multireg_move(), rtx_equiv_p(), save_call_clobbered_regs(), scan_rtx_reg(), sched_analyze_1(), sched_analyze_2(), sched_analyze_reg(), set_preference(), set_value_regno(), setup_save_areas(), spill_hard_reg(), subreg_offset_representable_p(), subreg_regno_offset(), update_live_status(), update_table_tick(), use_crosses_set_p(), and write_complex_part().
| bool have_regs_of_mode[MAX_MACHINE_MODE] |
| int max_regno |
Definition at line 192 of file flow.c.
Referenced by allocate_reg_life_data(), build_web_parts_and_conflicts(), choose_reload_regs(), dead_or_predicable(), df_ri_alloc(), df_urec_local_compute(), dump_conflicts(), dump_flow_info(), dump_global_regs(), dump_local_alloc(), dump_regclass(), emit_colors(), expand_inline_function(), find_reg(), finish_spills(), global_alloc(), if_convert(), local_alloc(), make_accurate_live_analysis(), modify_reg_pav(), reg_alloc(), reload(), reload_as_needed(), renumbered_reg_set_to_hard_reg_set(), rest_of_compilation(), rest_of_handle_local_alloc(), rest_of_handle_old_regalloc(), rest_of_handle_sms(), setup_renumber(), setup_save_areas(), spill_hard_reg(), subst_reloads(), update_equiv_regs(), update_life_info(), and v850_reorg().
| enum machine_mode reg_raw_mode[FIRST_PSEUDO_REGISTER] |
Definition at line 204 of file regclass.c.
Referenced by apply_args_size(), apply_result_size(), cselib_process_insn(), distribute_notes(), gen_rtx_REG(), inherit_piecemeal_p(), init_emit_once(), init_reg_modes_once(), parts_to_webs(), safe_insert_insn_on_edge(), and sched_analyze().
| short* reg_renumber |
Definition at line 215 of file local-alloc.c.
| char regs_asm_clobbered[FIRST_PSEUDO_REGISTER] |
Definition at line 183 of file final.c.
Referenced by df_lr_bb_local_compute(), df_lr_local_compute(), global_alloc(), life_analysis(), and mark_set_1().
| char regs_ever_live[FIRST_PSEUDO_REGISTER] |
Definition at line 213 of file flow.c.
Referenced by global_alloc(), loop_optimize(), and move_movables().
1.5.6