diff options
author | Bernd Schmidt <bernds@redhat.com> | 2000-12-20 17:19:39 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2000-12-20 17:19:39 +0000 |
commit | 18e720b324e90c02d4631174885b66f67d8014f2 (patch) | |
tree | 6792bf552c4e374a8b4a117207dec07374ea6a0d /gcc/sched-rgn.c | |
parent | fd7bcd6f0571ef7f5fb87c713b7a612252497056 (diff) | |
download | gcc-18e720b324e90c02d4631174885b66f67d8014f2.zip gcc-18e720b324e90c02d4631174885b66f67d8014f2.tar.gz gcc-18e720b324e90c02d4631174885b66f67d8014f2.tar.bz2 |
Support scheduling across extended basic blocks
From-SVN: r38400
Diffstat (limited to 'gcc/sched-rgn.c')
-rw-r--r-- | gcc/sched-rgn.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c index 9e1bfd9..db4cc87 100644 --- a/gcc/sched-rgn.c +++ b/gcc/sched-rgn.c @@ -2042,6 +2042,8 @@ static int new_ready PARAMS ((rtx)); static int schedule_more_p PARAMS ((void)); static const char *rgn_print_insn PARAMS ((rtx, int)); static int rgn_rank PARAMS ((rtx, rtx)); +static int contributes_to_priority PARAMS ((rtx, rtx)); +static void compute_jump_reg_dependencies PARAMS ((rtx, regset)); /* Return nonzero if there are more insns that should be scheduled. */ @@ -2302,6 +2304,29 @@ rgn_rank (insn1, insn2) return 0; } +/* NEXT is an instruction that depends on INSN (a backward dependence); + return nonzero if we should include this dependence in priority + calculations. */ + +static int +contributes_to_priority (next, insn) + rtx next, insn; +{ + return BLOCK_NUM (next) == BLOCK_NUM (insn); +} + +/* INSN is a JUMP_INSN. Store the set of registers that must be considered + to be set by this jump in SET. */ + +static void +compute_jump_reg_dependencies (insn, set) + rtx insn ATTRIBUTE_UNUSED; + regset set ATTRIBUTE_UNUSED; +{ + /* Nothing to do here, since we postprocess jumps in + add_branch_dependences. */ +} + /* Used in schedule_insns to initialize current_sched_info for scheduling regions (or single basic blocks). */ @@ -2313,6 +2338,8 @@ static struct sched_info region_sched_info = new_ready, rgn_rank, rgn_print_insn, + contributes_to_priority, + compute_jump_reg_dependencies, NULL, NULL, NULL, NULL, |