diff options
author | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-15 13:02:21 +0000 |
---|---|---|
committer | ebotcazou <ebotcazou@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-15 13:02:21 +0000 |
commit | 31c5c4705d9f30d0f47dc3a97dc5723c102f82da (patch) | |
tree | f85f39b6c5e76b8a6d89255e1b1725f9a067548d /gcc/sched-int.h | |
parent | 3390b0dc62ef5cd68008569800224882d391e13e (diff) | |
download | ppe42-gcc-31c5c4705d9f30d0f47dc3a97dc5723c102f82da.tar.gz ppe42-gcc-31c5c4705d9f30d0f47dc3a97dc5723c102f82da.zip |
PR 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69401 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sched-int.h')
-rw-r--r-- | gcc/sched-int.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/sched-int.h b/gcc/sched-int.h index 0ab0d65aee4..8c3a4056342 100644 --- a/gcc/sched-int.h +++ b/gcc/sched-int.h @@ -112,6 +112,9 @@ struct deps /* Element N is set for each register that has any nonzero element in reg_last[N].{uses,sets,clobbers}. */ regset_head reg_last_in_use; + + /* Element N is set for each register that is conditionally set. */ + regset_head reg_conditional_sets; }; /* This structure holds some state of the current scheduling pass, and @@ -148,7 +151,7 @@ struct sched_info /* Called when computing dependencies for a JUMP_INSN. This function should store the set of registers that must be considered as set by the jump in the regset. */ - void (*compute_jump_reg_dependencies) (rtx, regset); + void (*compute_jump_reg_dependencies) (rtx, regset, regset, regset); /* The boundaries of the set of insns to be scheduled. */ rtx prev_head, next_tail; |