diff options
author | Bernd Schmidt <bernds@codesourcery.com> | 2011-07-15 13:20:10 +0000 |
---|---|---|
committer | Bernd Schmidt <bernds@gcc.gnu.org> | 2011-07-15 13:20:10 +0000 |
commit | aef0e7a8c2a0fc93efb26c35babc92b4d8614c45 (patch) | |
tree | 0bb9cddf8c35822d3cea46f03f9830031fecd1a6 /gcc/sched-rgn.c | |
parent | ce6e60b2a4e275812c7ffe2fb0f2adb98f4b6677 (diff) | |
download | gcc-aef0e7a8c2a0fc93efb26c35babc92b4d8614c45.zip gcc-aef0e7a8c2a0fc93efb26c35babc92b4d8614c45.tar.gz gcc-aef0e7a8c2a0fc93efb26c35babc92b4d8614c45.tar.bz2 |
revert: re PR rtl-optimization/11320 (Scheduler bug)
Revert
2003-07-10 Eric Botcazou <ebotcazou@libertysurf.fr>
PR rtl-optimization/11320
* sched-int.h (struct deps) [reg_conditional_sets]: New field.
(struct sched_info) [compute_jump_reg_dependencies]: New prototype.
* sched-deps.c (sched_analyze_insn) [JUMP_INSN]: Update call to
current_sched_info->compute_jump_reg_dependencies. Record which
registers are used and which registers are set by the jump.
Clear deps->reg_conditional_sets after a barrier.
Set deps->reg_conditional_sets if the insn is a COND_EXEC.
Clear deps->reg_conditional_sets if the insn is not a COND_EXEC.
(init_deps): Initialize reg_conditional_sets.
(free_deps): Clear reg_conditional_sets.
* sched-ebb.c (compute_jump_reg_dependencies): New prototype.
Mark registers live on entry of the fallthrough block and conditionally
set as set by the jump. Mark registers live on entry of non-fallthrough
blocks as used by the jump.
* sched-rgn.c (compute_jump_reg_dependencies): New prototype.
Mark new parameters as unused.
From-SVN: r176315
Diffstat (limited to 'gcc/sched-rgn.c')
-rw-r--r-- | gcc/sched-rgn.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/gcc/sched-rgn.c b/gcc/sched-rgn.c index b4d4c81..9208ef2 100644 --- a/gcc/sched-rgn.c +++ b/gcc/sched-rgn.c @@ -2062,7 +2062,7 @@ static ds_t new_ready (rtx, ds_t); static int schedule_more_p (void); static const char *rgn_print_insn (const_rtx, int); static int rgn_rank (rtx, rtx); -static void compute_jump_reg_dependencies (rtx, regset, regset, regset); +static void compute_jump_reg_dependencies (rtx, regset); /* Functions for speculative scheduling. */ static void rgn_add_remove_insn (rtx, int); @@ -2295,16 +2295,12 @@ contributes_to_priority (rtx next, rtx insn) return BLOCK_TO_BB (BLOCK_NUM (next)) == BLOCK_TO_BB (BLOCK_NUM (insn)); } -/* INSN is a JUMP_INSN, COND_SET is the set of registers that are - conditionally set before INSN. Store the set of registers that - must be considered as used by this jump in USED and that of - registers that must be considered as set in SET. */ +/* INSN is a JUMP_INSN. Store the set of registers that must be + considered as used by this jump in USED. */ static void compute_jump_reg_dependencies (rtx insn ATTRIBUTE_UNUSED, - regset cond_exec ATTRIBUTE_UNUSED, - regset used ATTRIBUTE_UNUSED, - regset set ATTRIBUTE_UNUSED) + regset used ATTRIBUTE_UNUSED) { /* Nothing to do here, since we postprocess jumps in add_branch_dependences. */ |