diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-12-20 17:19:39 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2000-12-20 17:19:39 +0000 |
commit | d6141c0ca920b76a6c3295041c35545e3b5ebb1b (patch) | |
tree | 6792bf552c4e374a8b4a117207dec07374ea6a0d /gcc/sched-rgn.c | |
parent | c9784e7e0fdcd44fb9c273c241b76f487767e5b6 (diff) | |
download | gcc-d6141c0ca920b76a6c3295041c35545e3b5ebb1b.tar.gz |
Support scheduling across extended basic blocks
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@38400 138bc75d-0d04-0410-961f-82ee72b054a4
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 9e1bfd92072..db4cc877b36 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, |