diff options
author | David Malcolm <dmalcolm@redhat.com> | 2014-08-22 21:10:21 +0000 |
---|---|---|
committer | David Malcolm <dmalcolm@gcc.gnu.org> | 2014-08-22 21:10:21 +0000 |
commit | 66fcd40c62ed289e13886f11bc66e503456c3f30 (patch) | |
tree | c9a250146197489a8ef70cf05a56ee28c99ae589 /gcc | |
parent | 974c43e9cc0a14d6815d67dfad92f18f23ae6274 (diff) | |
download | gcc-66fcd40c62ed289e13886f11bc66e503456c3f30.zip gcc-66fcd40c62ed289e13886f11bc66e503456c3f30.tar.gz gcc-66fcd40c62ed289e13886f11bc66e503456c3f30.tar.bz2 |
sched-ebb.c: Use rtx_insn (requires touching sched-int.h and config/c6x/c6x.c)
gcc/
2014-08-22 David Malcolm <dmalcolm@redhat.com>
* 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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 16 | ||||
-rw-r--r-- | gcc/config/c6x/c6x.c | 4 | ||||
-rw-r--r-- | gcc/sched-ebb.c | 20 | ||||
-rw-r--r-- | gcc/sched-int.h | 2 |
4 files changed, 30 insertions, 12 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 04f6628..2d3e750 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,21 @@ 2014-08-22 David Malcolm <dmalcolm@redhat.com> + * 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 <dmalcolm@redhat.com> + * sched-deps.c (maybe_add_or_update_dep_1): Strengthen locals "elem", "insn" from rtx to rtx_insn *. (change_spec_dep_to_hard): Likewise. diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c index 889031a..9998734 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 <rtx_insn *> (last_insn), + true); schedule_ebbs_finish (); if (tmp_bb) diff --git a/gcc/sched-ebb.c b/gcc/sched-ebb.c index ce17214..100bf5b 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 df7795d..ae048c1 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); |