emit-rtl.c, [...]: Replace rtx base types with more derived ones.
gcc/ * emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c, rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c, cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c, except.c, final.c, function.c, gcse-common.c, genemit.c, haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c, lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c, sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c, shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with more derived ones. From-SVN: r224187
This commit is contained in:
parent
ad42dbbeba
commit
e67d1102e0
|
@ -1,3 +1,15 @@
|
|||
2015-06-06 Richard Sandiford <richard.sandiford@arm.com>
|
||||
|
||||
* emit-rtl.c, expr.c, gcse.c, optabs.c, optabs.h, print-rtl.c,
|
||||
rtl.h, bb-reorder.c, builtins.c, calls.c, cfgbuild.c, cfgexpand.c,
|
||||
cfgrtl.c, cilk-common.c, config/i386/i386.md, cse.c, dwarf2cfi.c,
|
||||
except.c, final.c, function.c, gcse-common.c, genemit.c,
|
||||
haifa-sched.c, ifcvt.c, jump.c, loop-invariant.c, loop-iv.c,
|
||||
lra-constraints.c, lra.c, reload1.c, resource.c, rtlanal.c,
|
||||
sched-deps.c, sched-ebb.c, sel-sched-ir.c, sel-sched.c,
|
||||
shrink-wrap.c, stmt.c, store-motion.c: Replace rtx base types with
|
||||
more derived ones.
|
||||
|
||||
2015-06-06 Mikhail Maltsev <maltsevm@gmail.com>
|
||||
|
||||
* combine.c (combine_split_insns): Remove cast.
|
||||
|
|
|
@ -1391,12 +1391,11 @@ copy_bb_p (const_basic_block bb, int code_may_grow)
|
|||
int
|
||||
get_uncond_jump_length (void)
|
||||
{
|
||||
rtx_insn *label, *jump;
|
||||
int length;
|
||||
|
||||
start_sequence ();
|
||||
label = emit_label (gen_label_rtx ());
|
||||
jump = emit_jump_insn (gen_jump (label));
|
||||
rtx_code_label *label = emit_label (gen_label_rtx ());
|
||||
rtx_insn *jump = emit_jump_insn (gen_jump (label));
|
||||
length = get_attr_min_length (jump);
|
||||
end_sequence ();
|
||||
|
||||
|
@ -1412,8 +1411,7 @@ fix_up_crossing_landing_pad (eh_landing_pad old_lp, basic_block old_bb)
|
|||
{
|
||||
eh_landing_pad new_lp;
|
||||
basic_block new_bb, last_bb, post_bb;
|
||||
rtx_insn *new_label, *jump;
|
||||
rtx post_label;
|
||||
rtx_insn *jump;
|
||||
unsigned new_partition;
|
||||
edge_iterator ei;
|
||||
edge e;
|
||||
|
@ -1425,13 +1423,13 @@ fix_up_crossing_landing_pad (eh_landing_pad old_lp, basic_block old_bb)
|
|||
LABEL_PRESERVE_P (new_lp->landing_pad) = 1;
|
||||
|
||||
/* Put appropriate instructions in new bb. */
|
||||
new_label = emit_label (new_lp->landing_pad);
|
||||
rtx_code_label *new_label = emit_label (new_lp->landing_pad);
|
||||
|
||||
expand_dw2_landing_pad_for_region (old_lp->region);
|
||||
|
||||
post_bb = BLOCK_FOR_INSN (old_lp->landing_pad);
|
||||
post_bb = single_succ (post_bb);
|
||||
post_label = block_label (post_bb);
|
||||
rtx_code_label *post_label = block_label (post_bb);
|
||||
jump = emit_jump_insn (gen_jump (post_label));
|
||||
JUMP_LABEL (jump) = post_label;
|
||||
|
||||
|
@ -1754,14 +1752,13 @@ add_labels_and_missing_jumps (vec<edge> crossing_edges)
|
|||
{
|
||||
basic_block src = e->src;
|
||||
basic_block dest = e->dest;
|
||||
rtx label;
|
||||
rtx_insn *new_jump;
|
||||
rtx_jump_insn *new_jump;
|
||||
|
||||
if (dest == EXIT_BLOCK_PTR_FOR_FN (cfun))
|
||||
continue;
|
||||
|
||||
/* Make sure dest has a label. */
|
||||
label = block_label (dest);
|
||||
rtx_code_label *label = block_label (dest);
|
||||
|
||||
/* Nothing to do for non-fallthru edges. */
|
||||
if (src == ENTRY_BLOCK_PTR_FOR_FN (cfun))
|
||||
|
@ -1812,7 +1809,7 @@ fix_up_fall_thru_edges (void)
|
|||
bool cond_jump_crosses;
|
||||
int invert_worked;
|
||||
rtx_insn *old_jump;
|
||||
rtx fall_thru_label;
|
||||
rtx_code_label *fall_thru_label;
|
||||
|
||||
FOR_EACH_BB_FN (cur_bb, cfun)
|
||||
{
|
||||
|
|
|
@ -1560,11 +1560,10 @@ expand_builtin_apply_args (void)
|
|||
saved on entry to this function. So we migrate the
|
||||
call to the first insn of this function. */
|
||||
rtx temp;
|
||||
rtx seq;
|
||||
|
||||
start_sequence ();
|
||||
temp = expand_builtin_apply_args_1 ();
|
||||
seq = get_insns ();
|
||||
rtx_insn *seq = get_insns ();
|
||||
end_sequence ();
|
||||
|
||||
apply_args_value = temp;
|
||||
|
@ -6397,7 +6396,7 @@ expand_builtin (tree exp, rtx target, rtx subtarget, machine_mode mode,
|
|||
rtx buf_addr = expand_expr (CALL_EXPR_ARG (exp, 0), subtarget,
|
||||
VOIDmode, EXPAND_NORMAL);
|
||||
tree label = TREE_OPERAND (CALL_EXPR_ARG (exp, 1), 0);
|
||||
rtx label_r = label_rtx (label);
|
||||
rtx_insn *label_r = label_rtx (label);
|
||||
|
||||
/* This is copied from the handling of non-local gotos. */
|
||||
expand_builtin_setjmp_setup (buf_addr, label_r);
|
||||
|
@ -6417,7 +6416,7 @@ expand_builtin (tree exp, rtx target, rtx subtarget, machine_mode mode,
|
|||
if (validate_arglist (exp, POINTER_TYPE, VOID_TYPE))
|
||||
{
|
||||
tree label = TREE_OPERAND (CALL_EXPR_ARG (exp, 0), 0);
|
||||
rtx label_r = label_rtx (label);
|
||||
rtx_insn *label_r = label_rtx (label);
|
||||
|
||||
expand_builtin_setjmp_receiver (label_r);
|
||||
return const0_rtx;
|
||||
|
|
|
@ -309,7 +309,6 @@ emit_call_1 (rtx funexp, tree fntree ATTRIBUTE_UNUSED, tree fndecl ATTRIBUTE_UNU
|
|||
cumulative_args_t args_so_far ATTRIBUTE_UNUSED)
|
||||
{
|
||||
rtx rounded_stack_size_rtx = GEN_INT (rounded_stack_size);
|
||||
rtx_insn *call_insn;
|
||||
rtx call, funmem;
|
||||
int already_popped = 0;
|
||||
HOST_WIDE_INT n_popped
|
||||
|
@ -435,7 +434,7 @@ emit_call_1 (rtx funexp, tree fntree ATTRIBUTE_UNUSED, tree fndecl ATTRIBUTE_UNU
|
|||
gcc_unreachable ();
|
||||
|
||||
/* Find the call we just emitted. */
|
||||
call_insn = last_call_insn ();
|
||||
rtx_call_insn *call_insn = last_call_insn ();
|
||||
|
||||
/* Some target create a fresh MEM instead of reusing the one provided
|
||||
above. Set its MEM_EXPR. */
|
||||
|
@ -4437,9 +4436,9 @@ emit_library_call_value_1 (int retval, rtx orgfun, rtx value,
|
|||
|
||||
if (flag_ipa_ra)
|
||||
{
|
||||
rtx last, datum = orgfun;
|
||||
rtx datum = orgfun;
|
||||
gcc_assert (GET_CODE (datum) == SYMBOL_REF);
|
||||
last = last_call_insn ();
|
||||
rtx_call_insn *last = last_call_insn ();
|
||||
add_reg_note (last, REG_CALL_DECL, datum);
|
||||
}
|
||||
|
||||
|
|
|
@ -174,7 +174,7 @@ rtl_make_eh_edge (sbitmap edge_cache, basic_block src, rtx insn)
|
|||
|
||||
if (lp)
|
||||
{
|
||||
rtx label = lp->landing_pad;
|
||||
rtx_insn *label = lp->landing_pad;
|
||||
|
||||
/* During initial rtl generation, use the post_landing_pad. */
|
||||
if (label == NULL)
|
||||
|
|
|
@ -2900,7 +2900,7 @@ expand_asm_stmt (gasm *stmt)
|
|||
for (i = 0; i < nlabels; ++i)
|
||||
{
|
||||
tree label = TREE_VALUE (gimple_asm_label_op (stmt, i));
|
||||
rtx r;
|
||||
rtx_insn *r;
|
||||
/* If asm goto has any labels in the fallthru basic block, use
|
||||
a label that we emit immediately after the asm goto. Expansion
|
||||
may insert further instructions into the same basic block after
|
||||
|
|
15
gcc/cfgrtl.c
15
gcc/cfgrtl.c
|
@ -92,7 +92,6 @@ static GTY(()) rtx_insn *cfg_layout_function_header;
|
|||
|
||||
static rtx_insn *skip_insns_after_block (basic_block);
|
||||
static void record_effective_endpoints (void);
|
||||
static rtx label_for_bb (basic_block);
|
||||
static void fixup_reorder_chain (void);
|
||||
|
||||
void verify_insn_chain (void);
|
||||
|
@ -1120,7 +1119,7 @@ try_redirect_by_replacing_jump (edge e, basic_block target, bool in_cfglayout)
|
|||
/* Or replace possibly complicated jump insn by simple jump insn. */
|
||||
else
|
||||
{
|
||||
rtx target_label = block_label (target);
|
||||
rtx_code_label *target_label = block_label (target);
|
||||
rtx_insn *barrier;
|
||||
rtx label;
|
||||
rtx_jump_table_data *table;
|
||||
|
@ -1203,7 +1202,7 @@ patch_jump_insn (rtx_insn *insn, rtx_insn *old_label, basic_block new_bb)
|
|||
{
|
||||
rtvec vec;
|
||||
int j;
|
||||
rtx new_label = block_label (new_bb);
|
||||
rtx_code_label *new_label = block_label (new_bb);
|
||||
|
||||
if (new_bb == EXIT_BLOCK_PTR_FOR_FN (cfun))
|
||||
return false;
|
||||
|
@ -1233,11 +1232,11 @@ patch_jump_insn (rtx_insn *insn, rtx_insn *old_label, basic_block new_bb)
|
|||
else if ((tmp = extract_asm_operands (PATTERN (insn))) != NULL)
|
||||
{
|
||||
int i, n = ASM_OPERANDS_LABEL_LENGTH (tmp);
|
||||
rtx new_label, note;
|
||||
rtx note;
|
||||
|
||||
if (new_bb == EXIT_BLOCK_PTR_FOR_FN (cfun))
|
||||
return false;
|
||||
new_label = block_label (new_bb);
|
||||
rtx_code_label *new_label = block_label (new_bb);
|
||||
|
||||
for (i = 0; i < n; ++i)
|
||||
{
|
||||
|
@ -1722,7 +1721,7 @@ force_nonfallthru_and_redirect (edge e, basic_block target, rtx jump_label)
|
|||
}
|
||||
else
|
||||
{
|
||||
rtx label = block_label (target);
|
||||
rtx_code_label *label = block_label (target);
|
||||
emit_jump_insn_after_setloc (gen_jump (label), BB_END (jump_block), loc);
|
||||
JUMP_LABEL (BB_END (jump_block)) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
|
@ -3464,10 +3463,10 @@ skip_insns_after_block (basic_block bb)
|
|||
|
||||
/* Locate or create a label for a given basic block. */
|
||||
|
||||
static rtx
|
||||
static rtx_insn *
|
||||
label_for_bb (basic_block bb)
|
||||
{
|
||||
rtx label = BB_HEAD (bb);
|
||||
rtx_insn *label = BB_HEAD (bb);
|
||||
|
||||
if (!LABEL_P (label))
|
||||
{
|
||||
|
|
|
@ -370,7 +370,7 @@ expand_builtin_cilk_pop_frame (tree exp)
|
|||
void
|
||||
expand_builtin_cilk_detach (tree exp)
|
||||
{
|
||||
rtx insn;
|
||||
rtx_insn *insn;
|
||||
tree fptr = get_frame_arg (exp);
|
||||
|
||||
if (fptr == NULL_TREE)
|
||||
|
|
|
@ -7186,7 +7186,7 @@
|
|||
(clobber (reg:CC FLAGS_REG))])]
|
||||
"TARGET_QIMODE_MATH"
|
||||
{
|
||||
rtx div, mod, insn;
|
||||
rtx div, mod;
|
||||
rtx tmp0, tmp1;
|
||||
|
||||
tmp0 = gen_reg_rtx (HImode);
|
||||
|
@ -7199,7 +7199,7 @@
|
|||
|
||||
/* Extract remainder from AH. */
|
||||
tmp1 = gen_rtx_SIGN_EXTRACT (QImode, tmp0, GEN_INT (8), GEN_INT (8));
|
||||
insn = emit_move_insn (operands[3], tmp1);
|
||||
rtx_insn *insn = emit_move_insn (operands[3], tmp1);
|
||||
|
||||
mod = gen_rtx_MOD (QImode, operands[1], operands[2]);
|
||||
set_unique_reg_note (insn, REG_EQUAL, mod);
|
||||
|
@ -7358,7 +7358,7 @@
|
|||
(clobber (reg:CC FLAGS_REG))])]
|
||||
"TARGET_QIMODE_MATH"
|
||||
{
|
||||
rtx div, mod, insn;
|
||||
rtx div, mod;
|
||||
rtx tmp0, tmp1;
|
||||
|
||||
tmp0 = gen_reg_rtx (HImode);
|
||||
|
@ -7372,7 +7372,7 @@
|
|||
/* Extract remainder from AH. */
|
||||
tmp1 = gen_rtx_ZERO_EXTRACT (SImode, tmp0, GEN_INT (8), GEN_INT (8));
|
||||
tmp1 = simplify_gen_subreg (QImode, tmp1, SImode, 0);
|
||||
insn = emit_move_insn (operands[3], tmp1);
|
||||
rtx_insn *insn = emit_move_insn (operands[3], tmp1);
|
||||
|
||||
mod = gen_rtx_UMOD (QImode, operands[1], operands[2]);
|
||||
set_unique_reg_note (insn, REG_EQUAL, mod);
|
||||
|
|
|
@ -5487,7 +5487,7 @@ cse_insn (rtx_insn *insn)
|
|||
and hope for the best. */
|
||||
if (n_sets == 1)
|
||||
{
|
||||
rtx_insn *new_rtx;
|
||||
rtx_jump_insn *new_rtx;
|
||||
rtx note;
|
||||
|
||||
new_rtx = emit_jump_insn_before (gen_jump (XEXP (src, 0)), insn);
|
||||
|
@ -6845,7 +6845,7 @@ static bool
|
|||
set_live_p (rtx set, rtx_insn *insn ATTRIBUTE_UNUSED, /* Only used with HAVE_cc0. */
|
||||
int *counts)
|
||||
{
|
||||
rtx tem;
|
||||
rtx_insn *tem;
|
||||
|
||||
if (set_noop_p (set))
|
||||
;
|
||||
|
|
|
@ -2242,7 +2242,6 @@ add_cfis_to_fde (void)
|
|||
int num = dwarf2out_cfi_label_num;
|
||||
const char *label = dwarf2out_cfi_label ();
|
||||
dw_cfi_ref xcfi;
|
||||
rtx tmp;
|
||||
|
||||
/* Set the location counter to the new label. */
|
||||
xcfi = new_cfi ();
|
||||
|
@ -2251,7 +2250,7 @@ add_cfis_to_fde (void)
|
|||
xcfi->dw_cfi_oprnd1.dw_cfi_addr = label;
|
||||
vec_safe_push (fde->dw_fde_cfi, xcfi);
|
||||
|
||||
tmp = emit_note_before (NOTE_INSN_CFI_LABEL, insn);
|
||||
rtx_note *tmp = emit_note_before (NOTE_INSN_CFI_LABEL, insn);
|
||||
NOTE_LABEL_NUMBER (tmp) = num;
|
||||
}
|
||||
|
||||
|
|
|
@ -3662,7 +3662,7 @@ try_split (rtx pat, rtx_insn *trial, int last)
|
|||
int probability;
|
||||
rtx_insn *insn_last, *insn;
|
||||
int njumps = 0;
|
||||
rtx call_insn = NULL_RTX;
|
||||
rtx_insn *call_insn = NULL;
|
||||
|
||||
/* We're not good at redistributing frame information. */
|
||||
if (RTX_FRAME_RELATED_P (trial))
|
||||
|
@ -4684,10 +4684,10 @@ emit_pattern_after_setloc (rtx pattern, rtx uncast_after, int loc,
|
|||
rtx_insn *(*make_raw) (rtx))
|
||||
{
|
||||
rtx_insn *after = safe_as_a <rtx_insn *> (uncast_after);
|
||||
rtx last = emit_pattern_after_noloc (pattern, after, NULL, make_raw);
|
||||
rtx_insn *last = emit_pattern_after_noloc (pattern, after, NULL, make_raw);
|
||||
|
||||
if (pattern == NULL_RTX || !loc)
|
||||
return safe_as_a <rtx_insn *> (last);
|
||||
return last;
|
||||
|
||||
after = NEXT_INSN (after);
|
||||
while (1)
|
||||
|
@ -4700,7 +4700,7 @@ emit_pattern_after_setloc (rtx pattern, rtx uncast_after, int loc,
|
|||
break;
|
||||
after = NEXT_INSN (after);
|
||||
}
|
||||
return safe_as_a <rtx_insn *> (last);
|
||||
return last;
|
||||
}
|
||||
|
||||
/* Insert PATTERN after AFTER. MAKE_RAW indicates how to turn PATTERN
|
||||
|
|
17
gcc/except.c
17
gcc/except.c
|
@ -1299,9 +1299,8 @@ sjlj_emit_dispatch_table (rtx_code_label *dispatch_label, int num_dispatch)
|
|||
machine_mode unwind_word_mode = targetm.unwind_word_mode ();
|
||||
machine_mode filter_mode = targetm.eh_return_filter_mode ();
|
||||
eh_landing_pad lp;
|
||||
rtx mem, fc, before, exc_ptr_reg, filter_reg;
|
||||
rtx mem, fc, exc_ptr_reg, filter_reg;
|
||||
rtx_insn *seq;
|
||||
rtx first_reachable_label;
|
||||
basic_block bb;
|
||||
eh_region r;
|
||||
edge e;
|
||||
|
@ -1348,7 +1347,7 @@ sjlj_emit_dispatch_table (rtx_code_label *dispatch_label, int num_dispatch)
|
|||
/* Jump to one of the directly reachable regions. */
|
||||
|
||||
disp_index = 0;
|
||||
first_reachable_label = NULL;
|
||||
rtx_code_label *first_reachable_label = NULL;
|
||||
|
||||
/* If there's exactly one call site in the function, don't bother
|
||||
generating a switch statement. */
|
||||
|
@ -1391,7 +1390,7 @@ sjlj_emit_dispatch_table (rtx_code_label *dispatch_label, int num_dispatch)
|
|||
seq2 = get_insns ();
|
||||
end_sequence ();
|
||||
|
||||
before = label_rtx (lp->post_landing_pad);
|
||||
rtx_insn *before = label_rtx (lp->post_landing_pad);
|
||||
bb = emit_to_new_bb_before (seq2, before);
|
||||
e = make_edge (bb, bb->next_bb, EDGE_FALLTHRU);
|
||||
e->count = bb->count;
|
||||
|
@ -1684,7 +1683,7 @@ for_each_eh_label (void (*callback) (rtx))
|
|||
{
|
||||
if (lp)
|
||||
{
|
||||
rtx lab = lp->landing_pad;
|
||||
rtx_code_label *lab = lp->landing_pad;
|
||||
if (lab && LABEL_P (lab))
|
||||
(*callback) (lab);
|
||||
}
|
||||
|
@ -2518,7 +2517,7 @@ convert_to_eh_region_ranges (void)
|
|||
rtx_insn *first_no_action_insn = NULL;
|
||||
int call_site = 0;
|
||||
int cur_sec = 0;
|
||||
rtx section_switch_note = NULL_RTX;
|
||||
rtx_insn *section_switch_note = NULL;
|
||||
rtx_insn *first_no_action_insn_before_switch = NULL;
|
||||
rtx_insn *last_no_action_insn_before_switch = NULL;
|
||||
int saved_call_site_base = call_site_base;
|
||||
|
@ -2532,7 +2531,7 @@ convert_to_eh_region_ranges (void)
|
|||
eh_region region;
|
||||
bool nothrow;
|
||||
int this_action;
|
||||
rtx this_landing_pad;
|
||||
rtx_code_label *this_landing_pad;
|
||||
|
||||
insn = iter;
|
||||
if (NONJUMP_INSN_P (insn)
|
||||
|
@ -2563,7 +2562,7 @@ convert_to_eh_region_ranges (void)
|
|||
if (this_action >= 0)
|
||||
this_landing_pad = lp->landing_pad;
|
||||
else
|
||||
this_landing_pad = NULL_RTX;
|
||||
this_landing_pad = NULL;
|
||||
|
||||
/* Differing actions or landing pads implies a change in call-site
|
||||
info, which implies some EH_REGION note should be emitted. */
|
||||
|
@ -3266,7 +3265,7 @@ dump_eh_tree (FILE * out, struct function *fun)
|
|||
fprintf (out, "(nil),");
|
||||
if (lp->post_landing_pad)
|
||||
{
|
||||
rtx lab = label_rtx (lp->post_landing_pad);
|
||||
rtx_insn *lab = label_rtx (lp->post_landing_pad);
|
||||
fprintf (out, "%i%s}", INSN_UID (lab),
|
||||
NOTE_P (lab) ? "(del)" : "");
|
||||
}
|
||||
|
|
|
@ -10559,7 +10559,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
|
|||
if ((icode = optab_handler (movmisalign_optab, mode))
|
||||
!= CODE_FOR_nothing)
|
||||
{
|
||||
rtx reg, insn;
|
||||
rtx reg;
|
||||
|
||||
op0 = adjust_address (op0, mode, 0);
|
||||
/* We've already validated the memory, and we're creating a
|
||||
|
@ -10568,7 +10568,7 @@ expand_expr_real_1 (tree exp, rtx target, machine_mode tmode,
|
|||
reg = gen_reg_rtx (mode);
|
||||
|
||||
/* Nor can the insn generator. */
|
||||
insn = GEN_FCN (icode) (reg, op0);
|
||||
rtx_insn *insn = GEN_FCN (icode) (reg, op0);
|
||||
emit_insn (insn);
|
||||
return reg;
|
||||
}
|
||||
|
|
|
@ -657,13 +657,13 @@ align_fuzz (rtx start, rtx end, int known_align_log, unsigned int growth)
|
|||
int
|
||||
insn_current_reference_address (rtx_insn *branch)
|
||||
{
|
||||
rtx dest, seq;
|
||||
rtx dest;
|
||||
int seq_uid;
|
||||
|
||||
if (! INSN_ADDRESSES_SET_P ())
|
||||
return 0;
|
||||
|
||||
seq = NEXT_INSN (PREV_INSN (branch));
|
||||
rtx_insn *seq = NEXT_INSN (PREV_INSN (branch));
|
||||
seq_uid = INSN_UID (seq);
|
||||
if (!JUMP_P (branch))
|
||||
/* This can happen for example on the PA; the objective is to know the
|
||||
|
|
|
@ -3109,8 +3109,8 @@ assign_parm_setup_reg (struct assign_parm_data_all *all, tree parm,
|
|||
}
|
||||
else
|
||||
t = op1;
|
||||
rtx pat = gen_extend_insn (op0, t, promoted_nominal_mode,
|
||||
data->passed_mode, unsignedp);
|
||||
rtx_insn *pat = gen_extend_insn (op0, t, promoted_nominal_mode,
|
||||
data->passed_mode, unsignedp);
|
||||
emit_insn (pat);
|
||||
insns = get_insns ();
|
||||
|
||||
|
@ -5290,8 +5290,6 @@ set_insn_locations (rtx_insn *insn, int loc)
|
|||
void
|
||||
expand_function_end (void)
|
||||
{
|
||||
rtx clobber_after;
|
||||
|
||||
/* If arg_pointer_save_area was referenced only from a nested
|
||||
function, we will not have initialized it yet. Do that now. */
|
||||
if (arg_pointer_save_area && ! crtl->arg_pointer_save_area_init)
|
||||
|
@ -5340,7 +5338,7 @@ expand_function_end (void)
|
|||
|
||||
We delay actual code generation after the current_function_value_rtx
|
||||
is computed. */
|
||||
clobber_after = get_last_insn ();
|
||||
rtx_insn *clobber_after = get_last_insn ();
|
||||
|
||||
/* Output the label for the actual return from the function. */
|
||||
emit_label (return_label);
|
||||
|
@ -5490,11 +5488,9 @@ expand_function_end (void)
|
|||
certainly doesn't fall thru into the exit block. */
|
||||
if (!BARRIER_P (clobber_after))
|
||||
{
|
||||
rtx seq;
|
||||
|
||||
start_sequence ();
|
||||
clobber_return_register ();
|
||||
seq = get_insns ();
|
||||
rtx_insn *seq = get_insns ();
|
||||
end_sequence ();
|
||||
|
||||
emit_insn_after (seq, clobber_after);
|
||||
|
@ -5521,11 +5517,11 @@ expand_function_end (void)
|
|||
if (! EXIT_IGNORE_STACK
|
||||
&& cfun->calls_alloca)
|
||||
{
|
||||
rtx tem = 0, seq;
|
||||
rtx tem = 0;
|
||||
|
||||
start_sequence ();
|
||||
emit_stack_save (SAVE_FUNCTION, &tem);
|
||||
seq = get_insns ();
|
||||
rtx_insn *seq = get_insns ();
|
||||
end_sequence ();
|
||||
emit_insn_before (seq, parm_birth_insn);
|
||||
|
||||
|
@ -5552,15 +5548,13 @@ get_arg_pointer_save_area (void)
|
|||
|
||||
if (! crtl->arg_pointer_save_area_init)
|
||||
{
|
||||
rtx seq;
|
||||
|
||||
/* Save the arg pointer at the beginning of the function. The
|
||||
generated stack slot may not be a valid memory address, so we
|
||||
have to check it and fix it if necessary. */
|
||||
start_sequence ();
|
||||
emit_move_insn (validize_mem (copy_rtx (ret)),
|
||||
crtl->args.internal_arg_pointer);
|
||||
seq = get_insns ();
|
||||
rtx_insn *seq = get_insns ();
|
||||
end_sequence ();
|
||||
|
||||
push_topmost_sequence ();
|
||||
|
@ -5653,13 +5647,11 @@ prologue_epilogue_contains (const_rtx insn)
|
|||
static void
|
||||
emit_use_return_register_into_block (basic_block bb)
|
||||
{
|
||||
rtx seq;
|
||||
rtx_insn *insn;
|
||||
start_sequence ();
|
||||
use_return_register ();
|
||||
seq = get_insns ();
|
||||
rtx_insn *seq = get_insns ();
|
||||
end_sequence ();
|
||||
insn = BB_END (bb);
|
||||
rtx_insn *insn = BB_END (bb);
|
||||
if (HAVE_cc0 && reg_mentioned_p (cc0_rtx, PATTERN (insn)))
|
||||
insn = prev_cc0_setter (insn);
|
||||
|
||||
|
@ -5686,9 +5678,9 @@ gen_return_pattern (bool simple_p)
|
|||
void
|
||||
emit_return_into_block (bool simple_p, basic_block bb)
|
||||
{
|
||||
rtx jump, pat;
|
||||
jump = emit_jump_insn_after (gen_return_pattern (simple_p), BB_END (bb));
|
||||
pat = PATTERN (jump);
|
||||
rtx_jump_insn *jump = emit_jump_insn_after (gen_return_pattern (simple_p),
|
||||
BB_END (bb));
|
||||
rtx pat = PATTERN (jump);
|
||||
if (GET_CODE (pat) == PARALLEL)
|
||||
pat = XVECEXP (pat, 0, 0);
|
||||
gcc_assert (ANY_RETURN_P (pat));
|
||||
|
@ -5733,7 +5725,6 @@ convert_jumps_to_returns (basic_block last_bb, bool simple_p,
|
|||
{
|
||||
int i;
|
||||
basic_block bb;
|
||||
rtx label;
|
||||
edge_iterator ei;
|
||||
edge e;
|
||||
auto_vec<basic_block> src_bbs (EDGE_COUNT (last_bb->preds));
|
||||
|
@ -5742,7 +5733,7 @@ convert_jumps_to_returns (basic_block last_bb, bool simple_p,
|
|||
if (e->src != ENTRY_BLOCK_PTR_FOR_FN (cfun))
|
||||
src_bbs.quick_push (e->src);
|
||||
|
||||
label = BB_HEAD (last_bb);
|
||||
rtx_insn *label = BB_HEAD (last_bb);
|
||||
|
||||
FOR_EACH_VEC_ELT (src_bbs, i, bb)
|
||||
{
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
void
|
||||
canon_list_insert (rtx dest, const_rtx x ATTRIBUTE_UNUSED, void *data)
|
||||
{
|
||||
rtx dest_addr, insn;
|
||||
rtx dest_addr;
|
||||
int bb;
|
||||
modify_pair pair;
|
||||
|
||||
|
@ -58,7 +58,7 @@ canon_list_insert (rtx dest, const_rtx x ATTRIBUTE_UNUSED, void *data)
|
|||
|
||||
dest_addr = get_addr (XEXP (dest, 0));
|
||||
dest_addr = canon_rtx (dest_addr);
|
||||
insn = ((struct gcse_note_stores_info *)data)->insn;
|
||||
rtx_insn *insn = ((struct gcse_note_stores_info *)data)->insn;
|
||||
bb = BLOCK_FOR_INSN (insn)->index;
|
||||
|
||||
pair.dest = dest;
|
||||
|
|
|
@ -540,7 +540,6 @@ static void trim_ld_motion_mems (void);
|
|||
static void update_ld_motion_stores (struct gcse_expr *);
|
||||
static void clear_modify_mem_tables (void);
|
||||
static void free_modify_mem_tables (void);
|
||||
static rtx gcse_emit_move_after (rtx, rtx, rtx_insn *);
|
||||
static bool is_too_expensive (const char *);
|
||||
|
||||
#define GNEW(T) ((T *) gmalloc (sizeof (T)))
|
||||
|
@ -2434,7 +2433,7 @@ single_set_gcse (rtx_insn *insn)
|
|||
/* Emit move from SRC to DEST noting the equivalence with expression computed
|
||||
in INSN. */
|
||||
|
||||
static rtx
|
||||
static rtx_insn *
|
||||
gcse_emit_move_after (rtx dest, rtx src, rtx_insn *insn)
|
||||
{
|
||||
rtx_insn *new_rtx;
|
||||
|
@ -3960,7 +3959,6 @@ update_ld_motion_stores (struct gcse_expr * expr)
|
|||
rtx pat = PATTERN (insn);
|
||||
rtx src = SET_SRC (pat);
|
||||
rtx reg = expr->reaching_reg;
|
||||
rtx copy;
|
||||
|
||||
/* If we've already copied it, continue. */
|
||||
if (expr->reaching_reg == src)
|
||||
|
@ -3975,7 +3973,7 @@ update_ld_motion_stores (struct gcse_expr * expr)
|
|||
fprintf (dump_file, "\n");
|
||||
}
|
||||
|
||||
copy = gen_move_insn (reg, copy_rtx (SET_SRC (pat)));
|
||||
rtx_insn *copy = gen_move_insn (reg, copy_rtx (SET_SRC (pat)));
|
||||
emit_insn_before (copy, insn);
|
||||
SET_SRC (pat) = reg;
|
||||
df_insn_rescan (insn);
|
||||
|
|
|
@ -450,7 +450,7 @@ gen_expand (rtx expand)
|
|||
printf (" rtx operand%d;\n", i);
|
||||
for (; i <= stats.max_scratch_opno; i++)
|
||||
printf (" rtx operand%d ATTRIBUTE_UNUSED;\n", i);
|
||||
printf (" rtx _val = 0;\n");
|
||||
printf (" rtx_insn *_val = 0;\n");
|
||||
printf (" start_sequence ();\n");
|
||||
|
||||
/* The fourth operand of DEFINE_EXPAND is some code to be executed
|
||||
|
|
|
@ -8096,8 +8096,6 @@ init_before_recovery (basic_block *before_recovery_ptr)
|
|||
Between these two blocks recovery blocks will be emitted. */
|
||||
|
||||
basic_block single, empty;
|
||||
rtx_insn *x;
|
||||
rtx label;
|
||||
|
||||
/* If the fallthrough edge to exit we've found is from the block we've
|
||||
created before, don't do anything more. */
|
||||
|
@ -8128,8 +8126,9 @@ init_before_recovery (basic_block *before_recovery_ptr)
|
|||
make_single_succ_edge (empty, EXIT_BLOCK_PTR_FOR_FN (cfun),
|
||||
EDGE_FALLTHRU);
|
||||
|
||||
label = block_label (empty);
|
||||
x = emit_jump_insn_after (gen_jump (label), BB_END (single));
|
||||
rtx_code_label *label = block_label (empty);
|
||||
rtx_jump_insn *x = emit_jump_insn_after (gen_jump (label),
|
||||
BB_END (single));
|
||||
JUMP_LABEL (x) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
haifa_init_insn (x);
|
||||
|
@ -8160,7 +8159,6 @@ init_before_recovery (basic_block *before_recovery_ptr)
|
|||
basic_block
|
||||
sched_create_recovery_block (basic_block *before_recovery_ptr)
|
||||
{
|
||||
rtx label;
|
||||
rtx_insn *barrier;
|
||||
basic_block rec;
|
||||
|
||||
|
@ -8172,7 +8170,7 @@ sched_create_recovery_block (basic_block *before_recovery_ptr)
|
|||
barrier = get_last_bb_insn (before_recovery);
|
||||
gcc_assert (BARRIER_P (barrier));
|
||||
|
||||
label = emit_label_after (gen_label_rtx (), barrier);
|
||||
rtx_insn *label = emit_label_after (gen_label_rtx (), barrier);
|
||||
|
||||
rec = create_basic_block (label, label, before_recovery);
|
||||
|
||||
|
@ -8195,8 +8193,6 @@ void
|
|||
sched_create_recovery_edges (basic_block first_bb, basic_block rec,
|
||||
basic_block second_bb)
|
||||
{
|
||||
rtx label;
|
||||
rtx jump;
|
||||
int edge_flags;
|
||||
|
||||
/* This is fixing of incoming edge. */
|
||||
|
@ -8208,8 +8204,8 @@ sched_create_recovery_edges (basic_block first_bb, basic_block rec,
|
|||
edge_flags = 0;
|
||||
|
||||
make_edge (first_bb, rec, edge_flags);
|
||||
label = block_label (second_bb);
|
||||
jump = emit_jump_insn_after (gen_jump (label), BB_END (rec));
|
||||
rtx_code_label *label = block_label (second_bb);
|
||||
rtx_jump_insn *jump = emit_jump_insn_after (gen_jump (label), BB_END (rec));
|
||||
JUMP_LABEL (jump) = label;
|
||||
LABEL_NUSES (label)++;
|
||||
|
||||
|
|
11
gcc/ifcvt.c
11
gcc/ifcvt.c
|
@ -3767,7 +3767,7 @@ find_cond_trap (basic_block test_bb, edge then_edge, edge else_edge)
|
|||
basic_block else_bb = else_edge->dest;
|
||||
basic_block other_bb, trap_bb;
|
||||
rtx_insn *trap, *jump;
|
||||
rtx cond, seq;
|
||||
rtx cond;
|
||||
rtx_insn *cond_earliest;
|
||||
enum rtx_code code;
|
||||
|
||||
|
@ -3812,9 +3812,9 @@ find_cond_trap (basic_block test_bb, edge then_edge, edge else_edge)
|
|||
}
|
||||
|
||||
/* Attempt to generate the conditional trap. */
|
||||
seq = gen_cond_trap (code, copy_rtx (XEXP (cond, 0)),
|
||||
copy_rtx (XEXP (cond, 1)),
|
||||
TRAP_CODE (PATTERN (trap)));
|
||||
rtx_insn *seq = gen_cond_trap (code, copy_rtx (XEXP (cond, 0)),
|
||||
copy_rtx (XEXP (cond, 1)),
|
||||
TRAP_CODE (PATTERN (trap)));
|
||||
if (seq == NULL)
|
||||
return FALSE;
|
||||
|
||||
|
@ -3839,10 +3839,9 @@ find_cond_trap (basic_block test_bb, edge then_edge, edge else_edge)
|
|||
else if (trap_bb == then_bb)
|
||||
{
|
||||
rtx lab;
|
||||
rtx_insn *newjump;
|
||||
|
||||
lab = JUMP_LABEL (jump);
|
||||
newjump = emit_jump_insn_after (gen_jump (lab), jump);
|
||||
rtx_jump_insn *newjump = emit_jump_insn_after (gen_jump (lab), jump);
|
||||
LABEL_NUSES (lab) += 1;
|
||||
JUMP_LABEL (newjump) = lab;
|
||||
emit_barrier_after (newjump);
|
||||
|
|
|
@ -441,7 +441,6 @@ reversed_comparison_code_parts (enum rtx_code code, const_rtx arg0,
|
|||
|
||||
if (GET_MODE_CLASS (mode) == MODE_CC || CC0_P (arg0))
|
||||
{
|
||||
const_rtx prev;
|
||||
/* Try to search for the comparison to determine the real mode.
|
||||
This code is expensive, but with sane machine description it
|
||||
will be never used, since REVERSIBLE_CC_MODE will return true
|
||||
|
@ -452,9 +451,9 @@ reversed_comparison_code_parts (enum rtx_code code, const_rtx arg0,
|
|||
/* These CONST_CAST's are okay because prev_nonnote_insn just
|
||||
returns its argument and we assign it to a const_rtx
|
||||
variable. */
|
||||
for (prev = prev_nonnote_insn (CONST_CAST_RTX (insn));
|
||||
for (rtx_insn *prev = prev_nonnote_insn (CONST_CAST_RTX (insn));
|
||||
prev != 0 && !LABEL_P (prev);
|
||||
prev = prev_nonnote_insn (CONST_CAST_RTX (prev)))
|
||||
prev = prev_nonnote_insn (prev))
|
||||
{
|
||||
const_rtx set = set_of (arg0, prev);
|
||||
if (set && GET_CODE (set) == SET
|
||||
|
|
|
@ -882,14 +882,13 @@ pre_check_invariant_p (bool simple, rtx dest)
|
|||
if (simple && REG_P (dest) && DF_REG_DEF_COUNT (REGNO (dest)) > 1)
|
||||
{
|
||||
df_ref use;
|
||||
rtx ref;
|
||||
unsigned int i = REGNO (dest);
|
||||
struct df_insn_info *insn_info;
|
||||
df_ref def_rec;
|
||||
|
||||
for (use = DF_REG_USE_CHAIN (i); use; use = DF_REF_NEXT_REG (use))
|
||||
{
|
||||
ref = DF_REF_INSN (use);
|
||||
rtx_insn *ref = DF_REF_INSN (use);
|
||||
insn_info = DF_INSN_INFO_GET (ref);
|
||||
|
||||
FOR_EACH_INSN_INFO_DEF (def_rec, insn_info)
|
||||
|
|
|
@ -2036,7 +2036,7 @@ simplify_using_initial_values (struct loop *loop, enum rtx_code op, rtx *expr)
|
|||
|
||||
for (pnote = &cond_list; *pnote; pnote = pnote_next)
|
||||
{
|
||||
rtx note = *pnote;
|
||||
rtx_expr_list *note = *pnote;
|
||||
rtx old_cond = XEXP (note, 0);
|
||||
|
||||
pnote_next = (rtx_expr_list **)&XEXP (note, 1);
|
||||
|
@ -2070,7 +2070,7 @@ simplify_using_initial_values (struct loop *loop, enum rtx_code op, rtx *expr)
|
|||
/* Likewise for the conditions. */
|
||||
for (pnote = &cond_list; *pnote; pnote = pnote_next)
|
||||
{
|
||||
rtx note = *pnote;
|
||||
rtx_expr_list *note = *pnote;
|
||||
rtx old_cond = XEXP (note, 0);
|
||||
|
||||
pnote_next = (rtx_expr_list **)&XEXP (note, 1);
|
||||
|
|
|
@ -871,7 +871,7 @@ match_reload (signed char out, signed char *ins, enum reg_class goal_class,
|
|||
rtx_insn **before, rtx_insn **after)
|
||||
{
|
||||
int i, in;
|
||||
rtx new_in_reg, new_out_reg, reg, clobber;
|
||||
rtx new_in_reg, new_out_reg, reg;
|
||||
machine_mode inmode, outmode;
|
||||
rtx in_rtx = *curr_id->operand_loc[ins[0]];
|
||||
rtx out_rtx = out < 0 ? in_rtx : *curr_id->operand_loc[out];
|
||||
|
@ -912,7 +912,7 @@ match_reload (signed char out, signed char *ins, enum reg_class goal_class,
|
|||
NEW_OUT_REG living above. We add clobber clause for
|
||||
this. This is just a temporary clobber. We can remove
|
||||
it at the end of LRA work. */
|
||||
clobber = emit_clobber (new_out_reg);
|
||||
rtx_insn *clobber = emit_clobber (new_out_reg);
|
||||
LRA_TEMP_CLOBBER_P (PATTERN (clobber)) = 1;
|
||||
LRA_SUBREG_P (new_in_reg) = 1;
|
||||
if (GET_CODE (in_rtx) == SUBREG)
|
||||
|
@ -5558,7 +5558,7 @@ inherit_in_ebb (rtx_insn *head, rtx_insn *tail)
|
|||
|| reg_renumber[src_regno] >= 0)
|
||||
{
|
||||
bool before_p;
|
||||
rtx use_insn = curr_insn;
|
||||
rtx_insn *use_insn = curr_insn;
|
||||
|
||||
before_p = (JUMP_P (curr_insn)
|
||||
|| (CALL_P (curr_insn) && reg->type == OP_IN));
|
||||
|
|
24
gcc/lra.c
24
gcc/lra.c
|
@ -306,7 +306,7 @@ lra_delete_dead_insn (rtx_insn *insn)
|
|||
/* Emit insn x = y + z. Return NULL if we failed to do it.
|
||||
Otherwise, return the insn. We don't use gen_add3_insn as it might
|
||||
clobber CC. */
|
||||
static rtx
|
||||
static rtx_insn *
|
||||
emit_add3_insn (rtx x, rtx y, rtx z)
|
||||
{
|
||||
rtx_insn *last;
|
||||
|
@ -315,7 +315,7 @@ emit_add3_insn (rtx x, rtx y, rtx z)
|
|||
|
||||
if (have_addptr3_insn (x, y, z))
|
||||
{
|
||||
rtx insn = gen_addptr3_insn (x, y, z);
|
||||
rtx_insn *insn = gen_addptr3_insn (x, y, z);
|
||||
|
||||
/* If the target provides an "addptr" pattern it hopefully does
|
||||
for a reason. So falling back to the normal add would be
|
||||
|
@ -337,12 +337,10 @@ emit_add3_insn (rtx x, rtx y, rtx z)
|
|||
|
||||
/* Emit insn x = x + y. Return the insn. We use gen_add2_insn as the
|
||||
last resort. */
|
||||
static rtx
|
||||
static rtx_insn *
|
||||
emit_add2_insn (rtx x, rtx y)
|
||||
{
|
||||
rtx insn;
|
||||
|
||||
insn = emit_add3_insn (x, x, y);
|
||||
rtx_insn *insn = emit_add3_insn (x, x, y);
|
||||
if (insn == NULL_RTX)
|
||||
{
|
||||
insn = gen_add2_insn (x, y);
|
||||
|
@ -370,7 +368,7 @@ lra_emit_add (rtx x, rtx y, rtx z)
|
|||
rtx a1, a2, base, index, disp, scale, index_scale;
|
||||
bool ok_p;
|
||||
|
||||
rtx add3_insn = emit_add3_insn (x, y, z);
|
||||
rtx_insn *add3_insn = emit_add3_insn (x, y, z);
|
||||
old = max_reg_num ();
|
||||
if (add3_insn != NULL)
|
||||
;
|
||||
|
@ -423,7 +421,7 @@ lra_emit_add (rtx x, rtx y, rtx z)
|
|||
adding the address segment to register. */
|
||||
lra_assert (x != y && x != z);
|
||||
emit_move_insn (x, y);
|
||||
rtx insn = emit_add2_insn (x, z);
|
||||
rtx_insn *insn = emit_add2_insn (x, z);
|
||||
lra_assert (insn != NULL_RTX);
|
||||
}
|
||||
else
|
||||
|
@ -435,7 +433,7 @@ lra_emit_add (rtx x, rtx y, rtx z)
|
|||
/* Generate x = index_scale; x = x + base. */
|
||||
lra_assert (index_scale != NULL_RTX && base != NULL_RTX);
|
||||
emit_move_insn (x, index_scale);
|
||||
rtx insn = emit_add2_insn (x, base);
|
||||
rtx_insn *insn = emit_add2_insn (x, base);
|
||||
lra_assert (insn != NULL_RTX);
|
||||
}
|
||||
else if (scale == NULL_RTX)
|
||||
|
@ -450,13 +448,13 @@ lra_emit_add (rtx x, rtx y, rtx z)
|
|||
delete_insns_since (last);
|
||||
/* Generate x = disp; x = x + base. */
|
||||
emit_move_insn (x, disp);
|
||||
rtx add2_insn = emit_add2_insn (x, base);
|
||||
rtx_insn *add2_insn = emit_add2_insn (x, base);
|
||||
lra_assert (add2_insn != NULL_RTX);
|
||||
}
|
||||
/* Generate x = x + index. */
|
||||
if (index != NULL_RTX)
|
||||
{
|
||||
rtx insn = emit_add2_insn (x, index);
|
||||
rtx_insn *insn = emit_add2_insn (x, index);
|
||||
lra_assert (insn != NULL_RTX);
|
||||
}
|
||||
}
|
||||
|
@ -468,7 +466,7 @@ lra_emit_add (rtx x, rtx y, rtx z)
|
|||
ok_p = false;
|
||||
if (recog_memoized (move_insn) >= 0)
|
||||
{
|
||||
rtx insn = emit_add2_insn (x, disp);
|
||||
rtx_insn *insn = emit_add2_insn (x, disp);
|
||||
if (insn != NULL_RTX)
|
||||
{
|
||||
insn = emit_add2_insn (x, base);
|
||||
|
@ -481,7 +479,7 @@ lra_emit_add (rtx x, rtx y, rtx z)
|
|||
delete_insns_since (last);
|
||||
/* Generate x = disp; x = x + base; x = x + index_scale. */
|
||||
emit_move_insn (x, disp);
|
||||
rtx insn = emit_add2_insn (x, base);
|
||||
rtx_insn *insn = emit_add2_insn (x, base);
|
||||
lra_assert (insn != NULL_RTX);
|
||||
insn = emit_add2_insn (x, index_scale);
|
||||
lra_assert (insn != NULL_RTX);
|
||||
|
|
28
gcc/optabs.c
28
gcc/optabs.c
|
@ -2048,7 +2048,7 @@ expand_binop (machine_mode mode, optab binoptab, rtx op0, rtx op1,
|
|||
if (optab_handler (mov_optab, mode) != CODE_FOR_nothing
|
||||
|| ! rtx_equal_p (target, xtarget))
|
||||
{
|
||||
rtx temp = emit_move_insn (target, xtarget);
|
||||
rtx_insn *temp = emit_move_insn (target, xtarget);
|
||||
|
||||
set_dst_reg_note (temp, REG_EQUAL,
|
||||
gen_rtx_fmt_ee (optab_to_code (binoptab),
|
||||
|
@ -4720,7 +4720,7 @@ emit_conditional_add (rtx target, enum rtx_code code, rtx op0, rtx op1,
|
|||
|
||||
/* Generate and return an insn body to add Y to X. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_add2_insn (rtx x, rtx y)
|
||||
{
|
||||
enum insn_code icode = optab_handler (add_optab, GET_MODE (x));
|
||||
|
@ -4735,7 +4735,7 @@ gen_add2_insn (rtx x, rtx y)
|
|||
/* Generate and return an insn body to add r1 and c,
|
||||
storing the result in r0. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_add3_insn (rtx r0, rtx r1, rtx c)
|
||||
{
|
||||
enum insn_code icode = optab_handler (add_optab, GET_MODE (r0));
|
||||
|
@ -4744,7 +4744,7 @@ gen_add3_insn (rtx r0, rtx r1, rtx c)
|
|||
|| !insn_operand_matches (icode, 0, r0)
|
||||
|| !insn_operand_matches (icode, 1, r1)
|
||||
|| !insn_operand_matches (icode, 2, c))
|
||||
return NULL_RTX;
|
||||
return NULL;
|
||||
|
||||
return GEN_FCN (icode) (r0, r1, c);
|
||||
}
|
||||
|
@ -4771,7 +4771,7 @@ have_add2_insn (rtx x, rtx y)
|
|||
|
||||
/* Generate and return an insn body to add Y to X. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_addptr3_insn (rtx x, rtx y, rtx z)
|
||||
{
|
||||
enum insn_code icode = optab_handler (addptr3_optab, GET_MODE (x));
|
||||
|
@ -4808,7 +4808,7 @@ have_addptr3_insn (rtx x, rtx y, rtx z)
|
|||
|
||||
/* Generate and return an insn body to subtract Y from X. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_sub2_insn (rtx x, rtx y)
|
||||
{
|
||||
enum insn_code icode = optab_handler (sub_optab, GET_MODE (x));
|
||||
|
@ -4823,7 +4823,7 @@ gen_sub2_insn (rtx x, rtx y)
|
|||
/* Generate and return an insn body to subtract r1 and c,
|
||||
storing the result in r0. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_sub3_insn (rtx r0, rtx r1, rtx c)
|
||||
{
|
||||
enum insn_code icode = optab_handler (sub_optab, GET_MODE (r0));
|
||||
|
@ -4832,7 +4832,7 @@ gen_sub3_insn (rtx r0, rtx r1, rtx c)
|
|||
|| !insn_operand_matches (icode, 0, r0)
|
||||
|| !insn_operand_matches (icode, 1, r1)
|
||||
|| !insn_operand_matches (icode, 2, c))
|
||||
return NULL_RTX;
|
||||
return NULL;
|
||||
|
||||
return GEN_FCN (icode) (r0, r1, c);
|
||||
}
|
||||
|
@ -4878,7 +4878,7 @@ can_extend_p (machine_mode to_mode, machine_mode from_mode,
|
|||
/* Generate the body of an insn to extend Y (with mode MFROM)
|
||||
into X (with mode MTO). Do zero-extension if UNSIGNEDP is nonzero. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_extend_insn (rtx x, rtx y, machine_mode mto,
|
||||
machine_mode mfrom, int unsignedp)
|
||||
{
|
||||
|
@ -6395,12 +6395,12 @@ debug_optab_libfuncs (void)
|
|||
/* Generate insns to trap with code TCODE if OP1 and OP2 satisfy condition
|
||||
CODE. Return 0 on failure. */
|
||||
|
||||
rtx
|
||||
rtx_insn *
|
||||
gen_cond_trap (enum rtx_code code, rtx op1, rtx op2, rtx tcode)
|
||||
{
|
||||
machine_mode mode = GET_MODE (op1);
|
||||
enum insn_code icode;
|
||||
rtx insn;
|
||||
rtx_insn *insn;
|
||||
rtx trap_rtx;
|
||||
|
||||
if (mode == VOIDmode)
|
||||
|
@ -6419,7 +6419,7 @@ gen_cond_trap (enum rtx_code code, rtx op1, rtx op2, rtx tcode)
|
|||
prepare_cmp_insn (op1, op2, code, NULL_RTX, false, OPTAB_DIRECT,
|
||||
&trap_rtx, &mode);
|
||||
if (!trap_rtx)
|
||||
insn = NULL_RTX;
|
||||
insn = NULL;
|
||||
else
|
||||
insn = GEN_FCN (icode) (trap_rtx, XEXP (trap_rtx, 0), XEXP (trap_rtx, 1),
|
||||
tcode);
|
||||
|
@ -8382,7 +8382,7 @@ bool
|
|||
maybe_expand_insn (enum insn_code icode, unsigned int nops,
|
||||
struct expand_operand *ops)
|
||||
{
|
||||
rtx pat = maybe_gen_insn (icode, nops, ops);
|
||||
rtx_insn *pat = maybe_gen_insn (icode, nops, ops);
|
||||
if (pat)
|
||||
{
|
||||
emit_insn (pat);
|
||||
|
@ -8397,7 +8397,7 @@ bool
|
|||
maybe_expand_jump_insn (enum insn_code icode, unsigned int nops,
|
||||
struct expand_operand *ops)
|
||||
{
|
||||
rtx pat = maybe_gen_insn (icode, nops, ops);
|
||||
rtx_insn *pat = maybe_gen_insn (icode, nops, ops);
|
||||
if (pat)
|
||||
{
|
||||
emit_jump_insn (pat);
|
||||
|
|
15
gcc/optabs.h
15
gcc/optabs.h
|
@ -377,13 +377,13 @@ rtx emit_conditional_add (rtx, enum rtx_code, rtx, rtx, machine_mode,
|
|||
/* Create but don't emit one rtl instruction to perform certain operations.
|
||||
Modes must match; operands must meet the operation's predicates.
|
||||
Likewise for subtraction and for just copying. */
|
||||
extern rtx gen_add2_insn (rtx, rtx);
|
||||
extern rtx gen_add3_insn (rtx, rtx, rtx);
|
||||
extern rtx_insn *gen_add2_insn (rtx, rtx);
|
||||
extern rtx_insn *gen_add3_insn (rtx, rtx, rtx);
|
||||
extern int have_add2_insn (rtx, rtx);
|
||||
extern rtx gen_addptr3_insn (rtx, rtx, rtx);
|
||||
extern rtx_insn *gen_addptr3_insn (rtx, rtx, rtx);
|
||||
extern int have_addptr3_insn (rtx, rtx, rtx);
|
||||
extern rtx gen_sub2_insn (rtx, rtx);
|
||||
extern rtx gen_sub3_insn (rtx, rtx, rtx);
|
||||
extern rtx_insn *gen_sub2_insn (rtx, rtx);
|
||||
extern rtx_insn *gen_sub3_insn (rtx, rtx, rtx);
|
||||
extern int have_sub2_insn (rtx, rtx);
|
||||
|
||||
/* Return the INSN_CODE to use for an extend operation. */
|
||||
|
@ -391,8 +391,7 @@ extern enum insn_code can_extend_p (machine_mode, machine_mode, int);
|
|||
|
||||
/* Generate the body of an insn to extend Y (with mode MFROM)
|
||||
into X (with mode MTO). Do zero-extension if UNSIGNEDP is nonzero. */
|
||||
extern rtx gen_extend_insn (rtx, rtx, machine_mode,
|
||||
machine_mode, int);
|
||||
extern rtx_insn *gen_extend_insn (rtx, rtx, machine_mode, machine_mode, int);
|
||||
|
||||
/* Return the insn_code for a FLOAT_EXPR. */
|
||||
enum insn_code can_float_p (machine_mode, machine_mode, int);
|
||||
|
@ -488,7 +487,7 @@ extern void init_tree_optimization_optabs (tree);
|
|||
extern void init_sync_libfuncs (int max);
|
||||
|
||||
/* Generate a conditional trap instruction. */
|
||||
extern rtx gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
|
||||
extern rtx_insn *gen_cond_trap (enum rtx_code, rtx, rtx, rtx);
|
||||
|
||||
/* Return true if target supports vector operations for VEC_PERM_EXPR. */
|
||||
extern bool can_vec_perm_p (machine_mode, bool, const unsigned char *);
|
||||
|
|
|
@ -769,7 +769,7 @@ debug_rtx_range (const rtx_insn *start, const rtx_insn *end)
|
|||
and then call debug_rtx_list to print it, using DEBUG_RTX_COUNT.
|
||||
The found insn is returned to enable further debugging analysis. */
|
||||
|
||||
DEBUG_FUNCTION const_rtx
|
||||
DEBUG_FUNCTION const rtx_insn *
|
||||
debug_rtx_find (const rtx_insn *x, int uid)
|
||||
{
|
||||
while (x != 0 && INSN_UID (x) != uid)
|
||||
|
|
|
@ -1649,7 +1649,7 @@ calculate_elim_costs_all_insns (void)
|
|||
|| reg_equiv_invariant (REGNO (SET_DEST (set)))))
|
||||
{
|
||||
unsigned regno = REGNO (SET_DEST (set));
|
||||
rtx init = reg_equiv_init (regno);
|
||||
rtx_insn_list *init = reg_equiv_init (regno);
|
||||
if (init)
|
||||
{
|
||||
rtx t = eliminate_regs_1 (SET_SRC (set), VOIDmode, insn,
|
||||
|
@ -8226,7 +8226,7 @@ emit_reload_insns (struct insn_chain *chain)
|
|||
|
||||
for (j = 0; j < reload_n_operands; j++)
|
||||
{
|
||||
rtx x = emit_insn_after (outaddr_address_reload_insns[j], insn);
|
||||
rtx_insn *x = emit_insn_after (outaddr_address_reload_insns[j], insn);
|
||||
x = emit_insn_after (output_address_reload_insns[j], x);
|
||||
x = emit_insn_after (output_reload_insns[j], x);
|
||||
emit_insn_after (other_output_reload_insns[j], x);
|
||||
|
|
|
@ -894,7 +894,6 @@ mark_target_live_regs (rtx_insn *insns, rtx target_maybe_return, struct resource
|
|||
unsigned int i;
|
||||
struct target_info *tinfo = NULL;
|
||||
rtx_insn *insn;
|
||||
rtx jump_insn = 0;
|
||||
rtx jump_target;
|
||||
HARD_REG_SET scratch;
|
||||
struct resources set, needed;
|
||||
|
@ -1122,8 +1121,8 @@ mark_target_live_regs (rtx_insn *insns, rtx target_maybe_return, struct resource
|
|||
CLEAR_RESOURCE (&set);
|
||||
CLEAR_RESOURCE (&needed);
|
||||
|
||||
jump_insn = find_dead_or_set_registers (target, res, &jump_target, 0,
|
||||
set, needed);
|
||||
rtx_insn *jump_insn = find_dead_or_set_registers (target, res, &jump_target,
|
||||
0, set, needed);
|
||||
|
||||
/* If we hit an unconditional branch, we have another way of finding out
|
||||
what is live: we can see what is live at the branch target and include
|
||||
|
|
|
@ -3525,7 +3525,7 @@ extern void debug (const rtx_def *ptr);
|
|||
extern void debug_rtx (const_rtx);
|
||||
extern void debug_rtx_list (const rtx_insn *, int);
|
||||
extern void debug_rtx_range (const rtx_insn *, const rtx_insn *);
|
||||
extern const_rtx debug_rtx_find (const rtx_insn *, int);
|
||||
extern const rtx_insn *debug_rtx_find (const rtx_insn *, int);
|
||||
extern void print_mem_expr (FILE *, const_tree);
|
||||
extern void print_rtl (FILE *, const_rtx);
|
||||
extern void print_simple_rtl (FILE *, const_rtx);
|
||||
|
|
|
@ -2226,7 +2226,7 @@ void
|
|||
remove_node_from_expr_list (const_rtx node, rtx_expr_list **listp)
|
||||
{
|
||||
rtx_expr_list *temp = *listp;
|
||||
rtx prev = NULL_RTX;
|
||||
rtx_expr_list *prev = NULL;
|
||||
|
||||
while (temp)
|
||||
{
|
||||
|
@ -2255,7 +2255,7 @@ void
|
|||
remove_node_from_insn_list (const rtx_insn *node, rtx_insn_list **listp)
|
||||
{
|
||||
rtx_insn_list *temp = *listp;
|
||||
rtx prev = NULL;
|
||||
rtx_insn_list *prev = NULL;
|
||||
|
||||
while (temp)
|
||||
{
|
||||
|
|
|
@ -3003,8 +3003,7 @@ sched_analyze_insn (struct deps_desc *deps, rtx x, rtx_insn *insn)
|
|||
|
||||
if (JUMP_P (insn))
|
||||
{
|
||||
rtx next;
|
||||
next = next_nonnote_nondebug_insn (insn);
|
||||
rtx_insn *next = next_nonnote_nondebug_insn (insn);
|
||||
if (next && BARRIER_P (next))
|
||||
reg_pending_barrier = MOVE_BARRIER;
|
||||
else
|
||||
|
@ -3591,8 +3590,6 @@ call_may_noreturn_p (rtx_insn *insn)
|
|||
static bool
|
||||
chain_to_prev_insn_p (rtx_insn *insn)
|
||||
{
|
||||
rtx prev, x;
|
||||
|
||||
/* INSN forms a group with the previous instruction. */
|
||||
if (SCHED_GROUP_P (insn))
|
||||
return true;
|
||||
|
@ -3601,13 +3598,13 @@ chain_to_prev_insn_p (rtx_insn *insn)
|
|||
part of R, the clobber was added specifically to help us track the
|
||||
liveness of R. There's no point scheduling the clobber and leaving
|
||||
INSN behind, especially if we move the clobber to another block. */
|
||||
prev = prev_nonnote_nondebug_insn (insn);
|
||||
rtx_insn *prev = prev_nonnote_nondebug_insn (insn);
|
||||
if (prev
|
||||
&& INSN_P (prev)
|
||||
&& BLOCK_FOR_INSN (prev) == BLOCK_FOR_INSN (insn)
|
||||
&& GET_CODE (PATTERN (prev)) == CLOBBER)
|
||||
{
|
||||
x = XEXP (PATTERN (prev), 0);
|
||||
rtx x = XEXP (PATTERN (prev), 0);
|
||||
if (set_of (x, insn))
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -183,9 +183,7 @@ begin_move_insn (rtx_insn *insn, rtx_insn *last)
|
|||
&& BB_END (last_bb) == insn);
|
||||
|
||||
{
|
||||
rtx x;
|
||||
|
||||
x = NEXT_INSN (insn);
|
||||
rtx_insn *x = NEXT_INSN (insn);
|
||||
if (e)
|
||||
gcc_checking_assert (NOTE_P (x) || LABEL_P (x));
|
||||
else
|
||||
|
|
|
@ -4560,9 +4560,7 @@ sel_bb_head (basic_block bb)
|
|||
}
|
||||
else
|
||||
{
|
||||
insn_t note;
|
||||
|
||||
note = bb_note (bb);
|
||||
rtx_note *note = bb_note (bb);
|
||||
head = next_nonnote_insn (note);
|
||||
|
||||
if (head && (BARRIER_P (head) || BLOCK_FOR_INSN (head) != bb))
|
||||
|
@ -4983,7 +4981,7 @@ clear_outdated_rtx_info (basic_block bb)
|
|||
static void
|
||||
return_bb_to_pool (basic_block bb)
|
||||
{
|
||||
rtx note = bb_note (bb);
|
||||
rtx_note *note = bb_note (bb);
|
||||
|
||||
gcc_assert (NOTE_BASIC_BLOCK (note) == bb
|
||||
&& bb->aux == NULL);
|
||||
|
|
|
@ -4726,11 +4726,10 @@ static int
|
|||
find_seqno_for_bookkeeping (insn_t place_to_insert, insn_t join_point)
|
||||
{
|
||||
int seqno;
|
||||
rtx next;
|
||||
|
||||
/* Check if we are about to insert bookkeeping copy before a jump, and use
|
||||
jump's seqno for the copy; otherwise, use JOIN_POINT's seqno. */
|
||||
next = NEXT_INSN (place_to_insert);
|
||||
rtx_insn *next = NEXT_INSN (place_to_insert);
|
||||
if (INSN_P (next)
|
||||
&& JUMP_P (next)
|
||||
&& BLOCK_FOR_INSN (next) == BLOCK_FOR_INSN (place_to_insert))
|
||||
|
@ -5151,11 +5150,11 @@ find_sequential_best_exprs (bnd_t bnd, expr_t expr_vliw, bool for_moveop)
|
|||
static void ATTRIBUTE_UNUSED
|
||||
move_nop_to_previous_block (insn_t nop, basic_block prev_bb)
|
||||
{
|
||||
insn_t prev_insn, next_insn, note;
|
||||
insn_t prev_insn, next_insn;
|
||||
|
||||
gcc_assert (sel_bb_head_p (nop)
|
||||
&& prev_bb == BLOCK_FOR_INSN (nop)->prev_bb);
|
||||
note = bb_note (BLOCK_FOR_INSN (nop));
|
||||
rtx_note *note = bb_note (BLOCK_FOR_INSN (nop));
|
||||
prev_insn = sel_bb_end (prev_bb);
|
||||
next_insn = NEXT_INSN (nop);
|
||||
gcc_assert (prev_insn != NULL_RTX
|
||||
|
@ -6741,10 +6740,11 @@ static void
|
|||
init_seqno_1 (basic_block bb, sbitmap visited_bbs, bitmap blocks_to_reschedule)
|
||||
{
|
||||
int bbi = BLOCK_TO_BB (bb->index);
|
||||
insn_t insn, note = bb_note (bb);
|
||||
insn_t insn;
|
||||
insn_t succ_insn;
|
||||
succ_iterator si;
|
||||
|
||||
rtx_note *note = bb_note (bb);
|
||||
bitmap_set_bit (visited_bbs, bbi);
|
||||
if (blocks_to_reschedule)
|
||||
bitmap_clear_bit (blocks_to_reschedule, bb->index);
|
||||
|
|
|
@ -813,7 +813,6 @@ try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge,
|
|||
FOR_EACH_BB_REVERSE_FN (bb, cfun)
|
||||
{
|
||||
basic_block copy_bb, tbb;
|
||||
rtx_insn *insert_point;
|
||||
int eflags;
|
||||
|
||||
if (!bitmap_clear_bit (&bb_tail, bb->index))
|
||||
|
@ -843,8 +842,8 @@ try_shrink_wrapping (edge *entry_edge, edge orig_entry_edge,
|
|||
BB_COPY_PARTITION (copy_bb, bb);
|
||||
}
|
||||
|
||||
insert_point = emit_note_after (NOTE_INSN_DELETED,
|
||||
BB_END (copy_bb));
|
||||
rtx_note *insert_point = emit_note_after (NOTE_INSN_DELETED,
|
||||
BB_END (copy_bb));
|
||||
emit_barrier_after (BB_END (copy_bb));
|
||||
|
||||
tbb = bb;
|
||||
|
@ -1008,12 +1007,11 @@ convert_to_simple_return (edge entry_edge, edge orig_entry_edge,
|
|||
else if (*pdest_bb == NULL)
|
||||
{
|
||||
basic_block bb;
|
||||
rtx_insn *start;
|
||||
|
||||
bb = create_basic_block (NULL, NULL, exit_pred);
|
||||
BB_COPY_PARTITION (bb, e->src);
|
||||
start = emit_jump_insn_after (gen_simple_return (),
|
||||
BB_END (bb));
|
||||
rtx_jump_insn *start = emit_jump_insn_after (gen_simple_return (),
|
||||
BB_END (bb));
|
||||
JUMP_LABEL (start) = simple_return_rtx;
|
||||
emit_barrier_after (start);
|
||||
|
||||
|
|
|
@ -980,7 +980,7 @@ emit_case_dispatch_table (tree index_expr, tree index_type,
|
|||
int i, ncases;
|
||||
struct case_node *n;
|
||||
rtx *labelvec;
|
||||
rtx fallback_label = label_rtx (case_list->code_label);
|
||||
rtx_insn *fallback_label = label_rtx (case_list->code_label);
|
||||
rtx_code_label *table_label = gen_label_rtx ();
|
||||
bool has_gaps = false;
|
||||
edge default_edge = stmt_bb ? EDGE_SUCC (stmt_bb, 0) : NULL;
|
||||
|
|
|
@ -304,10 +304,10 @@ store_ops_ok (const_rtx x, int *regs_set)
|
|||
/* Returns a list of registers mentioned in X.
|
||||
FIXME: A regset would be prettier and less expensive. */
|
||||
|
||||
static rtx
|
||||
static rtx_expr_list *
|
||||
extract_mentioned_regs (rtx x)
|
||||
{
|
||||
rtx mentioned_regs = NULL;
|
||||
rtx_expr_list *mentioned_regs = NULL;
|
||||
subrtx_var_iterator::array_type array;
|
||||
FOR_EACH_SUBRTX_VAR (iter, array, x, NONCONST)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue