From 66fcd40c62ed289e13886f11bc66e503456c3f30 Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Fri, 22 Aug 2014 21:10:21 +0000 Subject: [PATCH] sched-ebb.c: Use rtx_insn (requires touching sched-int.h and config/c6x/c6x.c) gcc/ 2014-08-22 David Malcolm * sched-int.h (schedule_ebb): Strengthen params "head", "tail" from rtx to rtx_insn *. * sched-ebb.c (earliest_block_with_similiar_load): Strengthen locals "insn1", "insn2" from rtx to rtx_insn *. (add_deps_for_risky_insns): Likewise for params "head", "tail" and locals "insn", "prev", "last_jump", "next_tail". (schedule_ebb): Likewise for params "head", "tail". (schedule_ebbs): Likewise for locals "tail", "head". * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast to rtx_insn on "last_insn" in one of the invocations of schedule_ebb. From-SVN: r214375 --- gcc/ChangeLog | 16 ++++++++++++++++ gcc/config/c6x/c6x.c | 4 +++- gcc/sched-ebb.c | 20 ++++++++++---------- gcc/sched-int.h | 2 +- 4 files changed, 30 insertions(+), 12 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04f6628008e..2d3e7502aff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2014-08-22 David Malcolm + + * sched-int.h (schedule_ebb): Strengthen params "head", "tail" + from rtx to rtx_insn *. + + * sched-ebb.c (earliest_block_with_similiar_load): Strengthen + locals "insn1", "insn2" from rtx to rtx_insn *. + (add_deps_for_risky_insns): Likewise for params "head", "tail" and + locals "insn", "prev", "last_jump", "next_tail". + (schedule_ebb): Likewise for params "head", "tail". + (schedule_ebbs): Likewise for locals "tail", "head". + + * config/c6x/c6x.c (hwloop_optimize): For now, add a checked cast + to rtx_insn on "last_insn" in one of the invocations of + schedule_ebb. + 2014-08-22 David Malcolm * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index 889031ac9da..99987346555 100644 --- a/gcc/config/c6x/c6x.c +++ b/gcc/config/c6x/c6x.c @@ -5669,7 +5669,9 @@ hwloop_optimize (hwloop_info loop) schedule_ebbs_init (); set_modulo_params (sp_ii, max_parallel, n_real_insns, sploop_max_uid_iter0); - tmp_bb = schedule_ebb (BB_HEAD (bb), last_insn, true); + tmp_bb = schedule_ebb (BB_HEAD (bb), + safe_as_a (last_insn), + true); schedule_ebbs_finish (); if (tmp_bb) diff --git a/gcc/sched-ebb.c b/gcc/sched-ebb.c index ce172142a13..100bf5bf5e2 100644 --- a/gcc/sched-ebb.c +++ b/gcc/sched-ebb.c @@ -61,7 +61,7 @@ static const char *ebb_print_insn (const_rtx, int); static int rank (rtx, rtx); static int ebb_contributes_to_priority (rtx, rtx); static basic_block earliest_block_with_similiar_load (basic_block, rtx); -static void add_deps_for_risky_insns (rtx, rtx); +static void add_deps_for_risky_insns (rtx_insn *, rtx_insn *); static void debug_ebb_dependencies (rtx, rtx); static void ebb_add_remove_insn (rtx, int); @@ -338,7 +338,7 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn) FOR_EACH_DEP (load_insn, SD_LIST_BACK, back_sd_it, back_dep) { - rtx insn1 = DEP_PRO (back_dep); + rtx_insn *insn1 = DEP_PRO (back_dep); if (DEP_TYPE (back_dep) == REG_DEP_TRUE) /* Found a DEF-USE dependence (insn1, load_insn). */ @@ -348,7 +348,7 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn) FOR_EACH_DEP (insn1, SD_LIST_FORW, fore_sd_it, fore_dep) { - rtx insn2 = DEP_CON (fore_dep); + rtx_insn *insn2 = DEP_CON (fore_dep); basic_block insn2_block = BLOCK_FOR_INSN (insn2); if (DEP_TYPE (fore_dep) == REG_DEP_TRUE) @@ -381,12 +381,12 @@ earliest_block_with_similiar_load (basic_block last_block, rtx load_insn) insns in given ebb. */ static void -add_deps_for_risky_insns (rtx head, rtx tail) +add_deps_for_risky_insns (rtx_insn *head, rtx_insn *tail) { - rtx insn, prev; + rtx_insn *insn, *prev; int classification; - rtx last_jump = NULL_RTX; - rtx next_tail = NEXT_INSN (tail); + rtx_insn *last_jump = NULL; + rtx_insn *next_tail = NEXT_INSN (tail); basic_block last_block = NULL, bb; for (insn = head; insn != next_tail; insn = NEXT_INSN (insn)) @@ -477,7 +477,7 @@ add_deps_for_risky_insns (rtx head, rtx tail) NULL_RTX. */ basic_block -schedule_ebb (rtx head, rtx tail, bool modulo_scheduling) +schedule_ebb (rtx_insn *head, rtx_insn *tail, bool modulo_scheduling) { basic_block first_bb, target_bb; struct deps_desc tmp_deps; @@ -621,7 +621,7 @@ schedule_ebbs (void) { basic_block bb; int probability_cutoff; - rtx tail; + rtx_insn *tail; /* Taking care of this degenerate case makes the rest of this code simpler. */ @@ -639,7 +639,7 @@ schedule_ebbs (void) /* Schedule every region in the subroutine. */ FOR_EACH_BB_FN (bb, cfun) { - rtx head = BB_HEAD (bb); + rtx_insn *head = BB_HEAD (bb); if (bb->flags & BB_DISABLE_SCHEDULE) continue; diff --git a/gcc/sched-int.h b/gcc/sched-int.h index df7795d5516..ae048c1f646 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -1377,7 +1377,7 @@ extern int number_in_ready (void); /* Types and functions in sched-ebb.c. */ -extern basic_block schedule_ebb (rtx, rtx, bool); +extern basic_block schedule_ebb (rtx_insn *, rtx_insn *, bool); extern void schedule_ebbs_init (void); extern void schedule_ebbs_finish (void); -- 2.30.2