#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "machmode.h"#include "hard-reg-set.h"#include "rtl.h"#include "tm_p.h"#include "obstack.h"#include "insn-config.h"#include "flags.h"#include "function.h"#include "expr.h"#include "optabs.h"#include "regs.h"#include "basic-block.h"#include "reload.h"#include "recog.h"#include "output.h"#include "cselib.h"#include "real.h"#include "toplev.h"#include "except.h"#include "tree.h"#include "timevar.h"#include "tree-pass.h"

Go to the source code of this file.
| #define LABEL_LIVE | ( | LABEL | ) | (label_live[CODE_LABEL_NUMBER (LABEL) - min_labelno]) |
Definition at line 691 of file postreload.c.
| #define MODES_OK_FOR_MOVE2ADD | ( | OUTMODE, | |||
| INMODE | ) |
Value:
(GET_MODE_SIZE (OUTMODE) == GET_MODE_SIZE (INMODE) \ || (GET_MODE_SIZE (OUTMODE) <= GET_MODE_SIZE (INMODE) \ && TRULY_NOOP_TRUNCATION (GET_MODE_BITSIZE (OUTMODE), \ GET_MODE_BITSIZE (INMODE))))
Definition at line 1186 of file postreload.c.
| #define RELOAD_COMBINE_MAX_USES 6 |
Definition at line 660 of file postreload.c.
Definition at line 1429 of file postreload.c.
References GET_CODE, GET_MODE, hard_regno_nregs, HOST_WIDE_INT, i, INTVAL, invalidate(), MEM_P, mode, MODES_OK_FOR_MOVE2ADD, move2add_last_label_luid, move2add_luid, offset, PLUS, REG, reg_base_reg, reg_mode, reg_offset, REG_P, reg_set_luid, REGNO, SCALAR_INT_MODE_P, SET, SET_DEST, SET_SRC, src, SUBREG_BYTE, SUBREG_REG, subreg_regno_offset(), trunc_int_for_mode(), and XEXP.
Definition at line 695 of file postreload.c.
References apply_change_group(), BARRIER_P, base, BB_HEAD, CALL_INSN_FUNCTION_USAGE, CALL_P, call_used_regs, CLEAR_HARD_REG_SET, compute_use_by_pseudos(), condjump_in_parallel_p(), condjump_p(), const0_rtx, COPY_HARD_REG_SET, copy_rtx(), delete_insn(), double_reg_address_ok, FIRST_PSEUDO_REGISTER, fixed_regs, FOR_EACH_BB_REVERSE, free(), GEN_INT, gen_rtx_PLUS, gen_rtx_REG(), GET_CODE, get_first_label_num(), get_last_insn(), GET_MODE, basic_block_def::global_live_at_start, HARD_REG_SET, hard_regno_nregs, i, INDEX_REG_CLASS, reg_use::insn, INSN_P, INTVAL, IOR_HARD_REG_SET, JUMP_LABEL, JUMP_P, LABEL_LIVE, LABEL_P, max_label_num(), min_labelno, NO_REGS, note_stores(), NULL, NULL_RTX, offset, PATTERN, PLUS, prev, PREV_INSN, prev_nonnote_insn(), r, reg_class_contents, REG_EQUAL, REG_EQUIV, REG_INC, REG_NOTE_KIND, REG_NOTES, REG_P, REG_SET_TO_HARD_REG_SET, reg_state, REGNO, RELOAD_COMBINE_MAX_USES, reload_combine_note_store(), reload_combine_note_use(), reload_combine_ruid, RETURN, rtx_equal_p(), SET_DEST, SET_SRC, single_set, store_ruid, TEST_HARD_REG_BIT, use_index, use_ruid, reg_use::usep, validate_change(), XEXP, and XNEWVEC.
Definition at line 991 of file postreload.c.
References GET_CODE, GET_MODE, hard_regno_nregs, i, mode, REG_P, reg_state, REGNO, RELOAD_COMBINE_MAX_USES, reload_combine_ruid, SET, SET_DEST, SUBREG_BYTE, SUBREG_REG, and subreg_regno_offset().
Definition at line 1037 of file postreload.c.
References const0_rtx, FIRST_PSEUDO_REGISTER, gcc_assert, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, hard_regno_nregs, i, nregs, offset, PLUS, REG, REG_FUNCTION_VALUE_P, REG_P, reg_state, REGNO, RELOAD_COMBINE_MAX_USES, reload_combine_note_use(), reload_combine_ruid, rtx_equal_p(), SET, SET_DEST, SET_SRC, USE, use_index, x, XEXP, XVECEXP, and XVECLEN.
Definition at line 1193 of file postreload.c.
References any_condjump_p(), CALL_P, call_used_regs, const0_rtx, COSTS_N_INSNS, delete_insn(), FIRST_PSEUDO_REGISTER, fis_get_condition(), gen_int_mode(), gen_rtx_PLUS, gen_rtx_REG(), gen_rtx_SET, gen_rtx_STRICT_LOW_PART, GET_CLASS_NARROWEST_MODE, GET_CODE, GET_MODE, GET_MODE_MASK, GET_MODE_WIDER_MODE, hard_regno_nregs, have_add2_insn(), have_insn_for(), HOST_WIDE_INT, i, reg_use::insn, INSN_P, INTVAL, LABEL_P, MODE_INT, MODES_OK_FOR_MOVE2ADD, move2add_last_label_luid, move2add_luid, move2add_note_store(), NE, next, NEXT_INSN, next_nonnote_insn(), note_stores(), NULL, NULL_RTX, PATTERN, PLUS, reg_base_reg, REG_INC, reg_mode, REG_NOTE_KIND, REG_NOTES, reg_offset, REG_P, reg_set_luid, reg_set_p(), REGNO, rtx_cost(), SCALAR_INT_MODE_P, SET, SET_DEST, SET_SRC, single_set, src, trunc_int_for_mode(), validate_change(), and XEXP.
| static int reload_cse_noop_set_p | ( | rtx | set | ) | [static] |
Definition at line 77 of file postreload.c.
References cselib_reg_set_mode(), GET_MODE, rtx_equal_for_cselib_p(), SET_DEST, and SET_SRC.
Definition at line 66 of file postreload.c.
References first, flag_expensive_optimizations, reload_combine(), reload_cse_move2add(), and reload_cse_regs_1().
Definition at line 194 of file postreload.c.
References cselib_finish(), cselib_init(), cselib_process_insn(), end_alias_analysis(), gen_rtx_REG(), init_alias_analysis(), reg_use::insn, INSN_P, NEXT_INSN, and reload_cse_simplify().
Definition at line 87 of file postreload.c.
References apply_change_group(), asm_noperands(), count, cselib_invalidate_rtx(), delete_insn_and_edges(), GET_CODE, i, NULL_RTX, PATTERN, REG_FUNCTION_VALUE_P, REG_P, reload_cse_noop_set_p(), reload_cse_simplify_operands(), reload_cse_simplify_set(), SET, SET_DEST, XEXP, XVECEXP, and XVECLEN.
Definition at line 365 of file postreload.c.
References alloca, apply_change_group(), BITS_PER_WORD, c, CANNOT_CHANGE_MODE_CLASS, CLEAR_HARD_REG_SET, CONSTANT_P, constrain_operands(), CONSTRAINT_LEN, cselib_lookup(), cselib_val, extract_insn(), fatal_insn_not_found, FIRST_PSEUDO_REGISTER, gen_rtx_fmt_e(), gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, HARD_REG_SET, i, int, LABEL_P, LOAD_EXTEND_OP, MAX_RECOG_OPERANDS, MEM_P, memset, mode, p, PUT_MODE, REG_CLASS_FROM_CONSTRAINT, reg_class_subunion, reg_fits_class_p(), REG_P, REGNO, REGNO_REG_CLASS, reload_cse_simplify_operands(), rtx_cost(), SET, SET_DEST, SET_HARD_REG_BIT, SET_SRC, SIGN_EXTEND, single_set, TEST_HARD_REG_BIT, tmp, true_regnum(), UNKNOWN, validate_change(), which_alternative, and word_mode.
Definition at line 222 of file postreload.c.
References BITS_PER_WORD, CANNOT_CHANGE_MODE_CLASS, CONSTANT_P, copy_rtx(), cselib_lookup(), cselib_val, extend_op(), gcc_unreachable, GEN_INT, gen_rtx_fmt_e(), gen_rtx_REG(), GET_CODE, GET_MODE, GET_MODE_BITSIZE, GET_MODE_MASK, HOST_WIDE_INT, INTVAL, LOAD_EXTEND_OP, MEM_P, MEMORY_MOVE_COST, ORIGINAL_REGNO, references_value_p(), REG_P, REGISTER_MOVE_COST, REGNO, REGNO_REG_CLASS, rtx_cost(), SET, SET_DEST, SET_SRC, side_effects_p(), SIGN_EXTEND, src, true_regnum(), trunc_int_for_mode(), UNKNOWN, val, validate_change(), and word_mode.
| static unsigned int rest_of_handle_postreload | ( | void | ) | [static] |
Definition at line 1576 of file postreload.c.
References flag_non_call_exceptions, get_insns(), purge_all_dead_edges(), and reload_cse_regs().
int move2add_last_label_luid [static] |
Definition at line 1182 of file postreload.c.
int move2add_luid [static] |
Definition at line 1178 of file postreload.c.
Definition at line 681 of file postreload.c.
Initial value:
{
"postreload",
gate_handle_postreload,
rest_of_handle_postreload,
NULL,
NULL,
0,
TV_RELOAD_CSE_REGS,
0,
0,
0,
0,
TODO_dump_func,
'o'
}
Definition at line 1587 of file postreload.c.
Referenced by init_optimization_passes().
int reg_base_reg[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 1172 of file postreload.c.
enum machine_mode reg_mode[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 1173 of file postreload.c.
HOST_WIDE_INT reg_offset[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 1171 of file postreload.c.
int reg_set_luid[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 1164 of file postreload.c.
struct { ... } reg_state[FIRST_PSEUDO_REGISTER] [static] |
Definition at line 679 of file postreload.c.
int reload_combine_ruid [static] |
Definition at line 689 of file postreload.c.
| int store_ruid |
Definition at line 682 of file postreload.c.
| int use_index |
Definition at line 680 of file postreload.c.
| int use_ruid |
Definition at line 683 of file postreload.c.
1.5.6