aboutsummaryrefslogtreecommitdiff
path: root/gcc/reorg.c
diff options
context:
space:
mode:
authorTrevor Saunders <tbsaunde+gcc@tbsaunde.org>2016-09-22 13:16:17 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2016-09-22 13:16:17 +0000
commitc9b0a22777c783ad538c7ac05b0e95acaf1e32f3 (patch)
tree92b31a63603a695e7016ba3e11fd65002b118de2 /gcc/reorg.c
parent82082f658e42c072e780b50744bbf93e8b1ee949 (diff)
downloadgcc-c9b0a22777c783ad538c7ac05b0e95acaf1e32f3.zip
gcc-c9b0a22777c783ad538c7ac05b0e95acaf1e32f3.tar.gz
gcc-c9b0a22777c783ad538c7ac05b0e95acaf1e32f3.tar.bz2
make next/prev _nonnote_insn take rtx_insn *
gcc/ChangeLog: 2016-09-22 Trevor Saunders <tbsaunde+gcc@tbsaunde.org> * emit-rtl.c (next_nonnote_insn): Change argument type to rtx_insn *. (prev_nonnote_insn): Likewise. * jump.c (reversed_comparison_code_parts): Likewise. (reversed_comparison): Likewise. * rtl.h: Adjust prototypes. * config/arc/arc.md: Adjust. * cse.c (find_comparison_args): Likewise. * reorg.c (redundant_insn): Change return type to rtx_insn *. (fix_reg_dead_note): Change argument type to rtx_insn *. (delete_prior_computation): Likewise. (delete_computation): Likewise. (fill_slots_from_thread): Adjust. (relax_delay_slots): Likewise. * simplify-rtx.c (simplify_unary_operation_1): Likewise. (simplify_relational_operation_1): Likewise. (simplify_ternary_operation): Likewise. From-SVN: r240357
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r--gcc/reorg.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c
index c58d608..bc05930 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -219,12 +219,12 @@ static void steal_delay_list_from_fallthrough (rtx_insn *, rtx, rtx_sequence *,
struct resources *,
int, int *, int *);
static void try_merge_delay_insns (rtx_insn *, rtx_insn *);
-static rtx redundant_insn (rtx, rtx_insn *, const vec<rtx_insn *> &);
+static rtx_insn *redundant_insn (rtx, rtx_insn *, const vec<rtx_insn *> &);
static int own_thread_p (rtx, rtx, int);
static void update_block (rtx_insn *, rtx);
static int reorg_redirect_jump (rtx_jump_insn *, rtx);
static void update_reg_dead_notes (rtx_insn *, rtx_insn *);
-static void fix_reg_dead_note (rtx, rtx);
+static void fix_reg_dead_note (rtx_insn *, rtx);
static void update_reg_unused_notes (rtx, rtx);
static void fill_simple_delay_slots (int);
static void fill_slots_from_thread (rtx_jump_insn *, rtx, rtx, rtx,
@@ -1449,7 +1449,7 @@ try_merge_delay_insns (rtx_insn *insn, rtx_insn *thread)
redundant insn, but the cost of splitting seems greater than the possible
gain in rare cases. */
-static rtx
+static rtx_insn *
redundant_insn (rtx insn, rtx_insn *target, const vec<rtx_insn *> &delay_list)
{
rtx target_main = target;
@@ -1606,7 +1606,7 @@ redundant_insn (rtx insn, rtx_insn *target, const vec<rtx_insn *> &delay_list)
resource requirements as we go. */
for (i = seq->len () - 1; i > 0; i--)
{
- rtx candidate = seq->element (i);
+ rtx_insn *candidate = seq->insn (i);
/* If an insn will be annulled if the branch is false, it isn't
considered as a possible duplicate insn. */
@@ -1773,7 +1773,7 @@ update_reg_dead_notes (rtx_insn *insn, rtx_insn *delayed_insn)
confused into thinking the register is dead. */
static void
-fix_reg_dead_note (rtx start_insn, rtx stop_insn)
+fix_reg_dead_note (rtx_insn *start_insn, rtx stop_insn)
{
rtx link, next;
rtx_insn *p;
@@ -2417,7 +2417,7 @@ fill_slots_from_thread (rtx_jump_insn *insn, rtx condition,
&& (! own_thread || ! sets_cc0_p (pat)))))
&& ! can_throw_internal (trial))
{
- rtx prior_insn;
+ rtx_insn *prior_insn;
/* If TRIAL is redundant with some insn before INSN, we don't
actually need to add it to the delay list; we can merely pretend
@@ -2904,16 +2904,16 @@ fill_eager_delay_slots (void)
}
}
-static void delete_computation (rtx insn);
+static void delete_computation (rtx_insn *insn);
/* Recursively delete prior insns that compute the value (used only by INSN
which the caller is deleting) stored in the register mentioned by NOTE
which is a REG_DEAD note associated with INSN. */
static void
-delete_prior_computation (rtx note, rtx insn)
+delete_prior_computation (rtx note, rtx_insn *insn)
{
- rtx our_prev;
+ rtx_insn *our_prev;
rtx reg = XEXP (note, 0);
for (our_prev = prev_nonnote_insn (insn);
@@ -3025,7 +3025,7 @@ delete_prior_computation (rtx note, rtx insn)
delete the insn that set it. */
static void
-delete_computation (rtx insn)
+delete_computation (rtx_insn *insn)
{
rtx note, next;
@@ -3367,7 +3367,7 @@ relax_delay_slots (rtx_insn *first)
if (! INSN_ANNULLED_BRANCH_P (delay_jump_insn)
&& ! condjump_in_parallel_p (delay_jump_insn)
&& prev_active_insn (target_label) == insn
- && ! BARRIER_P (prev_nonnote_insn (target_label))
+ && ! BARRIER_P (prev_nonnote_insn (as_a<rtx_insn *> (target_label)))
/* If the last insn in the delay slot sets CC0 for some insn,
various code assumes that it is in a delay slot. We could
put it back where it belonged and delete the register notes,